파이썬으로 openai에 요청하여 응답을 받아보자! 간지나는 무언가를 만들 수 있을 것만 같아요..?
예전에는 request를 통해서 openai에 요청하고 그랬는데 다시 알아보니 openai의 공식 python 관련 라이브러리가 따로 있었다.
정말 top-notch&full-fledged 개발자라면 자기 입맛에 맞게 requests를 사용해서 이것저것 할 수 있겠지만
나는 그냥 편하게 openai에서 직접 업데이트하고 호환성을 맞춰주는 라이브러리를 사용하겠다.
코드 보기
나는 어떤 녀석을 쓸거냐면...
코드는 얼추 이렇다.
import openai
openai.api_key='{당신이 발급받은 openai key}'
def request_openai(input_text):
try:
chat_completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{
"role": "system", # 사용하려는 용도가 어떤 것인지... 기계에게 너는 어떤 역할이라는 것을 알려줘라
"content": "You're a machine for ~~ write anything you want"
},
{
"role": "assistant", # 부가적으로 필요한 것이 무엇인지 알려줘라(필수는 아님)
"content": "Something is bla bla..."
},
{
"role": "user",
"content": f"Answer this question. {input_text}"
}
],
temperature=0
)
return jsonify({
"code": True,
"result": chat_completion.choices[0].message.content
}), 200
except Exception as e:
print(e)
if e.code == "context_length_exceeded":
return jsonify({
"code": False,
"message": "요청 가능 token수 초과",
"error_code": "context_length_exceeded"
}), 500
if cnt>5:
return jsonify({
"code": False,
"message": "open ai 에러입니다. 잠시 후 다시 사용해주세요."
}), 500
time.sleep(5)
return request_openai(input_text, cnt+1)
message(구 prompt)
에 굳이 영어를 쓴건 아무래도 영어가 조금이라도 더 이해가 좋고 빠르지 않을까 싶어서다.. 어차피 한국어로 질문하면 한국어로 답을 하니 나는 영어로 지시했다.
- 여담으로 얼마 전에 open ai 서버가 터진 일이 있었다. 자그마치 3시간 넘게 작동이 안됐었는데...
만약 openai 서버가 지금 잘 작동하는지 아닌지 확인하려면 OpenAI Status 에서 확인할 수 있다.
- 물론 openai 서버 문제로 인해 응답을 못받으면 아마 500에러가 돌아왔던걸로 기억하는데.. 일단 바로 고쳐질 수 도 있으니 나는 try excep를 통해 오류가 생겼을 때 5번까지는 계속 시도하게 코드를 짰다. 문제가 없는데 어쩌다 한번씩 응답이 제대로 안오는 경우도 있기 때문
openai의 옵션값 temperature
와 top_p
이때 옵션값으로 중요한 부분이 temperature
와 top_p
가 있다. 이 값에 따라 대답하는 형식이 많이 달라질 수 있다.
간단히 말해 temperature는 말을 현학적으로 해주는 지수를 높여준다.
`creativity`를 조절하거나 텍스트 생성을 무작위로 뽑는 지수를 높여준다. 예를 들어 temperature지수가 0.7보다 높을 경우 다양하고 현학적으로 말을 뱉는 반면, 낮은 지수인 0.2가 되면 좀더 확정적이고 사용자의 질문에 초점을 맞춰서 답을 하게 된다. 이러한 경우 채팅의 경우 temperature를 높이고, 기술번역을 하는 경우에는 temperature를 낮추는게 좋아보인다.
top_p의 경우
다음 글이 잘 정리되어있으니 참고...!
간단히 말하면 답변을 몇 개 받을 지 정하는 것이다.
숫자가 작아질수록 답변의 variation...다양성이 낮춰진다고 보면 될 것 같다.
옵션값을 조정하면서 바로 결과를 확인하고 싶다면 OpenAI Playground가 있으니
여길 참고해서 편하게 써보면 되겠다.
참고
⛺️ Cheat Sheet: Mastering Temperature and Top_p in ChatGPT API (a few tips and tricks on controlling the creativity/determin
Hello everyone! Ok, I admit had help from OpenAi with this. But what I “helped” put together I think can greatly improve the results and costs of using OpenAi within your apps and plugins, specially for those looking to guide internal prompts for plugi
community.openai.com
OpenAI Platform
Explore developer resources, tutorials, API docs, and dynamic examples to get the most out of OpenAI's platform.
platform.openai.com
'Back-up > etc' 카테고리의 다른 글
vscode에서 ec2 인스턴스 접속 (0) | 2024.12.11 |
---|---|
putty 대신에 쓸만한 ssh, ftp 툴(window, mac) 추천 (0) | 2023.10.28 |
[Nginx] nginx.conf 수정 후 restart 전 주의하기 (2) | 2023.10.13 |
리눅스 명령어 정리 (0) | 2023.07.23 |
cicd (0) | 2023.07.06 |