前言
在这篇文章中,我们提到在GPT4.0 turbo发布时,GPTs和Assistants API的出现使得众多创业者一夜无眠。当时看完之后就被我丢到一边,并没有太多关注,随着我们对RAG和Agent的不断深入了解,蓦然回首,越发感受到了他的好用。
Assistants API 的主要能力
像GPTs和Assistants API的出现都是为了降低开发门槛。
GPTs能够让众多非技术背景的人员做自己的大模型应用,而要更大自由度,需要用 Assistants API 开发。
Assistants API目前支持的能力
-
创建和管理 assistant,每个 assistant 有独立的配置
-
支持无限长的多轮对话,对话历史保存在 OpenAI 的服务器上
-
通过自有向量数据库支持基于文件的 RAG
-
支持 Code Interpreter
- 在沙箱里编写并运行 Python 代码
- 自我修正代码
- 可传文件给 Code Interpreter
-
支持 Function Calling
-
支持在线调试的 Playground
在最近我们大模型文章RAG阶段,还在研究他的文档切片,向量化等等,而OpenAI的Assistants API帮我们完成了RAG,我们只管准备我们的垂域学习材料就好。
而且未来还会继续扩展它的能力:
- 支持 DALL·E
- 支持图片消息
- 支持自定义调整 RAG 的配置项
当然,我们也要关注他的收费情况:
- 按 token 收费。无论多轮对话,还是 RAG,所有都按实际消耗的 token 收费
- 如果对话历史过多超过大模型上下文窗口,会自动放弃最老的对话消息
- 文件按数据大小和存放时长收费。1 GB 向量存储 一天收费 0.10 美元
- Code interpreter 跑一次 $0.03
只要不是我们面对需要极致调优的场景,Assistants API真的是功能齐全,开发简单!
如何使用 Assistants API
根据OpenAI 给的介绍,使用Assistants API的步骤分为总体如下四步:
- 创建_Assistants_实例。
- 创建对话线程_Thread_。
- 根据问题创建信息_Messages_。
- 在线程中运行(run)Assistants,获得结果。
准备工作-完成openai-python的环境安装
step-1.创建*Assistants
助手代表一个实体(Assistant),可以配置它以响应用户的消息,使用以下几个参数:
- 指令(instructions):助手和模型的行为或响应方式
- 模型(model):您可以指定任何 GPT-3.5 或 GPT-4 模型,包括微调模型。检索工具需要使用
gpt-3.5-turbo-1106
和gpt-4-1106-preview
模型。 - 工具(tools):API 支持由 OpenAI 构建和托管的代码解释器和检索工具。
- 函数(funtions):API 允许您定义自定义函数签名,具有类似于我们的函数调用功能的行为。
代码示例:
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-1106-preview"
)
step-2.创建对话线程*Thread
Thread 代表一次对话。建议在用户发起对话时为每个用户创建一个 Thread。通过创建消息将任何特定于用户的上下文和文件传递给此线程。
代码示例:
thread = client.beta.threads.create()
Thread 没有大小限制。您可以向 Thread 添加任意数量的消息。助手将确保向模型传递的请求适应于最大上下文窗口
step-3.将信息_Messages_ 加入_Thread_
消息包含文本,并可选择允许用户上传的文件(见支持的文件格式)。消息需要添加到特定的 Thread中。目前不支持通过消息对象添加图像
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?"
)
step-4.运行(run)Assistants
为了使助手响应用户消息,您需要创建一个 Run。这使助手阅读 Thread,并决定是否调用工具(如果启用),或者仅使用模型来最佳回答问题。随着运行的进行,助手将以role="assistant"
的身份向 Thread 追加消息。助手还将自动决定在模型的上下文窗口中包括哪些先前的消息。这既对定价有影响,也对模型性能有影响。当前的方法是基于在构建 ChatGPT 过程中所学到的内容进行了优化,并且可能会随着时间的推移而发展。
您可以在创建 Run 时可选地传递其他指令给助手,但请注意,这些指令会覆盖助手的默认指令。
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id)
step-5.运行结果
当开始运行后,可以查看运行的状态,如果状态为completed,则表示运行结束了,可以在thread中得到运行的结果了。
run = client.beta.threads.runs.retrieve(
thread_id=thread.id,
run_id=run.id
)
while run.status != "completed":
print(run.status)
time.sleep(60) # 等待60秒
run = client.beta.threads.runs.retrieve(
thread_id=thread.id,
run_id=run.id
)
messages = client.beta.threads.messages.list(
thread_id=thread.id
)
print(messages.data)
总结
我们可以看到,Assistants API 的内置工具支持了代码解释器、知识库检索以及函数调用,允许接入外部知识(文档)、使用更长的提示和集成各种工具。它能够帮助开发者分担繁重的工作,并构建高质量的 AI 应用。
- 代码解释器允许助手API在受限执行环境中编写和运行Python代码。该工具可以处理具有不同数据和格式的文件,并生成带有数据和图像的文件。代码解释器允许助手迭代运行代码以解决复杂的代码和数学问题。
- 函数调用( Function Calling) 允许您向助手描述函数,并智能返回需要调用的函数及其参数。助手API在调用函数时会暂停执行当前运行,您可以将函数调用的结果提供回来以继续运行执行。
- 这里重点说一下知识检索能力
知识检索
目前在解决大模型幻觉和构建垂域大模型能力的背景下,RAG大火。
OpenAI提供的知识检索,可以为助手提供来自其模型外部的知识,例如专有产品信息或用户提供的文档。一旦上传并传递文件给助手,OpenAI将自动对您的文档进行分块、索引和存储嵌入,并实现向量搜索以检索相关内容以回答用户查询。
甚至“OpenAI 力挺 RAG,向量数据库失宠了?”等话题一度成为了讨论的热点。
同时,Assistants API是AI Agent技术下智能体产品,这在国内当时还鲜有人知 AI Agent 概念时就推出的王炸。
让我们都可以构建自己的智能体产品。
暂时还存在的局限性
之所以说是暂时,是因为这些局限,一旦OpenAI想,就可以解决的。
限制 1: 可扩展性
OpenAI Assistants 内置检索对文件大小和数量都有限制。这些限制不利于大型文档仓库:
每个 Assistant 最多支持 20 个文件
每个文件最大为 512 MB
我们在测试中发现了关于 Token 的隐藏限制——每个文件最多 200 万个 Token
每个企业账号下文件大小总和最多 100 GB
限制 2: 无法定制检索
虽然 OpenAI Assistants 的内置检索是一套开箱即用的解决方案,但它无法根据每个应用的特殊需求(如:搜索延时、索引算法)进行定制。使用第三方向量数据库,可以帮助开发者灵活配置、调优检索过程,从而满足生产环境中的各种需求,提升应用的整体效率。
限制3 :缺乏多租户支持
OpenAI Assistants 中内置的检索功能绑定 Assistant,每个知识库产生的费用按 Assistant 个数成倍增长。如果开发者的应用需要为数百万用户提供共享文档,或者为特定用户提供私人化的信息,OpenAI Assistants 的内置检索功能就无法满足需求了。
选择自己合适的
在了解了OpenAI Assistants的功能、特性和他的局限性,我们可以在自己的实际应用场景中,灵活选择使用OpenAI Assistants还是自己建设RAG。
如何系统的去学习大模型LLM ?
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料
包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
阶段1:AI大模型时代的基础理解
- 目标:了解AI大模型的基本概念、发展历程和核心原理。
- 内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践
- L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
- 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
- 内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例
- L2.2 Prompt框架
- L2.2.1 什么是Prompt
- L2.2.2 Prompt框架应用现状
- L2.2.3 基于GPTAS的Prompt框架
- L2.2.4 Prompt框架与Thought
- L2.2.5 Prompt框架与提示词
- L2.3 流水线工程
- L2.3.1 流水线工程的概念
- L2.3.2 流水线工程的优点
- L2.3.3 流水线工程的应用
- L2.4 总结与展望
阶段3:AI大模型应用架构实践
- 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
- 内容:
- L3.1 Agent模型框架
- L3.1.1 Agent模型框架的设计理念
- L3.1.2 Agent模型框架的核心组件
- L3.1.3 Agent模型框架的实现细节
- L3.2 MetaGPT
- L3.2.1 MetaGPT的基本概念
- L3.2.2 MetaGPT的工作原理
- L3.2.3 MetaGPT的应用场景
- L3.3 ChatGLM
- L3.3.1 ChatGLM的特点
- L3.3.2 ChatGLM的开发环境
- L3.3.3 ChatGLM的使用示例
- L3.4 LLAMA
- L3.4.1 LLAMA的特点
- L3.4.2 LLAMA的开发环境
- L3.4.3 LLAMA的使用示例
- L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
- 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
- 内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
学习计划:
- 阶段1:1-2个月,建立AI大模型的基础知识体系。
- 阶段2:2-3个月,专注于API应用开发能力的提升。
- 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
- 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓