[译][AI OpenAI-doc] 助手 API Beta

简介: 助手 API 允许你在自己的应用程序中构建 AI 助手。助手具有指令,并可以利用模型、工具和文件来响应用户的查询。目前,助手 API 支持三种类型的工具:代码解释器、文件搜索和函数调用。

助手 API 允许你在自己的应用程序中构建 AI 助手。助手具有指令,并可以利用模型、工具和文件来响应用户的查询。目前,助手 API 支持三种类型的工具:代码解释器、文件搜索和函数调用。

你可以通过助手 playground 探索助手 API 的功能,或者按照本指南中的逐步集成步骤构建。

概述

助手 API 的典型集成流程如下:

  1. 通过定义其自定义指令并选择模型来创建助手。如有需要,添加文件并启用 Code Interpreter、File Search 和 Function calling 等工具。
  2. 当用户开始对话时,创建一个 Thread。
  3. 当用户提出问题时,在 Thread 中添加消息。
  4. 运行助手在 Thread 上调用模型和工具生成响应。

本入门指南将逐步介绍创建和运行使用 Code Interpreter 的助手的关键步骤。在本示例中,我们将创建一个启用了 Code Interpreter 工具的个人数学辅导助手。

对 Assistants API 的调用要求您传递一个 beta HTTP 头。如果您使用 OpenAI 的官方 Python 或 Node.js SDK,这将自动处理。

OpenAI-Beta: assistants=v2

步骤 1:创建助手

助手代表一个实体,可以根据模型、指令和工具等多个参数进行配置,以响应用户的消息。

from openai import OpenAI
client = OpenAI()

assistant = client.beta.assistants.create(
  name="Math Tutor",
  instructions="You are a personal math tutor. Write and run code to answer math questions.",
  tools=[{
   "type": "code_interpreter"}],
  model="gpt-4-turbo",
)

步骤 2:创建线程

线程表示用户与一个或多个助手之间的对话。当用户(或您的 AI 应用程序)与您的助手开始对话时,您可以创建一个线程。

thread = client.beta.threads.create()

步骤 3:向线程添加消息

用户或应用程序创建的消息内容被添加为消息对象到线程中。消息可以包含文本和文件。您可以向线程添加的消息数量没有限制 — 我们会智能地截断任何不符合模型上下文窗口的内容。

message = client.beta.threads.messages.create(
  thread_id=thread.id,
  role="user",
  content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)

步骤 4:创建运行

一旦所有用户消息都添加到线程中,您可以使用任何助手运行该线程。创建一个运行使用与助手关联的模型和工具来生成响应。这些响应作为助手消息添加到线程中。

使用流式传输

您可以使用 Python 和 Node SDK 中的“create and stream”助手来创建运行并流式传输响应。

from typing_extensions import override
from openai import AssistantEventHandler

# 首先,我们创建一个 EventHandler 类来定义我们希望如何处理响应流中的事件。

class EventHandler(AssistantEventHandler):    
  @override
  def on_text_created(self, text) -> None:
    print(f"\nassistant > ", end="", flush=True)

  @override
  def on_text_delta(self, delta, snapshot):
    print(delta.value, end="", flush=True)

  def on_tool_call_created(self, tool_call):
    print(f"\nassistant > {tool_call.type}\n", flush=True)

  def on_tool_call_delta(self, delta, snapshot):
    if delta.type == 'code_interpreter':
      if delta.code_interpreter.input:
        print(delta.code_interpreter.input, end="", flush=True)
      if delta.code_interpreter.outputs:
        print(f"\n\noutput >", flush=True)
        for output in delta.code_interpreter.outputs:
          if output.type == "logs":
            print(f"\n{output.logs}", flush=True)

# 然后,我们使用带有 `EventHandler` 类的 `stream` SDK 助手来创建运行并流式传输响应。

with client.beta.threads.runs.stream(
  thread_id=thread.id,
  assistant_id=assistant.id,
  instructions="请以简•多名义为用户。用户拥有高级帐户。",
  event_handler=EventHandler(),
) as stream:
  stream.until_done()

在我们的 API 参考中查看完整的助手流事件列表。您还可以在 Python & Node 仓库文档中查看这些事件的 SDK 事件监听器列表。

不使用流式传输

运行是异步的,这意味着您希望通过轮询运行对象来监视其状态,直到达到终端状态。为了方便起见,“创建和轮询”SDK 辅助工具同时帮助创建运行并轮询其完成状态。

run = client.beta.threads.runs.create_and_poll(
  thread_id=thread.id,
  assistant_id=assistant.id,
  instructions="请以简•多名义为用户。用户拥有高级帐户。"
)

一旦运行完成,您可以列出由助手添加到线程中的消息。

if run.status == 'completed': 
  messages = client.beta.threads.messages.list(
    thread_id=thread.id
  )
  print(messages)
else:
  print(run.status)

如果您想查看在此运行期间进行的任何工具调用,则还可以列出此运行的运行步骤。


相关文章
|
11月前
|
人工智能 安全 架构师
告别旅行规划的"需求文档地狱"!这个AI提示词库,让你像调API一样定制完美旅程
作为开发者,旅行规划如同“需求地狱”:信息碎片、需求多变、缺乏测试。本文提出一套“企业级”AI提示词库,将模糊需求转化为结构化“API请求”,实现标准化输入输出,让AI成为你的专属旅行架构师,30分钟生成专业定制方案,提升决策质量,降低90%时间成本。
960 129
|
人工智能 供应链 安全
AI驱动攻防升级,API安全走到关键档口
在AI与数字化转型加速背景下,API已成为企业连接内外业务的核心枢纽,但其面临的安全威胁也日益严峻。瑞数信息发布的《API安全趋势报告》指出,2024年API攻击流量同比增长162%,占所有网络攻击的78%。攻击呈现规模化、智能化、链式扩散等新特征,传统防护手段已难应对。报告建议企业构建覆盖API全生命周期的安全体系,强化资产梳理、访问控制、LLM防护、供应链管控等七大能力,提升动态防御水平,保障AI时代下的业务安全与稳定。
426 0
|
人工智能 自然语言处理 算法
AI与API结合:自动解析商品描述+情感分析评论数据
AI与API深度融合正在重塑电商运营模式。通过自动解析商品描述、分析评论情感,企业可实现信息标准化、用户画像精准化及运营决策自动化。本文从技术架构、核心算法、实战案例三方面,详解AI如何驱动电商智能化升级。
|
10月前
|
人工智能 API 开发工具
构建AI智能体:一、初识AI大模型与API调用
本文介绍大模型基础知识及API调用方法,涵盖阿里云百炼平台密钥申请、DashScope SDK使用、Python调用示例(如文本情感分析、图像文字识别),助力开发者快速上手大模型应用开发。
3224 18
构建AI智能体:一、初识AI大模型与API调用
|
11月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
7426 2
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
|
11月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
1261 11
|
11月前
|
人工智能 API
阿里云百炼API-KEY在哪查询?如何获取阿里云AI百炼大模型的API-KEY?
阿里云百炼是阿里云推出的AI大模型平台,用户可通过其管理控制台获取API-KEY。需先开通百炼平台及大模型服务,即可创建并复制API-KEY。目前平台提供千万tokens免费额度,详细操作流程可参考官方指引。
|
11月前
|
人工智能 安全 API
F5发布后量子API安全解决方案,以AI驱动全面防护应对量子计算威胁
F5发布后量子API安全解决方案,以AI驱动全面防护应对量子计算威胁
265 0
|
11月前
|
人工智能 供应链 安全
AI时代的API攻防变局,如何构建新一代智能防线?
随着AI大模型、云原生与微服务的快速发展,API已成为连接系统与数据的核心枢纽,同时也成为网络攻击的主要入口。攻击者利用API漏洞实施越权访问、数据泄露等攻击,AI技术更使攻击趋于智能化、规模化。企业面临身份授权、提示词注入、供应链攻击等多重风险,合规压力也日益加剧。为应对这一挑战,企业亟需构建覆盖API全生命周期的安全治理体系,结合AI能力实现动态检测与智能响应,打造可持续、可预测的防御机制。
403 0