大模型应用开发:使用 OpenAI Assistants 构建产品 AI 客服
引言
在大型语言模型(LLM)的应用开发中,如何赋予模型特定的领域知识并使其稳定地服务于业务场景是一个核心挑战。OpenAI 推出的 Assistants API 提供了一种标准化的方式来创建具有特定指令、知识库和工具能力的智能助手。本文将详细介绍如何使用 Python SDK 结合 OpenAI Assistants API,为一款空气净化器产品构建一个基于产品手册的 AI 客服系统。
什么是 Assistants?
在之前的开发实践中,我们可能使用过插件(Plugins)来扩展大模型的能力,例如查询实时天气或进行数学运算。插件主要解决了大模型自身无法获取外部数据或执行特定计算的问题。
Assistants 则更进一步,它旨在强化大模型在特定应用场景下的综合能力。通过 Assistants,我们可以实现以下功能:
- 精准的知识问答:如 AI 客服和知识库助手,能够准确理解用户问题,并在限定的文档范围内提供精准回答,减少幻觉。
- 代码审查与生成:按照指定的规范对代码进行 Review,或按照某种风格进行文学创作。
- 复杂任务编排:结合代码解释器和函数调用,处理多步骤的任务流程。
本文将以一个空气净化器 AI 客服为例,演示 Assistants 的核心用法。该客服将严格依据上传的产品手册回答问题,对于超出范围的问题会礼貌拒绝。
Assistants 的运行原理
在编写代码之前,理解 Assistants 的工作流至关重要。其核心流程包含五个关键步骤:
- 创建智能助手 (Assistant):定义助手的身份,包括名称、描述、使用的模型版本、系统指令(Instructions)以及启用的工具(Tools)。
- 创建用户会话 (Thread):会话是用户与助手之间的一次对话上下文。GPT 通过 Thread 管理聊天的历史状态。
- 添加用户消息 (Message):将用户的输入添加到会话中。每条消息都有角色标识(user 或 assistant)。
- 运行智能助手 (Run):将线程和助手绑定,触发助手的推理过程。这一步会创建一个执行对象,并将其加入处理队列。
- 获取响应消息 (Response):轮询运行状态,当状态变为完成时,从线程中提取助手的回复。
环境准备
在开始编码前,请确保已完成以下准备工作:
- 安装 OpenAI Python SDK:
pip install openai - 配置 API Key:
建议将 API Key 存储在环境变量中,避免硬编码在代码里。
import os from dotenv import load_dotenv load_dotenv() api_key = os.getenv("OPENAI_API_KEY") - 准备知识库文件: 准备一份产品手册(如 TXT 或 PDF 格式),内容应清晰结构化,便于模型检索。
实现 AI 客服
1. 上传产品手册
首先,需要将产品手册上传到 OpenAI 的文件存储中。注意设置 purpose 为 assistants,以便在检索工具中使用。
from openai import OpenAI
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
file_response = client.files.create(
file=(, ),
purpose=
)
file_id = file_response.
()


