챗봇1.py
Google Gemini를 활용한 대화형 챗봇 구현
개요
| 항목 | 내용 |
|---|---|
| API | Google Generative AI |
| 모델 | gemini-2.5-flash |
| 기능 | 대화 세션 관리, 시스템 지침 설정 |
전체 소스 코드
import os
from google import genai
from google.genai import types
# --- 설정 (실제 API 키로 대체) ---
MyKey = "YOUR_GEMINI_API_KEY"
MODEL_NAME = 'gemini-2.5-flash'
try:
client = genai.Client(api_key=MyKey)
except Exception as e:
print(f"클라이언트 초기화 오류: {e}")
client = None
# 챗봇을 위한 시스템 지침
SYSTEM_INSTRUCTION = (
"당신은 친절하고 유머러스한 한국어 챗봇입니다. "
"사용자의 질문에 대해 간결하고 명확하게 답변해 주세요."
)
def run_chatbot_session():
if not client:
print("\n[SKIP] 클라이언트 초기화 실패")
return
# 1. 챗 세션 생성
# ⭐️ system_instruction을 통해 챗봇의 성격과 역할을 정의합니다.
chat = client.chats.create(
model='gemini-2.5-flash',
config=types.GenerateContentConfig(
system_instruction=SYSTEM_INSTRUCTION
)
)
print("="*50)
print("🤖 챗봇 시작: '종료'를 입력하면 대화가 끝납니다.")
print("="*50)
# 2. 무한 루프를 돌며 사용자 입력 대기
while True:
try:
user_input = input("👤 나: ")
if user_input.lower() == '종료':
print("🤖 챗봇: 대화를 종료합니다. 다음에 또 만나요!")
break
if not user_input.strip():
continue
# 3. 메시지 전송 및 응답 받기
response = chat.send_message(user_input)
# 4. 응답 출력
print(f"🤖 챗봇: {response.text}")
except Exception as e:
print(f"\n[오류 발생]: {e}")
break
# 5. 대화 기록 출력 함수 (옵션)
def print_history(chat):
print("\n--- 대화 기록(History) ---")
for message in chat.get_history():
role = message.role
text = message.parts[0].text
print(f"[{role.upper()}]: {text}")
# 챗봇 세션 실행
if __name__ == '__main__':
run_chatbot_session()
핵심 개념
1. 챗 세션 생성
chat = client.chats.create(
model='gemini-2.5-flash',
config=types.GenerateContentConfig(
system_instruction=SYSTEM_INSTRUCTION
)
)
시스템 지침 (System Instruction)
- 챗봇의 성격, 역할, 행동 방식 정의
- 모든 대화에 일관되게 적용
2. 메시지 전송
response = chat.send_message(user_input)
print(response.text)
send_message()는 자동으로 대화 기록(History)을 관리
3. 대화 흐름
┌─────────────────┐
│ 챗 세션 생성 │ ← System Instruction 설정
└────────┬────────┘
↓
┌─────────────────┐
│ 사용자 입력 │ ← input()
└────────┬────────┘
↓
┌─────────────────┐
│ send_message() │ ← 이전 대화 기록 자동 포함
└────────┬────────┘
↓
┌─────────────────┐
│ AI 응답 출력 │
└────────┬────────┘
↓
반복 (종료 전까지)
실행 방법
pip install google-generativeai
python 챗봇1.py
실행 예시
==================================================
🤖 챗봇 시작: '종료'를 입력하면 대화가 끝납니다.
==================================================
👤 나: 안녕하세요!
🤖 챗봇: 안녕하세요! 반가워요~ 오늘 뭐 도와드릴까요? 😊
👤 나: 오늘 날씨 어때?
🤖 챗봇: 저는 실시간 날씨 정보는 확인할 수 없어요!
하지만 기상청 앱이나 포털에서 확인해 보시면 좋을 것 같아요~ ☀️
👤 나: 종료
🤖 챗봇: 대화를 종료합니다. 다음에 또 만나요!
시스템 지침 예시
# 전문가 챗봇
SYSTEM_INSTRUCTION = "당신은 10년 경력의 파이썬 개발자입니다."
# 친근한 챗봇
SYSTEM_INSTRUCTION = "당신은 친구처럼 대화하는 반말 챗봇입니다."
# 교육용 챗봇
SYSTEM_INSTRUCTION = "당신은 초등학생을 가르치는 선생님입니다. 쉽게 설명해주세요."