| 33번째 줄: |
33번째 줄: |
| | https://platform.openai.com/docs/models/overview | | https://platform.openai.com/docs/models/overview |
| | | | | | |
| | + | |- |
| | + | |요금정보 |
| | + | |Fine Tunning도 가능하다. 다양한 모델과 미세조정을 위한 요금은 비고를 참고하자. |
| | + | [https://platform.openai.com/account/billing/overview 결제는 이곳에서.] |
| | + | |요금표. https://openai.com/pricing#language-models |
| | |} | | |} |
| | | | |
| − | == 사용 ==
| + | = 사용 = |
| | | | |
| − | === 기본 형태 === | + | = 사용(구버전) = |
| | + | 나온지 얼마나 됐다고, 호출하는 형태가 달라졌다; 굉장히 귀찮은 일이다;; 아래의 방식을 그대로 사용하고 싶다면 <code>pip install openai==0.28</code>을 사용하자. |
| | + | |
| | + | === 기본 형태(채팅) === |
| | 기본 형태가... 결과물에 따라 천차만별이 된다. https://platform.openai.com/docs/introduction<nowiki/>를 보며 만들어가는 게 좋을듯. | | 기본 형태가... 결과물에 따라 천차만별이 된다. https://platform.openai.com/docs/introduction<nowiki/>를 보며 만들어가는 게 좋을듯. |
| | + | {| class="wikitable" |
| | + | !과정 |
| | + | !설명 |
| | + | !비고 |
| | + | |- |
| | + | |기본 형태 |
| | + | |일반적으로 웹사이트에서 이용하는 형태의 응답을 주고받기 위한 형태. |
| | + | |<syntaxhighlight lang="python"> |
| | + | import openai |
| | + | |
| | + | openai.api_key = "API키 넣을 자리" |
| | + | |
| | + | response = openai.ChatCompletion.create( |
| | + | model="gpt-3.5-turbo" |
| | + | messages=[ |
| | + | {'role':'user', 'content':'작성하고 싶은 프롬프트'} |
| | + | ] |
| | + | ) |
| | + | |
| | + | print(response['choices'][0]['message']['content']) # 응답 중 답변만 추출한다. |
| | + | </syntaxhighlight> |
| | + | |- |
| | + | |역할 부여. |
| | + | |message 안에서 역할을 부여할 수 있다. |
| | + | |다음과 같이 수정한다.<syntaxhighlight lang="python"> |
| | + | messages=[ |
| | + | {'role':'system','content':'부여할 역할을 설명해 전달한다.'}, |
| | + | {'role':'user','content':'물어보고 싶은 내용.'} |
| | + | ] |
| | + | </syntaxhighlight> |
| | + | |- |
| | + | |이전 대화 기억. |
| | + | |이전 대화를 기억해 마치 사람과 대화하듯.. |
| | + | 이전 대화에 대한 정보를 넣는 데에도 토큰을 사용하니 유의하자. |
| | + | |다음과 같이 수정한다.<syntaxhighlight lang="python"> |
| | + | messages=[ |
| | + | {'role':'system','content':'부여할 역할을 설명해 전달한다.'}, |
| | + | {'role':'user','content':'이전에 물어본 내용.'}, |
| | + | {'role':'assistant', 'content':'물어본 내용에 대한 답.'}, |
| | + | {'role':'user','content':'새로이 물어볼 내용.'} |
| | + | ] |
| | + | </syntaxhighlight>위처럼 assistant와 user를 추가해 전달하면 이전 대화를 기억하는 것처럼 작동한다. |
| | + | |} |
| | + | |
| | + | === 기본 형태(채팅이 아닌 단답 문장 완성형) === |
| | + | 위와 다른 점만 기입하겠다. |
| | + | {| class="wikitable" |
| | + | !채팅형 |
| | + | !단답형 |
| | + | |- |
| | + | |<syntaxhighlight lang="python"> |
| | + | import openai |
| | + | |
| | + | openai.api_key = "API키 넣을 자리" |
| | + | |
| | + | response = openai.ChatCompletion.create( |
| | + | model="gpt-3.5-turbo" |
| | + | messages=[ |
| | + | {'role':'user', 'content':'작성하고 싶은 프롬프트'} |
| | + | ] |
| | + | ) |
| | + | |
| | + | print(response['choices'][0]['message']['content']) # 응답 중 답변만 추출한다. |
| | + | </syntaxhighlight> |
| | + | | |
| | + | # openai.ChatCompletion.create 대신 openai.Completion.create을 사용한다. |
| | + | # model이 아닌, engine에 모델명을 기입한다. |
| | + | # messages가 아닌 prompt가 텍스트 형태로 input이 된다. |
| | + | <syntaxhighlight lang="python3"> |
| | + | import openai |
| | + | openai.api_key = "API키 넣기." |
| | + | # 조건 |
| | + | model = 'text-davinci-003' # 선택할 수 있게! ex) gpt-3.5-turbo |
| | + | max_tokens = 1700 # 입력에 1000정도 사용해서. 출력은 700 이하가 되게끔. |
| | + | |
| | + | response = openai.Completion.create( |
| | + | engine=model, |
| | + | prompt='api 사용을 시도해보고 있어. 아무 말이나 해봐~', |
| | + | max_tokens=max_tokens |
| | + | ) |
| | + | print(response) |
| | + | print('답변') |
| | + | print(response['choices'][0]['text']) # 응답 중 답변만 추출한다. |
| | + | response = response['choices'][0]['text'] |
| | + | </syntaxhighlight> |
| | + | |} |
| | [[분류:ChatGPT]] | | [[분류:ChatGPT]] |
| | + | [[분류:인공지능 라이브러리]] |