최신 OpenAI Python 라이브러리 설치
Responses API를 사용하기 전에, 최신 OpenAI Python 라이브러리가 설치되어 있는지 확인해야 합니다. 다음 명령어를 사용하여 라이브러리를 업데이트하거나 설치할 수 있습니다.
pip install --upgrade openai
이 명령어는 OpenAI 라이브러리를 최신 버전으로 업데이트합니다. 이미 설치되어 있지 않다면, 필요한 패키지를 자동으로 설치합니다.
Responses API 엔드포인트 사용
Responses API를 사용하려면 OpenAI 클라이언트를 생성하고, client.responses.create
메서드를 호출해야 합니다.
이 메서드는 다양한 매개변수를 사용하여 챗봇의 동작을 제어할 수 있습니다.
코드 예시:
from openai import OpenAI
client = OpenAI(api_key='YOUR_API_KEY')
response = client.responses.create(
model="gpt-4o-mini",
input="오늘 NBA 경기가 있었나요?",
instructions="답변을 한 문장으로 요약해주세요.",
tools=[{"type": "web_search_preview"}]
)
print(response.output_text)
이 코드에서 model
매개변수는 사용할 모델을 지정하고, input
매개변수는 챗봇에게 전달할 메시지를 지정합니다. instructions
매개변수는 챗봇의 응답 방식을 설정하고, tools
매개변수는 사용할 도구를 지정합니다.
도구 기능 활용 (웹 검색, 파일 검색)
Responses API는 웹 검색 및 파일 검색 도구를 내장하고 있어, 챗봇이 외부 정보를 활용할 수 있도록 지원합니다.
웹 검색 도구를 사용하려면 tools
매개변수에 {"type": "web_search_preview"}
를 추가하고, 파일 검색 도구를 사용하려면 {"type": "file_search"}
를 추가합니다.
웹 검색 도구 사용 예시:
response = client.responses.create(
model="gpt-4o-mini",
input="오늘 날씨는 어때요?",
tools=[{"type": "web_search_preview"}]
)
print(response.output_text)
파일 검색 도구 사용 예시:
response = client.responses.create(
model="gpt-4o-mini",
input="보고서에서 주요 내용을 찾아주세요.",
tools=[{"type": "file_search"}]
)
print(response.output_text)
시스템 프롬프트 설정
Responses API를 사용하면 instructions
매개변수를 통해 시스템 프롬프트를 직접 설정할 수 있습니다.
이전에는 메시지 목록에 시스템 메시지를 포함해야 했지만, 이제는 instructions
매개변수에 원하는 프롬프트를 입력하여 챗봇의 동작 방식을 간편하게 제어할 수 있습니다.
시스템 프롬프트 설정 예시:
response = client.responses.create(
model="gpt-4o-mini",
input="주식 시장에 대해 알려주세요.",
instructions="당신은 금융 전문가입니다. 전문적인 용어를 사용하여 답변해주세요."
)
print(response.output_text)
대화 상태 관리
Responses API는 previous_response_id
매개변수를 통해 대화 상태를 관리할 수 있습니다. 이전 응답의 ID를 이 매개변수에 전달하면, 챗봇이 이전 대화 내용을 기억하고 일관성 있는 응답을 제공할 수 있습니다. 이를 통해 복잡한 대화 흐름을 쉽게 구현할 수 있습니다.
대화 상태 관리 예시:
response_id = None
while True:
user_input = input("사용자: ")
response = client.responses.create(
model="gpt-4o-mini",
input=user_input,
previous_response_id=response_id
)
print("챗봇: ", response.output_text)
response_id = response.id