[chatgpt] [Python/OpenAI] chatGPT API json 형태로 응답받기 (response_format 사용법)

[Python/OpenAI] chatGPT API json 형태로 응답받기 (response_format 사용법)

안녕하세요, OpenAI의 ChatGPT가 등장한 후, OpenAI에서는 끊임없이 chatGPT를 업그레이드 하고 있습니다. 오늘은 OpenAI의 chatGPT API를 사용할 때 응답값을 json 형태로 고정시켜서 받는 방법에 대해 알아보겠습니다. 23년 11월에 OpenAI에서 업데이트 한 response_format 파라미터 활용방법에 대한 내용입니다.


1. OpenAI API 기본 설정하기

OpenAI API를 사용하려면 먼저 API 키를 발급받아야 합니다. OpenAI 웹사이트에서 가입한 후, API Keys 카테고리에서 Create new secret key를 눌러 API 키를 발급받으실 수 있어요. 발급받은 키는 과금 방지를 위해 다른 사람들에게 공개하면 안돼요! 발급 직후 받은 키를 잘 복사해두세요.

01. API-키-발급-1024x346.png

 

OpenAI API 키 발급

그 후, 필요한 라이브러리를 설치해 줍니다.

Bash
pip install openai

2. Request 작성하기

간단한 예제를 통해 OpenAI API에 요청을 보내보겠습니다. 직전 단계에서 발급받은 API 키를 사용합니다. 저는 번역 프로그램을 예제로 코드를 적어보았어요. 사용자가 어떤 언어로 번역을 요청했을 때,

  1. 번역 전 언어 original_language
  2. 번역 후 언어 translated_language
  3. 번역 내용 translated_content

위의 세 가지 element를 갖는 json형태로 응답을 받는 예제입니다.

번역 챗봇 예제 코드

Python
from openai import OpenAI

# client 객체 생성하기
client = OpenAI(api_key = "YOUR API KEY") # 발급받은 API 키 값을 넣어주세요

#응답 받기
response = client.chat.completions.create(
    model = "gpt-4-turbo-preview",
    messages =[
        {
            "role":"system",
            "content":"You are an excellent translator. Response in json format with 'original_language', 'translated_language', 'translated_content'."
        },
        {
            "role":"user",
            "content":"How can I say hello in France?"
        }
    ],
    temperature=0,
    max_tokens = 1000,
    top_p = 1,
    frequency_penalty = 0,
    presence_penalty = 0,
    
    # response_format 지정하기
    response_format = {"type":"json_object"}
)

print(response.choices[0].message.content)

system에 번역가의 역할을 하라고 알려주었습니다. 그리고 json 형태로 응답하되, ‘original_language‘, ‘translated_language‘, ‘translated_content‘ 세 가지의 element를 갖도록 지시하였어요.
그리고 response_format = {"type":"json_object"} 조건을 통해 json 형태로만 응답하도록 지정해줍니다. 무조건 텍스트 형태로 응답 받고 싶으시다면, "json_object" 대신 "text"를 써주시면 됩니다.

예제 코드 응답 결과

02. image-1.png

 

응답 결과

위와 같이 json 형태의 응답을 받을 수 있어요. 하지만 실제 json 객체가 아닌, json 형태의 string 이에요. string type을 json 객체로 변환하는 것도 어렵지 않습니다.

string → json 객체로 변환하기

아래와 같은 코드를 실행하여 문자열을 json 객체로 load한 후, 출력할 수 있습니다.

Python
import json

response_content = response.choices[0].message.content
original_language = json.loads(response_content)["original_language"]
translated_language = json.loads(response_content)["translated_language"]
translated_content = json.loads(response_content)["translated_content"]

print(original_language, translated_language, translated_content)
03. image-3.png

 

출력 결과

글을 마치며

이번 포스팅에서는 OpenAI의 chatGPT API를 활용하여, 사용자가 원하는 형태의 응답, 특히 json 형태로 응답을 받는 방법에 대해 알아보았습니다. 또한, 우리가 직접 예제를 통해 확인한 것처럼, json 형태의 문자열을 실제 json 객체로 변환하는 과정 또한 매우 간단하며, 이를 통해 얻은 데이터를 다양한 방식으로 활용할 수 있습니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

현재 OpenAI는 chatGPT의 기능을 지속적으로 발전시키고 있으며, 이러한 발전은 우리가 더 많은 가능성을 탐색하고, 더욱 다양한 방법으로 AI를 활용할 수 있게 해줍니다. 앞으로도 OpenAI의 새로운 업데이트와 기능들을 주목하며, 이를 우리의 프로젝트에 어떻게 적용할 수 있을지 고민해 보는 것이 중요할 것 같네요.

읽어 주셔서 감사합니다 ????

 

 

[출처] https://doodle-coding.com/python-openai-chatgpt-api-json-%ED%98%95%ED%83%9C%EB%A1%9C-%EC%9D%91%EB%8B%B5%EB%B0%9B%EA%B8%B0-response_format-%EC%82%AC%EC%9A%A9%EB%B2%95/

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
29 [chatGPT] "박사급이라더니 대통령 이름도 몰라"… 조롱 쏟아진 GPT-5 답변 file 졸리운_곰 2025.08.16 68
28 [chatgpt] ChatGPT로 소설 쓰기: 작가를 위한 5가지 실전 프롬프트 졸리운_곰 2025.07.25 118
27 [chatgpt] [ChatGPT] Function calling 졸리운_곰 2025.05.25 56
26 [chatgpt] 이전 기사 AI타임스 "오픈AI의 AGI 달성 기준은 인간 넘는 '코딩 에이전트' 출시 순간". file 졸리운_곰 2025.01.24 88
25 'o3'가 AI를 바꿔 놓은 5가지 혁신과 하나의 숙제 file 졸리운_곰 2024.12.30 115
24 "돈 너무 많이 든다"오픈AI, 지배구조전면 개편 하기로 - 오픈AI, 결국 투자 친화적 기업으로 전환...지배 구조 바꾼다 file 졸리운_곰 2024.12.29 87
23 [chatgpt] 정말 이러다가 개발자가 사라질까? GPT-o3 시연 영상 한국어 자막 졸리운_곰 2024.12.26 90
22 [chatGPT] 인간에 가까워진 추론력…오픈AI, 신모델 'o3' 공개 file 졸리운_곰 2024.12.22 97
21 [chatGPT] ChatGPT를 활용한 데이터베이스 설계 및 데이터분석 쿼리 실습 사례 - eCommerce 플랫폼을 위한 데이터 베이스 설계 file 졸리운_곰 2024.12.14 57
20 [chatGPT] 5 ChatGPT Prompts That Will Blow Your Mind for Java Programming file 졸리운_곰 2024.10.01 129
19 [ChatGPT] 5 ChatGPT Prompts That Will Blow Your Mind for Java Programming : Java 프로그래밍을 위한 당신의 마음을 날려버릴 5가지 ChatGPT 프롬프트 file 졸리운_곰 2024.09.30 106
18 [ChatGPT] Function calling 졸리운_곰 2024.09.24 139
17 [chatgpt] OpenAI의 함수 호출(Function Calling) 소개 및 Python 예시 졸리운_곰 2024.09.24 174
16 [openai, chatgpt] [써보고서] "정말 미쳤다"…오픈AI 新모델 'o1' 추론 능력에 '감탄' file 졸리운_곰 2024.09.18 60
15 [인공지능 기술] 번역기도 안 통하던 한국어 리뷰, 이제 챗GPT가 다 읽는다. file 졸리운_곰 2024.09.14 87
» [chatgpt] [Python/OpenAI] chatGPT API json 형태로 응답받기 (response_format 사용법) file 졸리운_곰 2024.07.20 91
13 [인공지능 기술][chatGPT] GPTs 사용법 - 챗GPT로 5분만에 나만의 챗봇 만드는 방법 file 졸리운_곰 2024.06.30 171
12 [인공지능 기술] [chatgpt] [Python/OpenAI] chatGPT API json 형태로 응답받기 (response_format 사용법) 졸리운_곰 2024.05.18 109
11 [인공지능 기술][chatGPT] 20달러만 내면…등산·수학 수업·논문 ‘나만의 AI’ 가질 수 있다 앱처럼 사고 파는 ‘GPT 스토어’ 오픈 졸리운_곰 2024.01.12 122
10 [chatGPT] (번역) 웹 개발자를 위한 50가지 이상의 ChatGPT 프롬프트 file 졸리운_곰 2023.10.30 222
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED