💻 구현하기
https://platform.openai.com/settings/proj_zzb8f03TCYi7XeHCuL1KIZtZ/api-keys
여기 사이트 들어가서, 왼쪽 바에서 API Keys 클릭하면 아래와 같은 화면이 나올것이다.
Create new secret key 클릭해서 키를 생성해주자
키는 한번 발급하면 재발급해야되므로 메모장에 저장해두자
그리고 이 API는 결제를 해줘야 API호출을 할 수 있어서 카드를 등록해 결제해줘야한다ㅠㅠ
https://platform.openai.com/settings/organization/billing/overview
해당 사이트 들어가서 카드를 등록해주자.
나는 일단 기본 5달러가 청구되도록 설정해두었다. 약 7천몇백원정도가 빠져나갔다
💻 Postman test
그런다음 postman으로 잘 호출이 되는지 확인해보자.
POST 요청으로 기본 base url은 https://api.openai.com/v1/chat/completions 이걸로 설정해준다.
Content-Type은 application/json로 설정해서 json형태로 출력되게하고
Authorization은 Bearer {발급받은 api키} 형태로 작성해준다.
그런다음 body - row를 설정해서 위와 같이 작성해준다.
model은 현재로서는 3.5, 4모델이 있는데 3.5는 속도가 빠르고 비용이 저렴하고 간단한 질문에 최적화되어있다
반면 4는 비용이 높고, 응답 시간이 약간 느릴수있지만 정교하고 논리적인 작업에 적합하다.
나는 취준생이라... 비용문제도 걱정되고, 애초에 구현할 부분이 간단한 응답이라서 3.5로 결정했다!
messages: 대화 형식으로, system, user, assistant 역할을 구분해 작성.
max_tokens: 응답으로 받을 최대 토큰 수
temperature: 응답의 창의성 정도 (0.0 ~ 1.0)
상세한 요청,응답 구조는 아래와 같다.
간단하게 설명해보면, "오늘날씨어때?" 라고 질문하니, "오늘 날씨는 맑고 따뜻합니다." 라는 응답이 나온것을 확인할 수 있다.
<요청>
{
"model": "gpt-3.5-turbo",
"messages": [
{ "role": "system", "content": "Be brief." },
{ "role": "user", "content": "오늘날씨어때?" }
],
"max_tokens": 20,
"temperature": 0.5
}
<응답>
{
"id": "chatcmpl-BfqyIwb0DNGQGklaQwL6RfWmjiLLW",
"object": "chat.completion",
"created": 1749314770,
"model": "gpt-3.5-turbo-0125",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "오늘 날씨는 맑고 따뜻합니다.",
"refusal": null,
"annotations": []
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 26,
"completion_tokens": 19,
"total_tokens": 45,
"prompt_tokens_details": {
"cached_tokens": 0,
"audio_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 0,
"audio_tokens": 0,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
},
"service_tier": "default",
"system_fingerprint": null
}
이제 postman으로 잘 불러오는걸 확인했으니깐, 해당 API를 활용해서 앱을 만들어볼 예정이다.
gpt api를 내가 원하는 방향에 맞게 학습시키는 것을 '파인튜닝'이라고 한다는데, 파인튜닝을 해서 앱을 만들어보려한다.
조금더 찾아보니깐 파인튜딩, 프롬프트 엔지니어링 등을 통해 학습시킬 수 있다고한다.
근데 해당 API비용은 토큰수, 즉, 글자수로 청구되기때문에 테스트할때는 글자수를 최대한,,,,, 줄여서 테스트하는게 좋을것같다!
📚 참고자료
'Android Project > 지키미' 카테고리의 다른 글
[Android/Kotlin] Room DB를 사용해 대피소 검색기능 구현하기 (0) | 2025.06.07 |
---|---|
[IP제한 해제] 공공데이터 유저IP값 제한없이 사용하는 방법 (0) | 2025.05.28 |
[Android 배포] 플레이스토어 앱배포 aab 파일 업로드 오류 [Android App Bundle이 잘못된 키로 서명되었습니다. 제대로 된 서명 키로 App Bundle에 서명한 다음 다시 시도해 보세요.] (3) | 2025.05.28 |
[Android/Kotlin] 데이터 캐싱을 통해 API호출 최적화하기 (0) | 2025.05.28 |
[Android/Kotlin] 하버사인 공식 사용해, 지도에 대피소 효율적으로 표시하기 (0) | 2025.05.28 |