본문 바로가기
인공지능/OpenAI

[챗봇 만들기 feat.OpenAI] Completion, stop

by julysein 2024. 6. 23.
728x90

구성 환경

python 3.8

openai 0.28.0

 

앞의 문장을 주고, 뒤의 문장을 이어서 완성시키기

Completion 이라는 함수를 사용해보았다.

최신 openai api는 해당 함수를 지원하지 않아 openai버전을 0.28.0으로 downgrade 시켜준 뒤에 진행해야 한다

# Completetion 실행 하기
openai.Completion.create(
    model="gpt-3.5-turbo-instruct",
    prompt="The dog says "
)

결과에 대해 알아보자면

 

object: 실행한 내용
model : 사용된 모델
choices : 결과물, 여러 문장을 주어주고 (성능이 확실한지는 잘 모르겠다... 모델의 문제인지?)
- finish_reason : stop인 경우 -> 적절하게 문장이 끝났고 더 할 말이 없다.
                             length 인 경우 -> 길이가 너무 길어서 그냥 중간에 끊었다.
usage : 실행한 token수
- prompt_tokens : input으로 들어간 token
- completion_tokens: output으로 들어간 token

 

 

멈출 지점 지정하기

stop이라는 변수를 지정하여 챗봇이 멈추어야 하는 지점을 정해줄 수 있다.

 

먼저 2024년도 최고의 책들의 리스트를 보여달라고 했다.
한 달에 10달러를 max로 설정해두었는데 해당 결과물의 대답이 길었는지 limit을 초과해서 실행할 수 없다는 결과를 뱉었다...

 

1. max_tokens 설정해주기
- 그래서 다음과 같이 max_tokens를 설정해주었다.
- completion_token이 50으로 해당 위치에서 잘 끊겼다.
- 하지만 중간에 어중간한 위치에서 끊겼기 때문에 책을 3권만 출력하도록 설정해보고자 한다. 

 

 

2. Stop 설정해주기
- 어떠한 문자가 나왔을 때 해당문자를 포함하지 않고 종료시키는 지점을 정해줄 수 있다
- 우리의 경우 책을 3권만 출력시키도록 하려고 했기 때문에 stop에 "4."을 지정해주었다.
- 결과적으로 3권의 목록만 출력이 되는 걸 확인할 수 있다.

728x90