ㅁ 개요
O 프로젝트 소개
- 이번 글은 이전글(나만의 AI챗봇만들기(API버전) - 3. AI챗봇 : 계속 질문하기)에 이은 5번째 글로 이전 글들의 프로그램들은 이전 질문에 대한 기억이 없습니다. 따라서 이전 질문들과 연관지어 질문할 수 없어 다시 처음부터 질문해야 하는 불편함이 존재하는데, 여기서는 AI챗봇이 이전 질문들을 기억하고 대답할 수 있도록 하는 방법에 대해 알아보겠습니다.
O 완성된 프로그램 실행 화면
1. 4.py 실행 시 첫번째 질문이 루트4에대한 답을 묻고 있으며, AI챗봇이 '2'로 대답하였습니다.
그리고 추가 질문으로 왜 '2'가 답인지 물어 보았는데, 이전 질문은 기억하고 있으므로 엉뚱한 답을 하는 것이 아니라, 이전 내용에 대한 답변을 잘 하고 있음을 볼 수 있습니다.
ㅁ 세부 내용
O 완성된 소스
소스파일 : 4.py
from config import *
from groq import Groq
import time
# client = Groq(
# api_key=os.environ.get("GROQ_API_KEY"),
# )
print("AI챗봇을 종료하려면 'bye'를 입력하세요.\n")
content = ""
while True:
prompt = input("궁금하신 점을 질문을 해주세요 : ")
if prompt == 'bye':
print("AI챗봇을 종료합니다.")
break
client = Groq(
api_key=GROQ_API_KEY,
)
chat_completion = client.chat.completions.create(
messages=[
{
"role": "system",
"content": "모든 응답은 한국어로 작성해 주세요.",
},
{
"role": "user",
"content": content, ############### 이전 질문 기억하고 답변하기 #######################
},
{
"role": "user",
"content": prompt,
}
],
# model="gemma-7b-it",
model="llama3-8b-8192",
# model="llama3-groq-8b-8192-tool-use-preview",
)
print(chat_completion.choices[0].message.content)
msg = chat_completion.choices[0].message.content ############### 이전 질문 기억하고 답변하기 #######################
print("\n============================================================\n")
time.sleep(1)
content = content + msg ############### 이전 질문 기억하고 답변하기 #######################
O 소스 실행 방법
O 주요 내용
아래 소스코드에 대한 주요 내용만 설명하겠습니다.
소스 파일 : 4.py
line 7 : 이전 질의/응답의 내용을 받을 수 있도록 content 변수를 정의합니다.
line 25~28 : 사용자의 역할을 정의하는데, 여기에 이전 질의/응답을 content(질의문)에 함께 넣어줍니다. 이를 통해 AI챗봇이 이전 질의/응답의 내용을 파악할 수 있습니다.
line 29~32 :사용자가 새로운 질문(prompt)을 합니다.
line 40 : 이번에 질의한 내용에 해당하는 답변(응답값)을 msg변수에 할당하고
line 43 : content변수에 이전 질의/응답(content) + 이번 질의에 대한 응답값을 함께 담아둡니다. 이를 통해 content변수에 항상 이전의 모든 질의/응답의 내용을 가지고 있도록 해줍니다.
ㅁ 정리
O 우리가 배운 내용
핵심내용
아래 코드에서 노란색으로 표시된 부분이 핵심 내용으로 이를 통해 이전 질의/응답을 AI챗봇이 기억할 수 있게 합니다.
===============================================
chat_completion = client.chat.completions.create(
messages=[
{
"role": "system",
"content": "모든 응답은 한국어로 작성해 주세요.",
},
{
"role": "user",
"content": content, # 이전 질의/응답을 기억
},
{
"role": "user",
"content": prompt,
}
],
# model="gemma-7b-it",
model="llama3-8b-8192",
# model="llama3-groq-8b-8192-tool-use-preview",
)
print(chat_completion.choices[0].message.content)
msg = chat_completion.choices[0].message.content # 이번 prompt에 대한 챗봇의 응답값을 msg변수에 담고
print("\n============================================================\n")
time.sleep(1)
content = content + msg # 이전 질의/응답과 이번 응답을 합쳐서 content변수에 할당
오늘은 여기까지이며, 위의 내용이 유익하셨다면, 광고 한번씩만 클릭 부탁드립니다.
감사합니다.
'파이썬 AI 실습 > 나만의 AI챗봇 만들기(API버전)' 카테고리의 다른 글
나만의 AI챗봇만들기(API버전) - 5. AI챗봇 : 윈도우 버전 - 5.2 메시지 송수신 기능 추가 (0) | 2024.08.04 |
---|---|
나만의 AI챗봇만들기(API버전) - 5. AI챗봇 : 윈도우 버전 - 5.1 윈도우창 띄우기 (0) | 2024.08.04 |
나만의 AI챗봇만들기(API버전) - 3. AI챗봇 : 계속 질문하기 (0) | 2024.07.31 |
나만의 AI챗봇만들기(API버전) - 2.AI챗봇 : 한국어 버전 만들기 (0) | 2024.07.31 |
나만의 AI챗봇만들기(API버전) - 1.AI챗봇 : 기본 (23) | 2024.07.28 |