在AI领域,Responses API是OpenAI推出的最新核心API,旨在简化开发者与AI交互的方式,并扩展其功能。它是Chat Completions API的升级版本,结合了Chat Completions的简洁性和Assistants API的强大功能,支持更复杂的任务处理。
技术原理
-
有状态设计与事件机制:Responses API通过语义事件管理状态,简化了开发者对状态的跟踪和处理。
-
多模态支持:支持文本、图像、音频等多种输入输出形式,适应多模态任务。
-
工具调用能力:内置工具(如网络搜索、文件搜索、代码解释器等)可以直接通过API调用,无需额外开发。
-
流式输出:支持语义事件的流式输出,提供更高效的实时交互。
示例代码
使用OpenAI的Responses API的一些代码案例,这些示例展示了如何利用Responses API进行文本生成、多轮对话、状态管理以及工具调用等功能:
### 基本文本生成
from openai import OpenAI
import os
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
response = client.responses.create(
model="gpt-4o-mini",
input="tell me a joke",
)
print(response.output[0].content[0].text)
### 多轮对话
# 第一条消息
response = client.responses.create(
model="gpt-4o-mini",
input="tell me a joke",
)
print(response.output[0].content[0].text)
# 第二条消息,基于第一条的响应
response_two = client.responses.create(
model="gpt-4o-mini",
input="tell me another",
previous_response_id=response.id
)
print(response_two.output[0].content[0].text)
### 状态管理
# 创建一个响应
response = client.responses.create(
model="gpt-4o-mini",
input="tell me a joke",
)
# 检索该响应,包括完整的对话历史
fetched_response = client.responses.retrieve(response_id=response.id)
print(fetched_response.output[0].content[0].text)
### 工具调用(网络搜索)
response = client.responses.create(
model="gpt-4o", # 或其他支持的模型
input="What's the latest news about AI?",
tools=[
{
"type": "web_search"
}
]
)
import json
print(json.dumps(response.output, default=lambda o: o.__dict__, indent=2))
应用领域
-
智能助手开发:用于构建能够自主完成任务的AI助手,例如处理复杂查询、执行多步骤任务。
-
复杂任务处理:支持多轮对话和多步骤任务,例如文件分析、代码调试和实时数据查询。
-
多模态交互:适用于需要处理文本、图像和音频等多种输入输出的场景。
-
代理型应用:帮助开发者构建能够自主决策和执行任务的AI代理,例如自动完成用户指定的操作。
与Chat Completions的区别
-
功能扩展:Responses API支持工具调用、多模态输入输出和更复杂的任务处理。
-
代码简化:开发者可以用更少的代码实现更复杂的功能。
-
状态管理:Responses API通过语义事件和状态管理,简化了对话和任务的跟踪。
总之,Responses API代表了OpenAI未来API设计的方向,特别适合需要代理型功能和多模态交互的复杂应用。