ํ์ฌ ์ ๋ฌด์ ์น์ฌ ์ ๋ง ์ค๋๋ง์ ํฌ์คํ ์ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค ใ ใ ...
๋ช ๋ฌ ์ ์ฏค์ ChatGPT ๊ด๋ จ ํฌ์คํ ์ ํ ์ ์ด ์์ต๋๋ค. ๋น์์๋ API๊ฐ ๊ณต๊ฐ๋์ง ์์ GPT 3.0 ๋ฒ์ ์ธ InstructGPT๋ก ๋์ ์ฌ์ฉ์ ํ์๊ณ , ๋ค๋ฅธ ๋ถ๋ค๋ Reverse Engineering์ ํ๊ฑฐ๋ ๋ธ๋ผ์ฐ์ ์ธ์ ์ผ๋ก ์ ๊ทผํ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ์ ํด์๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ํ์ง๋ง, ์ด์ ๊ทธ๋ด ํ์๊ฐ ์์ด์ก์ต๋๋ค.
ChatGPT์ API ๋ฒ์ ์ด 3์ 1์ผ์ ๊ณต๊ฐ๊ฐ ๋์์ต๋๋ค.
์ด์ ๋๊ตฌ๋ ์์ฝ๊ฒ ๋จ ์ธ ์ค์ ์ฝ๋ ๋ง์ผ๋ก ChatGPT๋ฅผ Python์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
(TMI: ChatGPT ์์ ์๋ Whisper์ ์์ฑ์ ํ ์คํธ๋ก ๋ณํํด์ฃผ๋ Speech-to-text (STT) ๋ชจ๋ธ์ ๋๋ค)
๊ตฌํํ๊ธฐ์ ์์ ๋ ๊ฐ์ง๊ฐ ํ์ํฉ๋๋ค:
1. OpenAI API Key
2. openai ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น (๋ฒ์ 0.27.0 ์ด์)
ใด ์ด๋ฏธ ์ค์น๋ฅผ ํ์ จ๋ค๋ฉด prompt ์์ pip install --upgrade openai ๋ก ๋ฒ์ ์ ๊ธ์ ํ์๋ฉด ๋ฉ๋๋ค.
ํค๋ฅผ ๋ฐ๊ธ๋ฐ๋ ๋ฐฉ๋ฒ๊ณผ ์ค์น ๋ฐฉ๋ฒ์ ์ ์ด์ ํฌ์คํ ์ ์์ธํ ์ ์ด๋์์ผ๋ ์ฐธ๊ณ ํ์๊ธธ ๋ฐ๋๋๋ค ๐๐
Python์ผ๋ก ๊ตฌํ
์ฝ๋๋ ์๋๊ฐ ๋์ ๋๋ค.
import openai
YOUR_API_KEY = '๋ฐ๊ธ๋ฐ์ Openai API ํค'
openai.api_key = YOUR_API_KEY
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Tell the world about the ChatGPT API in the style of a pirate."}]
)
print(completion)
openai.ChatCompletion.create() ๋ฉ์๋๋ role (์ญํ ), ๊ทธ๋ฆฌ๊ณ content (์ง๋ฌธ)์ด ๋ค์ด๊ฐ dictionary๋ฅผ list์ ํํ๋ก input์ ๋ฐ๋ ๊ฒ ๊ฐ์ต๋๋ค.
- content ๋ถ๋ถ์ ์ํ๋ ์ง๋ฌธ์ ์ง์ด๋ฃ์ผ๋ฉด ๋ฉ๋๋ค.
- role์ ๋ค์ด๊ฐ ์ ์๋ ํญ๋ชฉ์ “system”, “user”, “assistant” ์ด๋ ๊ฒ ์ธ ๊ฐ์ง ์ ๋๋ค.
์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฌผ
์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฌผ์ json ํํ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "\n\nAhoy, me hearties! Have ye heard about the ChatGPT API, the greatest treasure in all the seven seas of coding? This be the tool fer all ye swashbucklers and landlubbers who be wantin' to add a bit o' chat functionality to yer apps and websites.\n\nWith the ChatGPT API, ye can integrate text and voice chat, as well as language translation capabilities, into yer projects. Whether ye be needin' to connect with yer crew on a ship, or reach out to customers from far-off lands, this be the solution for yer communication needs.\n\nAnd this API be so easy to use, even a scallywag with little coding knowledge can set it up in no time! The ChatGPT API be a true treasure trove for any savvy developer, and it be free to boot. So what be ye waitin' for, me mateys? Hoist the Jolly Roger and set sail to the ChatGPT API today!",
"role": "assistant"
}
}
],
"created": 1678274175,
"id": "chatcmpl-6rm4Fd3aCEgglRqghwLk84SRJnv6S",
"model": "gpt-3.5-turbo-0301",
"object": "chat.completion",
"usage": {
"completion_tokens": 206,
"prompt_tokens": 23,
"total_tokens": 229
}
}
.py ํ์ผ๋ก ๊ตฌํ
์ฌ์ฉ ํธ์์ฑ์ ์ํด์ .py ํ์ผ๋ก๋ ๊ตฌํ์ ํด๋ดค์ต๋๋ค:
ํ๊ธ๋ก ์ง๋ฌธํ๋ฉด ์ธ์ฝ๋ฉ์ผ๋ก ๊นจ์ ธ์ ๋์ค๋ ํ์์ด ์๊ธฐ ๋๋ฌธ์, utf-8๋ก ๋ค์ ์ธ์ฝ๋ฉ์ ํ ๋ค ๋์ฝ๋ฉ์ ํด์คฌ์ต๋๋ค.
import openai
import argparse
YOUR_API_KEY = '๋ฐ๊ธ๋ฐ์ Openai API ํค'
def chatGPT(prompt, API_KEY=YOUR_API_KEY):
# set api key
openai.api_key = API_KEY
# Call the chat GPT API
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}]
)
# resolve encoding issue
return completion['choices'][0]['message'].encode('utf-8').decode().strip()
def main():
# ์ง๋ฌธ ์
๋ ฅ ๋
while True:
prompt = input("Insert a prompt: ")
if prompt.lower() == 'exit':
break
print(chatGPT(prompt))
print('='*60)
print('='*60)
print('\n')
if __name__ == '__main__':
main()
์คํ ์์
๋ชจ๋ ์ ๊ณ์์ ChatGPT๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ ์ง ๊ณ ๋ฏผ ์ค์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ์ค ๊ธฐ๋ฐ์ผ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ์ํํ๊ธฐ์๋ ๋ต๋ณ์ด ํ๋ฆด ์ ์๋ค๋ ๋ฆฌ์คํฌ๋ฅผ ํ์ด์ผํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด ์๋น์ค๋ ์ ๊ท ์๋น์ค๋ฅผ ๊ธฐํํ๋ ๋ฐ์๋ ์ด๋์ ๋ ์ด๋ ค์์ด ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์์ผ๋ก ChatGPT๊ฐ ์ธ์์ ์ด๋ค ๋ณํ๋ฅผ ๊ฐ์ ธ์ฌ์ง๋ ๋๊ณ ๋ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.
์ ๊ธฐ์ ์ ๊ฐ๋ฐํ๋ ๊ฒ๋ ๋ฌด์ฒ ์ด๋ ต์ง๋ง, ํ์กดํ๋ ๊ธฐ์ ์ ์ ์ฌ์ ์์ ์ ํ์ฉํ๋ ๊ฒ ๋ํ ์ด๋ ต๋ค๋ ๊ฒ์ ์์ฆ ๋๋ผ๊ณ ์์ต๋๋ค.
์ ํฌ์คํ ์ด ์กฐ๊ธ์ด๋๋ง ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๐
'๐ป ITยท๊ธฐ์ ยทํต๊ณ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Tips] Python์ค๋ฝ๊ฒ ์ฝ๋ ์์ฑํ๊ธฐ (0) | 2023.03.12 |
---|---|
[Snippet] ์ํฉ๋ณ Tuple, List ๋ณํ ๋ฐฉ๋ฒ (0) | 2023.03.10 |
[NLP] lexrankr๋ก 3์ค ์์ฝํด๋ณด๊ธฐ (0) | 2023.02.15 |
[์นํฌ๋กค๋ง 3ํ - ไธ] requests-html์ ํ์ฉํ ๋ค์ด๋ฒ ๋ด์ค ๊ฐ์ ธ์ค๊ธฐ (0) | 2023.02.15 |
Image to Textโฆ? ์ด๋ฏธ์ง๋ก ์์คํค ์ํธ ์์ฑํ๊ธฐ (2) | 2023.02.11 |
๋๊ธ