쓸툴.site
Tech & Story

LLM API 연동기: 구글 Gemini로 나만의 AI 챗봇 '쓸봇' 만들기

📅 2025-12-14 👨‍💻 에디터 K
LLM API 연동기: 구글 Gemini로 나만의 AI 챗봇 '쓸봇' 만들기

사이트에 방문한 유저들이 심심하지 않게 말을 걸어주는 친구가 있다면 어떨까요? 처음엔 정해진 대답만 하는 규칙 기반(Rule-based) 챗봇을 생각했습니다. 하지만 "재밌는 게임 추천해 줘" 같은 자연스러운 질문을 처리하기엔 역부족이었습니다.

그래서 최신 트렌드인 LLM(Large Language Model)을 도입하기로 했습니다. 그중에서도 응답 속도가 빠르고 합리적인 Google Gemini API를 활용해, 우리 사이트만의 페르소나를 가진 AI 챗봇 '쓸봇'을 탄생시켰습니다.

1. 프롬프트 엔지니어링: 봇에게 성격을 부여하다

API를 연결만 한다고 끝이 아닙니다. 그냥 연결하면 "저는 AI 모델입니다"라는 딱딱한 대답만 할 뿐이죠. 봇에게 생명력을 불어넣는 것은 바로 '시스템 프롬프트(System Prompt)'입니다.

저는 프롬프트에 다음과 같은 지시사항을 넣었습니다. "너의 이름은 쓸봇이야. 친근하고 재치 있는 말투를 써. 우리 사이트의 게임 목록은 [야추, 오목, ...] 등이 있어. 유저가 게임을 찾으면 링크와 함께 소개해 줘." 이렇게 구체적인 페르소나와 지식(Context)을 주입하자, 봇은 마치 사이트 관리자가 직접 대답하는 것처럼 자연스럽게 행동하기 시작했습니다.

2. Flask와 SocketIO를 통한 실시간 AI 채팅

AI 응답을 기다리는 동안 화면이 멈추면 안 됩니다. 여기서 다시 한번 SocketIO가 활약했습니다. 유저가 메시지를 보내면 서버는 즉시 "입력 확인" 신호를 보내고, 백그라운드에서 Gemini API를 호출합니다.

API 응답이 도착하면 소켓 이벤트를 통해 클라이언트에게 답변을 쏘아줍니다. 이 비동기 처리 덕분에 유저는 봇이 생각하는 동안에도 다른 게임을 즐길 수 있습니다. UX를 해치지 않으면서 AI 기능을 녹여내는 가장 효율적인 방법이었습니다.

3. 할루시네이션(Hallucination) 방지

AI는 가끔 거짓말을 합니다. 없는 게임을 있다고 하거나, 엉뚱한 링크를 주기도 하죠. 이를 막기 위해 프롬프트에 "제공된 리스트에 없는 내용은 지어내지 마"라는 제약 조건을 강력하게 걸었습니다.

또한, 봇이 욕설이나 부적절한 언어에 반응하지 않도록 안전 설정(Safety Settings)을 적용했습니다. 기술적 구현만큼이나 중요한 것이 바로 'AI 윤리'와 '서비스 안전성'이기 때문입니다.

🤖 AI와 함께하는 웹 개발

API 키 하나만 있으면 누구나 슈퍼컴퓨터의 지능을 빌려 쓸 수 있는 시대입니다. 여러분의 웹 사이트에도 작지만 똑똑한 AI 비서를 고용해 보는 건 어떨까요? 사용자 경험이 확 달라질 것입니다.

당신의 성향을 파악하고 게임을 추천해주는 AI!

🧬 AI 맞춤형 게이머 성향 테스트

이 글이 도움이 되셨나요?

친구들에게 공유하고 함께 이야기해보세요!

🤖