디스코드 봇 + OpenAI 연동하기 (ChatGPT API)

2025. 5. 20. 14:12·봇 개발 팁/Discord.js

디스코드 봇에 ChatGPT 기능을 추가하면, 채팅에서 자연스럽게 AI와 대화할 수 있습니다. 최근에는 OpenAI의 API를 활용해 다양한 챗봇 기능을 구현하는 사례가 많아졌습니다. 여기서는 Node.js 환경에서 openai와 discord.js 라이브러리를 활용하는 기본적인 연동 방법을 소개합니다.

준비 과정

  1. OpenAI API 키 발급
    OpenAI 공식 홈페이지에서 회원가입 후, API 키를 발급받으세요.
  2. 패키지 설치
    npm install openai discord.js 명령어로 필요한 라이브러리를 설치합니다.
  3. 환경변수 관리
    API 키와 디스코드 토큰은 .env 파일 등으로 안전하게 관리하는 것이 좋습니다.

예제 코드

아래 코드는 사용자가 !gpt로 시작하는 메시지를 보내면, ChatGPT의 답변을 받아서 응답하는 구조입니다.

import { Client } from 'discord.js';
import { OpenAI } from 'openai';
const client = new Client({ intents: ['Guilds', 'GuildMessages', 'MessageContent'] });
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });

client.on('messageCreate', async msg => {
  if (msg.author.bot) return;
  if (msg.content.startsWith('!gpt ')) {
    const prompt = msg.content.slice(5);
    try {
      const res = await openai.chat.completions.create({
        model: 'gpt-4o',
        messages: [{ role: 'user', content: prompt }]
      });
      msg.reply(res.choices[0].message.content.trim());
    } catch (e) {
      msg.reply('OpenAI API 호출에 실패했습니다.');
    }
  }
});
client.login(process.env.DISCORD_TOKEN);

코드 리뷰 및 설명

  • 비동기 처리: OpenAI API 호출은 시간이 걸릴 수 있으므로, async/await로 처리합니다.
  • 에러 처리: API 호출이 실패할 경우를 대비해 try-catch로 감쌌습니다.
  • 환경변수: 실제 서비스에서는 토큰과 키를 코드에 직접 쓰지 않고, 환경변수로 관리해야 보안에 안전합니다.
  • 명령어 구조: !gpt 뒤에 오는 내용을 그대로 프롬프트로 사용합니다. 필요에 따라 명령어 파싱을 더 정교하게 할 수 있습니다.

확장 아이디어

  • 대화 기록을 저장해 맥락을 이어가는 챗봇으로 발전시킬 수 있습니다.
  • 명령어별로 다른 프롬프트나 역할을 부여할 수도 있습니다.
  • OpenAI의 다양한 모델(예: 이미지 생성)도 연동 가능합니다.

마무리

OpenAI와 디스코드 봇의 연동은 생각보다 간단하지만, 실제 서비스에서는 API 사용량과 비용, 보안에 특히 신경 써야 합니다. 기본 구조를 익힌 뒤, 다양한 기능을 추가해보세요.

'봇 개발 팁 > Discord.js' 카테고리의 다른 글

디스코드 봇에서 유저 포인트 시스템 구현하기  (0) 2025.05.22
디스코드 봇에 SQLite 연동하기 - Prisma로 쉽게 시작하기  (2) 2025.05.21
환경변수와 .env 파일로 토큰 안전하게 관리하기  (0) 2025.05.18
단 10줄로 만드는 간단한 디스코드 봇  (1) 2025.05.17
Discord.js 설치 및 사용법, 메시지 보내기와 명령어 생성  (1) 2025.05.01
'봇 개발 팁/Discord.js' 카테고리의 다른 글
  • 디스코드 봇에서 유저 포인트 시스템 구현하기
  • 디스코드 봇에 SQLite 연동하기 - Prisma로 쉽게 시작하기
  • 환경변수와 .env 파일로 토큰 안전하게 관리하기
  • 단 10줄로 만드는 간단한 디스코드 봇
디스호스트
디스호스트
쉽고 안정적인 디스코드 봇 호스팅 서비스, 디스호스트의 기술 블로그입니다. 디스호스트는 24시간 구동되는 서버를 통해 디스코드 봇을 대신 구동시켜 드리는 서비스를 제공하고 있습니다.
  • 디스호스트
    디스호스트 기술 블로그
    디스호스트
  • 블로그 메뉴

    • 홈
    • 디스호스트 사용 가이드
    • 디스코드 봇 호스팅, 24시간 서버 구동
    • 분류 전체보기 (32) N
      • 디스코드 (6)
      • 디스호스트 가이드 (11)
      • 봇 개발 팁 (10) N
        • Discord.js (8)
        • Discord.py (1) N
      • DiscordJS 개발 튜토리얼 (5) N
  • 링크

    • 디스호스트
    • 디스호스트 패널
  • hELLO· Designed By정상우.v4.10.3
디스호스트
디스코드 봇 + OpenAI 연동하기 (ChatGPT API)
상단으로

티스토리툴바