ChatGPT API를 활용하는 방법은 이미 널리 알려져있다.
ChatGPT는 LLM 중에서는 속도가 가장 빠른 편에 속한다, 하지만
아무리 빨라도 5초 이상 걸리는 부분이 대부분이였고, 프롬프트를 튜닝하고,
MAX_TOKEN을 설정해봐도 시간을 정확하게 컨트롤하기는 어려웠다.
그래서 API 가 아니라 실제 웹에서 사용하는 방식으로 사용자에게 전달하면
답변이 완성되기 전에 입력과정을 볼 수 있기때문에 사용자입장에서
시간이 좀 걸리더라도 느리다고 느낄 수 없게 된다.
기존 API 호출 방법에서 steam=True 옵션을 사용하면 된다.
import openai
openai.api_key = "<MY_KEY>"
input_text = "점심 메뉴 추천좀"
messages = [{"role": "user", "content": input_text}]
completion = openai.ChatCompletion.create(
model='gpt-3.5-turbo',
messages=messages,
stream=True)
for line in completion:
chunk = line['choices'][0].get('delta', {}).get('content', '')
if chunk:
print(chunk, end='')

글 재미있게 봤습니다.