🧠 什么是 Assistants API?

📅 **发布日期:**2023年11月6日,OpenAI在开发者大会上发布了 Assistants API —— 一款面向开发者的工具,用于在应用中构建 AI 助手。

✅ 它可以做什么?

Assistants API 允许开发者构建智能助手,这些助手可通过:

  • instructions(指令):设定助手行为;
  • models(模型):指定使用的 GPT 模型;
  • tools(工具):调用代码解释器、知识库检索等功能;
  • knowledge(知识):接入外部知识库提升回答能力。

🔧 当前支持的工具类型:

工具名中文含义功能简介
Code Interpreter代码解释器运行代码、执行计算任务
Retrieval检索与知识库集成,支持 RAG
Function Calling函数调用调用自定义 API 或业务逻辑

🤝 Assistants API vs GPTs 的区别与联系

对比维度Assistants APIGPTs
创建方式编写代码集成无代码配置(ChatGPT界面)
部署位置集成进自定义产品中使用 ChatGPT Web
UI 体验需开发者自定义 UIChatGPT 原生 UI
分享功能无内置内置分享 GPTs

共同点:

  • 都基于 OpenAI 的 GPT 技术;
  • 都支持指令、知识库等定制化;
  • 都用于提供个性化智能助手体验。

⚙️ Assistant API 的原理与核心流程

🌟 Assistants API 核心概念图解:

概念名含义说明
Assistant定义好的 AI 助手,绑定模型、指令、工具等
Thread用户与助手的对话历史上下文
Message单条对话信息,可以是文字、图片等
Run发起一次助手任务执行
Run Step助手执行任务的详细过程(是否调用工具等)

💡 整体执行流程如下:

  1. 创建 Assistant:设置指令、选择模型,绑定工具和文件;
  2. 创建 Thread:创建对话线程;
  3. 添加 Message:将用户问题添加进线程;
  4. 执行 Run:触发一次对话逻辑,模型生成回答;
  5. 读取结果:助手将在 Thread 中附加响应。

⚠️ 当前为 beta 阶段,部分功能可能不稳定或在持续迭代中。


🛠️ 实践项目:构建一个“水果收银助手”

✨ 项目背景

使用 MiniMax 开放平台 模拟 OpenAI Assistants API,实现一个能帮我们计算水果利润的助手。

📂 文件准备:我们先创建 fruit_price.txt,内容如下:

香蕉:成本2元/斤,售价3元/斤  
橘子:成本1.5元/斤,售价2.5元/斤  
苹果:成本3元/斤,售价3.5元/斤  
芒果:成本5元/斤,售价6元/斤  
葡萄:成本2元/斤,售价4元/斤

✅ 实现流程详解


📦 3.1 导入工具包

import requests    # 用于发送 HTTP 请求
import json        # JSON 数据处理
import time, os
from dotenv import load_dotenv, find_dotenv  # 读取 .env 文件中的环境变量

⚙️ 3.2 配置环境变量

_ = load_dotenv(find_dotenv())
GroupId = os.environ['GroupId']
API_KEY = os.environ['API_KEY']headers = {'Authorization': f'Bearer {API_KEY}','Content-Type': 'application/json'
}headers_retrieval = {'Authorization': f'Bearer {API_KEY}','authority': 'api.minimax.chat',
}

📤 3.3 上传文件

def create_file():url = f"https://api.minimax.chat/v1/files/upload?GroupId={GroupId}"files = {'file': open('./fruit_price.txt', 'rb')}data = {'purpose': 'assistants'}response = requests.post(url, headers=headers_retrieval, data=data, files=files)return response.json()

🤖 3.4 创建助手(Assistant)

def create_assistant(file_id):url = f"https://api.minimax.chat/v1/assistants/create?GroupId={GroupId}"payload = json.dumps({"model": "abab5.5-chat","name": "水果店财务助手","description": "用于统计营业额和利润","instructions": "根据水果销量、成本和售价计算利润","file_ids": [str(file_id)],"tools": [{"type": "retrieval"}]})response = requests.post(url, headers=headers, data=payload)return response.json()

📌 常用模型版本:abab5.5-chat, abab6.5-chat, abab6.5s-chat, 支持多种工具组合。


🧵 3.5 创建线程

def create_thread():url = f"https://api.minimax.chat/v1/threads/create?GroupId={GroupId}"response = requests.post(url, headers=headers)return response.json()

💬 3.6 添加消息到线程

def add_message_to_thread(thread_id):url = f"https://api.minimax.chat/v1/threads/messages/add?GroupId={GroupId}"payload = json.dumps({"thread_id": thread_id,"role": "user","content": "我卖了2斤葡萄,3斤半的香蕉,2斤苹果,计算下总成本和总收入,给出具体的计算过程"})response = requests.post(url, headers=headers, data=payload)return response.json()

▶️ 3.7 运行助手

def run_thread_with_assistant(thread_id, assistant_id):time.sleep(200)  # 等待 Assistant 向量化文件完成url = f"https://api.minimax.chat/v1/threads/run/create?GroupId={GroupId}"payload = json.dumps({"thread_id": thread_id,"assistant_id": assistant_id})response = requests.post(url, headers=headers, data=payload)return response.json()

🔄 3.8 查看运行状态

def check_thread_run_status(thread_id, run_id):url = f"https://api.minimax.chat/v1/threads/run/retrieve?GroupId={GroupId}"payload = json.dumps({"thread_id": str(thread_id),"run_id": str(run_id)})completed = Falsewhile not completed:response = requests.request("GET", url, headers=headers, data=payload)if response.status_code == 200:status = response.json().get('status', '')print(f"Status: {status}")if status == 'completed':completed = Trueelse:time.sleep(2)else:print(f"Error: {response.status_code}")breakreturn completed

📥 3.9 获取助手回复

def get_thread_messages(thread_id):url = f"https://api.minimax.chat/v1/threads/messages/list?GroupId={GroupId}"payload = json.dumps({"thread_id": thread_id})response = requests.get(url, headers=headers, data=payload)return response.json()

✅ 总结

通过 MiniMax 平台模拟使用 OpenAI 的 Assistants API,可以体验构建专属 AI 助手的流程,特别适合教学、企业内训与原型系统开发。下一步可以加入函数调用、外部 API 接入等扩展功能,增强助手的实用性与智能度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/913438.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/913438.shtml
英文地址,请注明出处:http://en.pswp.cn/news/913438.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《北京市加快推动“人工智能+医药健康“创新发展行动计划(2025-2027年)》深度解读

引言 随着新一轮科技革命和产业变革的深入推进,人工智能技术与医药健康的深度融合已成为全球科技创新的重要方向。北京市于2025年7月正式发布《北京市加快推动"人工智能+医药健康"创新发展行动计划(2025-2027年)》,旨在充分发挥北京在人工智能技术策源、头部医疗…

DPDK 关于 IOMMU 设置

一、IOMMU 基础概念 定义:IOMMU(Input/Output Memory Management Unit)即输入 / 输出内存管理单元,它是一种硬件机制,用于将设备发出的内存访问请求进行地址转换。在现代计算机系统中,它在设备与内存之间起到桥梁作用,提供内存保护和设备隔离功能。作用: 内存保护:防止…

pg_class 系统表信息

SELECT c.relname, c.relkind, CASE WHEN c.relkind r THEN 普通表 WHEN c.relkind p THEN 分区表 WHEN c.relkind f THEN 外表 WHEN c.relkind v THEN 视图 WHEN c.relkind m THEN 物化视图 ELSE 其他 END as table_type_desc FROM pg_class c JOIN pg_namespace …

【C++开源库使用】使用libcurl开源库发送url请求(http请求)去下载用户头像文件(附完整源码)

目录 1、libcurl介绍 2、libcurl库源码下载与编译 3、调用libcurl库的API接口实现http/https请求发送,实现头像文件下载 4、发送图片url下载图片文件的完整代码展示 5、使用libcurl发送https请求时可能会遇到的两个错误 在某SDK项目中,第三方…

在Docker容器中更改,保存为新的镜像

# 1. 进入原始容器 docker run -it --name mydev ubuntu:20.04 /bin/bash# 2. 在容器内做大量修改 apt update && apt install -y python3 mkdir /app && echo print("Hello from modified container") > /app/app.py# 3. 退出容器 exit# 4. 保存…

【网络与爬虫 13】智能伪装:Scrapy-Fake-UserAgent反检测技术实战指南

【网络与爬虫 13】智能伪装:Scrapy-Fake-UserAgent反检测技术实战指南 关键词:Scrapy-Fake-UserAgent、反爬虫、智能伪装、浏览器指纹、用户代理、爬虫检测规避、自动更新UA 摘要:本文深入解析Scrapy-Fake-UserAgent库的工作原理与应用技巧&a…

前端开发常见问题

前端开发常见问题技术文章大纲 引言 简要介绍前端开发在当前技术环境中的重要性,以及开发者常遇到的挑战和痛点。 浏览器兼容性问题 不同浏览器对CSS、JavaScript的支持差异常见的Polyfill和转译工具(如Babel、PostCSS)如何利用Can I Use…

文心开源大模型ERNIE-4.5-0.3B-Paddle私有化部署保姆级教程及技术架构探索

一起来轻松玩转文心大模型吧👉一文心大模型免费下载地址: https://ai.gitcode.com/theme/1939325484087291906 前言 2025年6月30日,百度正式开源文心大模型4.5系列(ERNIE 4.5),涵盖10款不同参数规模的模型&#xff0…

【操作系统】内存管理

要求: 1、在该实验中,采用可变分区方式完成对存储空间的管理(即存储空间的分配与回收工作)。 2、设计用来记录主存使用情况的数据结构:已分区表和空闲分区表。 3、在设计好的数据结构上设计一个主存分配算法&#xff0…

【算法笔记】5.LeetCode-Hot100-矩阵专项

1. 矩阵置零(t73) 中等难度,题目示例如下: 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用原地算法。示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&…

ORACLE 日常查询

一. 查询索引相关1. 查询索引所在的表空间,单个索引的大小SELECT ui.table_name, us.segment_name AS index_name, us.tablespace_name,ROUND(SUM(us.bytes) / 1024 / 1024 / 1024, 2) AS total_size_GB FROM dba_indexes ui JOIN dba_segments us ON ui.index_name…

【DeepSeek实战】17、MCP地图服务集成全景指南:高德、百度、腾讯三大平台接入实战

引言:为什么MCP是地图服务的下一代革命? 在数字化时代,位置服务已成为电商、出行、物流等行业的核心基础设施。但单一地图服务商的局限性日益凸显:某外卖平台因高德地图API突发故障导致30分钟订单配送延迟,某打车软件因百度地图路线规划偏差引发用户投诉激增,某物流企业…

设计模式之【动态代理】

目录 动态代理中存在的概念 JDK动态代理 代理工厂【ProxyFactory】实现【InvocationHandler】 目标类的接口【TargetInterface】 目标类【Target】实现了接口 测试类【JDKDynamicProxyTest】 CGLIB动态代理 添加Maven依赖 代理工厂【ProxyFactory】实现【MethodInterc…

【Linux驱动-快速回顾】一次性快速回顾TTY体系知识点(新手友好)

我将遵循一条严格的“问题驱动”和“演进”的逻辑线索来构建整个TTY知识体系。每引入一个新概念,都是为了解决前一个阶段出现的问题。这样,你不仅能知道“是什么”,更能深刻理解“为什么是这样设计的”。 第〇阶段:最原始的需求 …

深入浅出:让机器听懂世界的耳朵——梅尔频率倒谱系数(MFCCs)

深入浅出:让机器听懂世界的耳朵——梅尔频率倒谱系数(MFCCs) 在人工智能的浪潮中,语音识别、声纹支付、音乐推荐等技术早已融入我们的日常生活。你是否曾好奇,计算机是如何理解并区分各种复杂的声音信号的?…

Ubuntu22.04安装/使用Gazebo时踩的一些坑

首先,本人原本打算安装gazebo11的,因为官方好像不支持ubuntu22.04,所以要通过PPA和ROS2 humble来安装,安装过程跟着教程来的,也就是下面这篇 ubuntu22.04安装gazebo11(ROS2 Humble)-CSDN博客 …

CPT203-Software Engineering: Introduction 介绍

目录 1.专业名词定义 1.1计算机软件的定义 1.2软件系统的定义 1.3软件工程的定义 2.软件的失败与成功 2.1 失败 2.2 成功 3.软件开发 Professional software development 3.1 分类 3.2 专业软件开发 professional software development 3.3专业软件开发产品特性 3.4…

诊断工程师进阶篇 --- 车载诊断怎么与时俱进?

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

奥特曼论人工智能、OpenAI与创业

来自Y Combinator的YouTube视频,展示了OpenAI首席执行官萨姆奥特曼分享的深刻见解。他讨论了OpenAI从一个看似疯狂的通用人工智能(AGI)梦想,如何发展成为一个全球性的现象。奥特曼强调了早期决策的关键性、吸引顶尖人才的策略&…

React Ref使用

受控与非受控组件 Ref 1.获取原生dom 类组件中&#xff1a;在componentDidMount方法内使用document.getElementById的方法获取到dom元素 1 目标dom增加ref属性 设置为字符串 <h2 reftitleref></h2>function changeRef(){this.refs.titleref.innerHtml }2 函数组件…