azure-openai-to-responses은(는) 무엇을 하나요?
Python 앱을 AzureOpenAI 클라이언트의 Chat Completions API에서 OpenAI 클라이언트의 Responses API로 마이그레이션합니다.
개요
이 스킬은 기존 Azure OpenAI 서비스를 사용하는 Python 애플리케이션을 OpenAI의 최신 Responses API로 전환하는 방법을 설명합니다. Azure OpenAI와 OpenAI Responses API 간의 주요 차이점과 마이그레이션 단계를 다룹니다.
마이그레이션 단계
1. 패키지 업데이트
openai 패키지가 최신 버전인지 확인합니다:
pip install --upgrade openai
2. 클라이언트 초기화 변경
AzureOpenAI 클라이언트 (기존):
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint="https://your-resource.openai.azure.com",
api_key="your-api-key",
api_version="2024-02-01"
)
OpenAI 클라이언트 (새로운 방식):
from openai import OpenAI
client = OpenAI(
api_key="your-openai-api-key"
)
3. Chat Completions를 Responses로 변경
Chat Completions API (기존):
response = client.chat.completions.create(
model="gpt-35-turbo", # Azure OpenAI 배포 이름
messages=[
{"role": "user", "content": "Hello"}
]
)
print(response.choices[0].message.content)
Responses API (새로운 방식):
response = client.responses.create(
model="gpt-4o",
input=[
{"role": "user", "content": "Hello"}
]
)
print(response.output_text)
4. 스트리밍 처리 변경
기존 (Chat Completions 스트리밍):
stream = client.chat.completions.create(
model="gpt-35-turbo",
messages=[{"role": "user", "content": "Hello"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")
새로운 방식 (Responses 스트리밍):
with client.responses.stream(
model="gpt-4o",
input=[{"role": "user", "content": "Hello"}]
) as stream:
for event in stream:
if event.type == "response.output_text.delta":
print(event.delta, end="")
5. 함수 호출 변경
기존 (Chat Completions 함수 호출):
functions = [
{
"name": "get_weather",
"description": "Get the current weather",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"}
},
"required": ["location"]
}
}
]
response = client.chat.completions.create(
model="gpt-35-turbo",
messages=[{"role": "user", "content": "What's the weather in Seoul?"}],
functions=functions
)
새로운 방식 (Responses 도구):
tools = [
{
"type": "function",
"name": "get_weather",
"description": "Get the current weather",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"}
},
"required": ["location"]
}
}
]
response = client.responses.create(
model="gpt-4o",
input=[{"role": "user", "content": "What's the weather in Seoul?"}],
tools=tools
)
참고 사항
- Azure OpenAI와 OpenAI Responses API 간의 주요 차이점은 인증 방식(API 키 vs Azure AD)과 엔드포인트 URL입니다.
api_version은 Responses API에서 더 이상 필요하지 않습니다.- 모델 이름은 Azure OpenAI 배포 이름 대신 OpenAI 모델 ID를 사용합니다.
- 응답 구조가 변경되었습니다.
choices[0].message.content대신output_text를 사용합니다.