OpenAI Assistant API:实现交互式聊天机器人
简介
随着 OpenAI 推出 ChatGPT 和 GPT-3 模型,人工智能(AI)技术的应用已逐渐渗透到我们日常使用的各种应用程序中。从电子商务到银行服务,AI 尤其是大型语言模型(LLM)的集成正在改变用户体验。其中,OpenAI 助手 API 是一个重要的创新工具,它允许开发者构建交互式聊天机器人。最近,OpenAI 在 Beta 阶段发布了 Assistants API,旨在进一步提升用户体验。
学习目标
- 掌握创建专门构建的 AI 助手的过程,包括如何为其指定说明。
- 探索助理 API 中的持久性和无限长线程的概念。
- 了解如何使用 OpenAI 库创建 AI 助手,并设置名称、说明、模型和工具等参数。
- 学习如何创建线程并运行 AI 助手以完成特定任务。
- 了解助理 API 的定价结构,包括语言模型令牌、代码解释器会话和检索工具的使用成本。
什么是 OpenAI 助手 API?它能做什么?
OpenAI 助手 API 是一个强大的工具,允许开发者利用 OpenAI 的大型语言模型和工具构建 AI 助手,并将其集成到应用程序中。企业可以根据特定需求定制这些助手,并为其提供相关数据。例如,可以创建一个 AI 天气助手来提供天气信息,或一个 AI 旅行助手来解答旅行相关问题。
这些助手具备以下特点:
- 状态管理:助手能够保留之前的对话内容,开发者无需担心状态管理问题,这部分由 OpenAI 负责。
- 典型流程:
- 创建助手:选择数据来源、模型、说明和工具。
- 创建线程:线程存储用户消息和助手的回复,负责管理助手的状态。
- 添加消息:将用户消息或助手回复添加到线程中。
- 运行助手:根据线程中的消息,助手调用 OpenAI LLM 生成适当的响应,并可能使用相关工具。

在助理 API 中,助手、线程、消息和运行都被视为对象。此外,还有一个名为 Run Step 的对象,它提供了助手在运行中采取的详细步骤,帮助开发者深入了解其内部工作原理。
助手 API 的工具
在助理 API 中,工具是实现额外功能的关键组件。以下是一些常用工具:
-
代码解释器:
- 在沙盒环境中解释 Python 代码。
- 适用于数据分析场景,例如生成代码分析 CSV 数据并提供结果。
-
函数调用:
- 开发者可以定义自定义工具,助手通过调用这些工具生成响应。
-
检索工具:
- 用于从知识库中检索数据。
- 例如,在产品助手中,相关信息可以被分块、嵌入并存储在向量数据库中,助手在响应用户查询时从中检索数据。

构建我们的助手
安装 OpenAI 库
首先,确保安装最新版本的 OpenAI 库:
pip install openai
创建助手
以下是创建助手的代码示例:
import os
import openai
# 设置 API 密钥
os.environ["OPENAI_API_KEY"] = "your_api_key_here"
client = openai.Client(api_key=os.environ["OPENAI_API_KEY"])
# 创建助手
assistant = client.beta.assistants.create(
name="PostgreSQL Expert",
instruction="您是PostgreSQL专家,可以用简单的方式回答任何问题。",
model="gpt-4-1106-preview",
tools=[{"type": "retrieval"}]
)
在上述代码中:
- name:助手的名称。
- instruction:为助手提供的上下文信息。
- model:用于生成响应的模型。
- tools:助手使用的工具列表。
加载文件
为助手加载文档以支持检索功能:
# 上传文件
file = client.files.create(
file=open("/content/LearnPostgres.pdf", "rb"),
purpose="assistants"
)
# 更新助手
assistant = client.beta.assistants.update(
assistant_id=assistant.id,
file_ids=[file.id]
)
此步骤中,PDF 文件被分块并嵌入到助手的知识库中,供后续检索使用。
创建线程和存储消息
创建线程
线程用于存储对话内容:
# 创建线程
thread = client.beta.threads.create()
添加消息
向线程中添加用户消息:
# 添加消息
message = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="如何在PostgreSQL中创建表?"
)
运行助手
运行助手以生成响应:
# 创建运行
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id
)
检查运行状态
通过轮询检查运行是否完成:
import time
def poll_run(run, thread):
while run.status != "completed":
run = client.beta.threads.runs.retrieve(
thread_id=thread.id,
run_id=run.id
)
time.sleep(0.5)
return run
# 等待运行完成
run = poll_run(run, thread)
数据隐私与道德问题
OpenAI 对数据隐私和安全性采取了严格的措施:
- 用户是数据的唯一所有者,OpenAI 不会使用用户数据进行模型训练。
- 数据通过 AES-256 静态加密和 TLS 1.2+ 传输加密。
- OpenAI 已通过 SOC 2 合规性审计,确保数据隐私和安全。
结论
OpenAI 助手 API 为开发者提供了构建和集成 AI 助手的全新方式。通过支持代码解释器、检索工具和自定义工具,开发者可以创建专为特定任务设计的助手。持久性线程的引入简化了状态管理,进一步提升了开发效率。
关键要点
- 助手 API 可用于创建专为特定任务定制的 AI 助手。
- 支持代码解释器和检索工具,扩展了助手的功能范围。
- 持久性线程简化了状态管理,为开发者提供了更大的灵活性。
- 数据隐私和安全性得到了充分保障。
常见问题
Q: 助手 API 的定价如何?
A: 定价基于所选模型和工具的使用情况,例如代码解释器按会话计费,检索工具按每日使用量计费。
Q: 助手 API 是否支持自定义工具?
A: 是的,开发者可以通过函数调用定义自定义工具。
Q: 数据隐私是否有保障?
A: OpenAI 不会使用用户数据进行训练,并通过多种加密措施确保数据安全。
原文链接: https://www.analyticsvidhya.com/blog/2023/11/elevate-user-experience-implementing-openai-assistant-api-for-interactive-chatbots/
最新文章
- 深入解析 Azure OpenAI Assistants API
- OpenAI Assistant API:实现交互式聊天机器人
- 深入解析Vue Composition API的watch()方法 – Netlify
- 供应链管理中的 EDI 与 API 趋势解析
- 提升 API 和数据库性能的有效策略
- 通过API集成赋能Autogen Multi-Agent系统
- 身份证二要素API在Java、Python、PHP中的使用教程
- Python网页抓取API:获取Google搜索结果的实用指南
- API安全指南:如何保护数据免受攻击?
- 用花粉季节查询api提高生活质量:Ambee的季节性追踪功能
- 什么是API测试?API测试指南 – Parasoft
- 顶级API安全攻击:理解与缓解风险