티스토리 뷰
반응형
OpenAPI 의 chat-completions-api 부분을 정리해보았습니다.
Chat 모델은 input 으로 a list of messages 를 받고, model-generated message 를 출력합니다.
비록 대화 형식이 multi-turn 대화를 쉽게 하기 위해 설계되었지만, 어떤 대화 없이도 single-turn tasks 를 하기에도 유용합니다. (Zero-shot learner 를 뜻하는 듯?)
API 사용 예
import openai
openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
{"role": "user", "content": "Where was it played?"}
]
)
주요 입력은 Messages parameter 이다.
Messages 는 message objects 의 배열이며,
- 각 object 는 role("system", "user", or "assistant")) 과 content를 가진다.
일반적으로 대화는 먼저 system 메시지로 포맷된 후 user 와 assistant 메시지를 번갈아 표시합니다.
(주로 user 는 사용자 입력이고, assistant 는 사용자 입력에 대한 openai 의 출력이다. )
* system 메시지
:전체 대화에서 openai 의 응답을 설정하는데 도움을 줍니다. (예를 들어 넌 물건 사는데 도움을 주는 챗봇이야, 내 예의 바른 개인 비서야 등등) 이는 선택 사항이며, system 메시지가 없다면, "You are a helpful assistant." 와 같은 일반적인 메세지를 사용하는 것과 유사할 수 있습니다.
* user 메시지
: 사용자의 질문이나 설명입니다.
* assistant 메시지
: 이전 assistant 메시지(openai 응답)을 저장하지만, 사용자가 원하는 동작의 예를 제공하기 위해 작성할 수도 있습니다.
openai 로 요청을 보낼 때 대화 기록을 포함하는 것이 중요하다.
위의 예를 보면 openai 와 서로 주고받은 내용이 모두 포함되어 있다. 왜냐하면 openai 는 과거 요청을 기억하지 않기 때문입니다. "Where was it played?" 만 사용자가 보낸다면, 올바른 응답을 얻을 수 없습니다.
만약 대화가 모델의 토큰 한도 내에 들어갈 수 없는 경우, 어떤 식으로든 대화를 단축해야합니다.
API 응답 예
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "The 2020 World Series was played in Texas at Globe Life Field in Arlington.",
"role": "assistant"
}
}
],
"created": 1677664795,
"id": "chatcmpl-7QyqpwdfhqwajicIEznoc6Q47XAyW",
"model": "gpt-3.5-turbo-0613",
"object": "chat.completion",
"usage": {
"completion_tokens": 17,
"prompt_tokens": 57,
"total_tokens": 74
}
}
파이썬의 경우, 응답을 아래 코드로 가지고 올 수 있다.
response['choices'][0]['message']['content']
반응형
'GPT' 카테고리의 다른 글
ChatGPT 관련 App개발 주저리주저리 (0) | 2023.06.14 |
---|
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 연금저축
- Dash.html
- 경제주체별 M2
- Forgiving
- 마연굴
- 말잔
- 원계열
- 내 연금조회
- 통화량 데이타
- 객사오
- 프로그래스바 표시
- 리치고 주식
- M1/M2
- 환율데이터
- 환율이평선
- 경제는 어떻게 움직이는가
- M1M2비율
- dash
- 블록해쉬
- 위경도변환
- 연금등록
- Dash 와 html 차이
- 계정조정계열
- pandas apply
- ChatGPT
- 리치고
- 주소를 위경도 변환
- 환매시점
- 블록해쉬구현
- 김성일 작가님
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함