OpenAI assistant API 在代码解释和知识检索方面颠覆了AI Agent领域。
assistant API的代码解释器功能是一个强大的工具,能够从代码执行生成各种文件类型,如图片和 CSV 文件。例如,当创建图像图表时,开发者可以通过助手消息响应中的 file_id 字段轻松访问它。这种无缝集成方便了生成内容的下载,无需额外操作。
想象一个场景,代码解释器将 CSV 文件的行进行随机排序。API 不仅执行这一操作,还提供直接下载链接。
知识检索功能通过使 API 能够利用外部信息源来增强助手 API。这可能包括从专有产品详细信息到用户提供的文档。过程很简单:一旦上传了文件,OpenAI 将其分块、索引并存储,实现矢量搜索以检索用户查询的相关内容。
启用这个功能就像在助手的创建参数中包含 retrieval 工具一样简单。API 通过在调用期间将所有相关内容纳入模型上下文来优化质量,实现了详细响应与高效模型使用之间的平衡。
assistant API 凭借其在助手和线程级别管理文件的能力而脱颖而出,支持多种格式,如 PDF、文档和电子表格。检索系统能够处理高达 512MB 的文件,确保即使是最全面的文档也可以被处理。
在助手 API 中调用函数增加了额外的复杂性。通过在助手中定义函数,API 可以根据用户消息智能地调用这些函数及其相应的参数。这导致了一种动态的、互动的体验,其中 API 响应了它认为必要的函数调用,几乎就像与一个知识渊博的同事对话。
想象一个用户需要当前天气信息的场景。API 的 getCurrentWeather 函数可以被触发,促使助手请求必要的数据。助手暂停运行,等待函数执行,收到输出后继续任务。这是并行函数调用的实际操作,展示了如何同时处理多个函数以实现全面的用户体验。
知识检索通过将外部数据源纳入其响应来扩展 AI 的视野。这个过程始于上传文件并将其整合到助手的知识库中:
file = client.files.create(
file=open("knowledge.pdf", "rb"),
purpose='assistants'
)
上传文件后,可以创建具有启用检索工具的助手:
assistant = client.beta.assistants.create(
instructions="You are a customer support chatbot. Use your knowledge base to best respond to customer queries.",
model="gpt-4-1106-preview",
tools=[{"type": "retrieval"}],
file_ids=[file.id]
)
这个功能允许助手利用丰富的信息源,为复杂查询提供精确的答案。
助手 API 通过函数调用将互动提升到新的水平。定义助手将使用的函数:
assistant = client.beta.assistants.create(
instructions="You are a weather bot. Use the provided functions to answer questions.",
model="gpt-4-1106-preview",
tools=[{
"type": "function",
"function": {
"name": "getCurrentWeather",
"description": "Get the weather in location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city and state e.g. San Francisco, CA"},
"unit": {"type": "string", "enum": ["c", "f"]}
},
"required": ["location"]
}
}
}, {
"type": "function",
"function": {
"name": "getNickname",
"description": "Get the nickname of a city",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city and state e.g. San Francisco, CA"},
},
"required": ["location"]
}
}
}]
)
通过提交函数输出来完成运行:
run = client.beta.threads.runs.submit_tool_outputs(
thread_id=thread.id,
run_id=run.id,
tool_outputs=[
{
"tool_call_id": call_ids[0],
"output": "22C",
},
{
"tool_call_id": call_ids[1],
"output": "LA",
},
]
)
OpenAI 的assistant API 测试版是一个强大的工具,提供了在代码解释和知识检索方面前所未有的能力。它直观的设计,加上强大的功能,使用户能够轻松、精确地自动化复杂任务。
文章来自 “知乎”,作者 superpeng 互联网行业 算法工程师
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】FASTGPT是基于LLM的知识库开源项目,提供开箱即用的数据处理、模型调用等能力。整体功能和“Dify”“RAGFlow”项目类似。很多接入微信,飞书的AI项目都基于该项目二次开发。
项目地址:https://github.com/labring/FastGPT