简介
Assistants API 允许用户构建自己所需的 AI 助手。这个Assistant有instruction(指令),可以利用model、tools以及Retrieval相关技术等来响应用户查询。
PS:这里提到的instruction与之前介绍的System Messages比较类似
初瞥
代码调用方式
基于之前的内容,大家应该比较容易理解上述代码。
官方也提供了一种叫“playground”的东东,无需代码的方式实现自己的AI助手,截图如下:
核心结构组成
有了之前三十多篇的LangChain的系列内容,大家理解这些内容肯定不难,接下来就把Assistant API的组成部分给大家讲述一下。
我们从上面的代码上可以看到,有三个新概念:Assistant、Thread、Message
Assistant
核心由model、temperature、instructions、tools、tool-resource组成,这里面大家可能对“tool-resource”比较陌生
(Instruction大家姑且可以将其理解成"System Message")
AI菜鸟向前飞 — LangChain系列之十三 - 关于Tool的必知必会
但要注意:这里的tool与LangChain介绍的tool还是有所区别的
Thread
当心,不要把它翻译成“线程”了,就像之前ReACT一样(它也不是前端框架),千万不要搞混。
它是由user message和 assistant message组成(可以把它当作AI message),可以把它理解成会话集,通过Thread就可以LLM知道,这是一次Conversation(Create a Thread when a user starts a conversation.)
同时,通过它也赋予具有“记忆”
AI菜鸟向前飞 — LangChain系列之四(有脑子无记性...)
Message
要特别注意,Assistant API只有这两种message(即:role只能为user和assistant)
大家还会发现,它多了一个新的字段叫“attachment“,对在邮箱里经常看到这个词儿,它就是附件哈(它也很重要)
PS:聪明的你可以想到,它是可有可无,可带可不带的,所以上面的代码没带它~
Attachment
顺便看看它的组成吧:)
这里你第一次见到了Assistant API 的Tool,这里先讲AttachmentTool,它内置了两种(code_interpreter和file_search)
Tool
还有另外一种Tool,就是你可以自定义的Function Call(这个熟悉吧,之前介绍LangChain着重介绍过它)
Tool Resource
当心,这里面有个小坑,vector_stores这个列表只能有且只有一个值(可能是历史遗留问题,也可能为后续的扩展留着)
File
所需导入到Vector Store的文件,支持的格式,请见
https://platform.openai.com/docs/assistants/tools/file-search/supported-files
上传之后,会交由Vector Store并做好Embedding,通常有两种用法:
-
直接使用Vector Store的add方法直接添加进,
这样的好处是 -
在Message的Attachment指定所属的附件(file_id)
这样你就无须关注使用哪个Vector Store,基本上每次会自动创建一个Vector Store
Vector Store
这个概念并不陌生,不在此多赘述。
不过,可以回顾下:
AI菜鸟向前飞 — LangChain系列之十 - RAG(上篇)
AI菜鸟向前飞 — LangChain系列之十一 - RAG(中篇)
AI菜鸟向前飞 — LangChain系列之十二 - RAG(下篇)
总结
到这里为止,Assistant API的核心组成就先介绍到这里,期待下一篇~