첫번째 챗봇 실행해 보기
먼저 !pip install openai 를 눌러 필요한 패키지를 설치해 주세요. 이는 터미널 환경에서 openai 파이썬 패키지를 설치하는 명령어입니다. 설치 도중에 빨간색 문구가 표시되도 실습에는 괜찮으니 넘어가 주세요.
openai 파이썬 패키지는 앞서 말했던 API를 사용하기 쉽게 만들어 놓은 것입니다.
요청하기
chat_completion = client.chat.completions.create(
messages=[
{ "role": "system",
"content": "한글로 응답해줘." },
{
"role": "user",
"content": "hello, world",
},
{
"role": "assistant",
"content": "안녕하세요. 무엇을 도와드릴까요?",
}
],
model="gpt-3.5-turbo",
)
역할(role)은 system
, user
,assistant
. 중 하나입니다. system은 챗봇의 전체적인 역할과 방향을 정해 줍니다. user 는 사용자의 메시지이고 assistant는 ChatGPT의 응답입니다. 예시처럼 ChatGPT의 응답을 요청값에 보내면 ChatGPT가 응답할 때 맥락을 고려할 수 있게 됩니다.
응답결과
chat completions를 실제 실행한 결과입니다. 이런식으로 파이썬의 객체로 표시됩니다.
ChatCompletion(
id='chatcmpl-8jzgzHWXoJdpyWGGMQkQnapDrKWe3',
choices=[Choice(finish_reason='stop', index=0, logprobs=None,
message=ChatCompletionMessage(content='Hello! How can I assist you today?',
role='assistant', function_call=None, tool_calls=None))],
created=1705972597, model='gpt-3.5-turbo-0613', object='chat.completion',
system_fingerprint=None,
usage=CompletionUsage(completion_tokens=9, prompt_tokens=10, total_tokens=19))
choices 배열의 0번의 message.content 로 메시지에 접근할 수 있습니다. chat_completion.choices[0].message.content
prompt token 부분을 보시면 질문을 할 때 9 토큰, 응답에 10 토큰이 사용되었음을 알 수 있습니다.
completion_tokens=9, prompt_tokens=10, total_tokens=19
gpt 3.5 turbo의 토큰 제한은 4096 토큰입니다. 질문에 4000 토큰을 썼다면 응답에는 96토큰만 사용할 수 있습니다. 각 모델의 토큰 제한을 알고 싶다면 이 문서를 참고해 주세요.
토큰이란?
LLM은 훈련 텍스트에서 많이 사용되는 글자를 하나의 토큰으로 치환해서 처리합니다. 이렇게 토큰을 활용해서 텍스트를 압축하고 효율적으로 처리할 수 있습니다.