챗봇 API Node.js ChatGPT 연동으로 5분 만에 만들기

챗봇 API Node.js ChatGPT 연동으로 5분 만에 만들기

챗봇 API Node.js ChatGPT 연동으로 5분 만에 만들기

내 컴퓨터에서 바로 시작하는 AI 연동 환경

요즘 웹 서비스에 인공지능을 넣는 작업은 확실히 쉬워졌습니다. 복잡한 머신러닝 지식이 없어도 API 호출 한 번이면 텍스트를 분석하고 답변을 받아올 수 있습니다.

특히 자바스크립트에 익숙한 프론트엔드나 풀스택 개발자라면 Node.js 환경이 가장 편한 선택입니다. 매달 구독료를 내며 서드파티 툴을 쓰는 것보다 내 서버에 직접 올려서 굴리는 방식이 장기적으로 비용을 아끼는 데도 유리합니다.

단계별로 챗봇 기능 완성하기

단계별로 챗봇 기능 완성하기

Step 1: Node.js 프로젝트 시작하고 패키지 설치하기

가장 먼저 해야 할 일은 터미널을 열고 작업할 디렉토리를 만드는 것입니다. 그다음 npm 프로젝트를 초기화하고 OpenAI 공식 라이브러리와 dotenv 패키지를 함께 설치해야 합니다.

dotenv는 API 키 같은 중요한 정보를 소스 코드 바깥에 두고 안전하게 불러올 때 유용합니다.

mkdir my-ai-chatbot
cd my-ai-chatbot
npm init -y
npm install openai dotenv

설치가 무사히 끝나면 폴더 안에 package.json 파일과 node_modules 폴더가 보일 겁니다. 혹시 설치 중에 권한 문제나 에러가 난다면 터미널을 관리자 권한으로 다시 열거나 명령어 철자를 다시 확인해보세요.

Step 2: API 키 발급받고 환경변수 설정하기

이제 OpenAI 개발자 플랫폼에서 발급받은 API 키를 프로젝트에 연동할 차례입니다. 유출을 막으려면 프로젝트 루트 경로에 .env 파일을 만들어 그 안에 키를 숨겨 보관해야 합니다.

OPENAI_API_KEY=sk-proj-xxxxxx...

윈도우 메모장으로 파일을 저장하다 보면 뒤에 확장자가 붙어 .env.txt가 되어버리는 실수가 자주 생깁니다. 파일명을 지을 때 큰따옴표로 감싸서 저장하면 정확히 .env 파일로 만들 수 있습니다.

Step 3: 챗봇 기본 코드 작성하고 실행하기

마지막으로 챗봇 엔진을 구동할 index.js 코드를 작성할 단계입니다. 최신 openai 패키지 버전에 맞는 문법으로 아래 내용을 그대로 넣으면 됩니다.

import OpenAI from "openai";
import "dotenv/config";

const openai = new OpenAI();

async function startChat() {
const response = await openai.chat.completions.create({
model: "gpt-4o-mini",
messages: [
{ role: "system", content: "당신은 웹 개발에 능숙한 도우미입니다." },
{ role: "user", content: "안녕? 너는 어떤 모델이니?" }
]
});
console.log("답변 내용:", response.choices[0].message.content);
}

startChat();

자바스크립트의 모듈 방식인 import 구문을 사용하려면 package.json에 한 줄을 추가해야 합니다. package.json 파일을 열고 중괄호 안에 "type": "module"을 적어두면 터미널에서 node index.js를 입력했을 때 에러 없이 실행 결과가 출력됩니다.

실무에서 직접 돌리며 느껴지는 API 비용 현실

실무에서 직접 돌리며 느껴지는 API 비용 현실

이렇게 API를 직접 가져다 쓰기 시작하면 결국 요금표에 먼저 눈이 갑니다. gpt-4o-mini 같은 가벼운 모델은 100만 토큰당 단가가 0.15달러 안팎이라 개인 토이 프로젝트라면 지출 걱정이 거의 생기지 않습니다.

다만 대화 내역을 매번 전부 다시 모델에 넣어야 이전 맥락을 기억하므로 호출이 늘어날수록 입력 토큰 누적 속도가 빨라집니다. 사용자가 입력하는 프롬프트 외에 시스템 메시지도 요금 산정에 포함되기 때문에 꼼꼼하게 관리할 필요가 있습니다.

대화의 문맥을 잊지 않는 메모리 기능 추가하기

방금 작성한 기본 예제는 단발성 질문만 받고 대화가 종료되는 형태에 머뭅니다. 계속 질문을 이어가며 맥락을 기억하게 하려면 대화 배열에 이전 내역을 push해서 계속 보존해주면 됩니다.

메모리에 히스토리를 모아서 매 요청마다 API에 함께 넘기는 간단한 코드 변경만으로도 대화형 챗봇의 완성도가 한 단계 올라갑니다. 이 기본 구조만 파악해도 추후 데이터베이스에 대화 내역을 저장하고 가져와 웹 UI와 연결하는 일이 한결 단순해집니다.

관련 검색어

  • 🔍 ChatGPT 사용법
  • 🔍 ChatGPT 비교
  • 🔍 API 사용법
  • 🔍 API 비교
  • 🔍 Node.js 사용법
  • 🔍 Node.js 비교

댓글 쓰기

다음 이전