구성 환경
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권의 목록만 출력이 되는 걸 확인할 수 있다.
'인공지능 > OpenAI' 카테고리의 다른 글
[챗봇 만들기 feat.OpenAI] 선택지 여러개 요청하기, 결과에 질문을 같이 나오게 하기 (n, echo) (0) | 2024.07.04 |
---|