반응형
본 게시글은 23년 11월 16일에 작성된 글입니다.
API Key 발급
서드파티 API이기 때문에 KEY를 발급받아야 한다.
이미 만들어져 있지만 key를 새로 만들어주자.
Key는 다시는 확인할 수 없으므로 잘 확인해서 관리하자.
생성하면 Usage에서 무료 크레딧이 발급되는 것을 확인할 수 있다.
모델 선택
Gpt-3 Model
자연어를 이해하고 생성하는 모델. Davinci는 가장 유능한 모델이고, Ada는 가장 빠른 모델. 빠를 수록 기대 성능은 떨어진다.
- text-davinci-003 : 가장 유능한 GPT-3 모델. 다른 모델이 할 수 있는 모든 작업을 수행할 수 있으며, 종종 더 높은 품질, 더 긴 출력 및 더 나은 지침 준수로 수행한다.
- text-curie-001 : Davinci보다는 덜 유능하지만 빠르고 cost가 낮다.
- text-babbage-001 : 간단한 작업이 가능하고 매우 빠르고 cost가 더 낮다.
- text-ada-001 : 매우 간단한 작업이 가능하고, GPT-3 시리즈에서 가장 빠른 모델이며 cost가 가장 낮다.
codex Model
JavaScript, Go, Perl, PHP, Ruby, Swift, TypeScript, SQL, 심지어 Shell을 포함한 12개 이상의 언어에 능숙하며, Python을 가장 잘 이해/생성한다고 한다.
- code-davinci-002 : 가장 유능한 Codex 모델. 자연어를 코드로 변환한다. 코드를 완성하는 것 외에도 코드를 중간에 삽입해 완성하는 기능도 지원한다.
- code-cushman-001 : Davinci와 거의 비슷하지만 약간 더 빠르다. 이러한 속도를 이점으로 실시간성이 필요한 곳에 사용하는게 바람직하다.
사용가능 Model
위 모델들은 대부분 현재 depreciated 됐다.
공식문서를 최대한 참조하자. 밑의 API 사용의 모델을 잘 살펴보자.
API 사용
Model 상태 확인
curl https://api.openai.com/v1/models/model-name \
-H 'Authorization: Bearer YOUR_API_KEY'
{
"id": "text-davinci-003",
"object": "model",
"owned_by": "openai",
"permission": [...]
}
permission 내부에 is_blocked 값인데, 현재 해당 모델이 사용 가능한지 아닌지 알려준다.
Completion
문답을 주고 받는 API이다.
curl https://api.openai.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"model": "gpt-3.5-turbo-1106",
"messages": [
{
"role": "system",
"content": "You must respond in Korean, and you will summarize the user's input into three Korean words as hashtags. The hashtags should be nouns and highly relevant to the user's statement."
},
{
"role": "user",
"content": "오늘은 하늘이 맑고 신선한 공기가 입마름할 정도로 시원하다. 아침에는 새소리에 깨어나 기분 좋게 출발했다. 수업 중에는 친구들과 재미있는 이야기를 나누며 시간이 어떻게 지나갔는지 모르게 됐다. 점심 시간에는 학교 앞 분식집에서 떡볶이와 튀김을 먹으면서 웃음 속에 에너지를 얻었다. 오후에는 동아리 활동에 참여하여 창의적인 생각을 공유하고 팀원들과 협업하는 시간을 보냈다. 하루가 저물면서 집에 돌아와 과제에 몰두했는데, 공부하는 동안도 머릿속에는 오늘 있었던 즐거운 순간들이 번졌다. 특히, 오늘은 친구들과 함께한 순간이 기억에 남는 하루였다."
}
]
}
'
- model : 어떤 GPT 모델을 사용할지 지정
- message : role을 정할 수 있다. system role로 gpt에게 역할을 부여할 수 있으며 user role로 프롬프트를 작성할 수 있다.
Edit
Edit은 입력 문자열과 그 문자열에 어떤 조치를 취하고 싶은지를 입력하면 그 조치가 적용된 문자열을 return 주는 API다.
현재 depreciate를 넘어 api가 막혔다. 사용불가
curl https://api.openai.com/v1/edits \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"model": "text-davinci-edit-001",
"input": "What day of the wek is it?",
"instruction": "Fix the spelling mistakes"
}'
- input : 내가 수정하고 싶은 문자열
- instruction : input 문자열을 어떻게 수정하고 싶은지 적는 명령어
Image
Images는 문자열을 받고, 이미지를 return해주는 API다. base64 포맷과 url 두 종류로 값을 return한다.
curl https://api.openai.com/v1/images/generations \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"prompt": "A cute baby sea otter",
"n": 2,
"size": "1024x1024"
}'
- prompt : 만들고 싶은 이미지에 대한 설명
- n : 생성 이미지 개수
- size : 이미지 크기
RestTemplate
사용시 RestTemplate을 Config로 등록해서 사용하자.
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate() {
RestTemplate restTemplate = new RestTemplate();
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setConnectTimeout(5000);
requestFactory.setReadTimeout(5000);
restTemplate.setRequestFactory(requestFactory);
return restTemplate;
}
}
반응형
'Backend > 기타' 카테고리의 다른 글
Google OAuth (0) | 2025.01.26 |
---|