- 作者:老汪软件技巧
- 发表时间:2024-09-10 11:01
- 浏览量:
前言
上一篇文章中我们搭建了FastGPT并配置了渠道和模型,这篇文章我们来看看如何使用FastGPT。
创建应用
进入FastGPT的工作台tab,在这里可以创建应用。
这里有四种类型:简易应用、工作流、插件、http插件。其中插件其实也是工作流,只不过可以自定义输入输出,这样这个插件就可以在其他工作流中使用,其实就封装复用。
工作流中我们可以定义复杂的流程,这个后面再细说。
简易应用
简易应用顾名思义,选择一个模型就可以创建成功了。
FastGPT支持输入文档和图片,在简易应用的设置中可以开启。但是注意,如果开启图片,则模型需要选择一个支持输入图片的大模型,即多模态大模型。
调试成功后就可以发布。
发布渠道
无论是简易应用还是工作流,当发布后就可以通过渠道进行访问,这里有两种渠道:免登录窗口 和 API访问。
免登陆窗口
在应用的发布渠道页面选择 免登陆窗口,创建新链接,输入名称就可以创建一个免登陆窗口。
点击 开始使用,就可以看到访问链接了
通过这个链接就可以直接打开一个聊天页面进行对话了。
当然还有其他用法,比如图中后两种方式,可以将这个对话通过iframe或js的方式嵌入到你的网站中使用,这里就不细说了。
API访问
在应用的发布渠道页面选择 API访问,创建新key,输入名称就可以创建一个密钥,注意一定要复制这个密钥并保存好,否则关闭后就再也无法查看这个密钥了。
在FastGPT中有两种key,上面创建的这种是应用key,可以用于对话等与应用相关的接口。还有一种通用key,可以用于创建知识库等全局相关的接口,这个后面会讲。
有了key我们就可以测试接口了,在这个页面可以看到API的根地址
注意这个只是根地址,对应的接口还需要添加对应的路径。官网提示有些接口需要添加v1路径,即:xxx/api/v1/xxxx。
对话接口的路径是/chat/completions,根据我的测试是需要添加v1的,所以是:xxx/api/v1/chat/completions
然后需要在header中添加鉴权
Authorization: "Bearer {{apikey}}"
这个apikey就是我们刚才生成的密钥
注意:Content-Type需要是application/json,否则会因为参数获取不到报各种错误。
请求body格式如下:
{
"chatId": "111",
"stream": false, //是否以流的形式返回
"detail": false, //是否返回中间值(模块状态,响应的完整结果等)
"messages": [
{
"content": "你好",
"role": "user"
}
]
}
如果没有问题,就会得到AI回复,具体返回格式跟steam和detail的设置有关系,具体可以看官方文档doc.fastgpt.in/docs/develo…
创建知识库
上面我们创建简单应用,但是实际还有很多配置,比如最重要的是可以关联知识库。那么就需要提前创建一个知识库。
FastGPT有三种知识库:通用知识库,web站点同步和外部知识库,但是后两个是商业版收费的。
手动创建
在首页的知识库tab中新建一个知识库,选择类型并输入名称,选择一个文件处理模型和索引模型(即向量模型,注意要选好,如果后续更改这个模型整个知识库都需要重新向量化)
创建成功后进入,就可以导入数据集了。可以用文件、静态网页(链接地址)和纯文本创建数据集,然后选择训练模式和处理方式,这里根据自己的需要选。然后就可以上传处理了。
数据集处理并索引完成后就会是已就绪状态,这时候可以通过搜索测试来测试效果。
这样一个数据库就创建完成了,后续可以继续添加数据集来完善这个知识库。
点进数据集中,我们也可以手动添加分段。
API接口
当然也可以通过接口来操作知识库。
首先需要创建一个通用key,在账号->API 秘钥下可以创建一个key,步骤与应用key一样,注意复制保存。
在这个页面同样可以看到API根地址,就不上图了。
有了通用key就可以请求接口了,关于知识库的接口有很多,具体可以看官网文档
这里以 创建一个纯文本集合 这个接口为例,这个接口路径是core/dataset/collection/create/text,经过测试不需要v1路径,所以是:xxx/api/core/dataset/collection/create/text
header跟上面一样,添加鉴权
Authorization: "Bearer {{apikey}}"
这里添刚才创建的通用key,并且保证Content-Type是application/json
请求body格式如下:
{
"datasetId":"66bec353a0df7aeb7e204bce", //知识库id
"parentId": null, //父级ID,不填则默认为根目录
"name":"api训练", //数据集名称
"text":"xxxx", //数据集内容
"trainingType": "qa", //训练模式
"chunkSize":8000,
"chunkSplitter":"",
"qaPrompt":"11",
"metadata":{}
}
这里知识库id可以在对应知识库的配置里看到。
注意:如果提示不存在知识库,但是id又没有问题,那么有可能是Content-Type不对导致参数获取不到。
请求成功后,就可以在这个知识库中看到这个数据集了。
使用知识库
创建知识库后就可以在应用中使用了。比如在简易应用中可以关联知识库;在工作流或插件中可以添加知识库搜索。
工作流
要完成逻辑复杂的AI应用,简易应用一定是不够了,这时候就需要使用工作流。
工作流中包括很多能力,比如基础功能、官方插件,还可以使用我们自己创建的插件。这里不一一介绍,大家自行探索,这里只通过简单的例子来说一下如何创建工作流
创建工作流
在工作台中新建一个工作流,有几个模板可供选择,里面预制了一些功能。如果选择空白模板,那么创建完成后就只有系统配置和流程开始。
添加功能
通过左侧的“+”按钮可以添加功能和插件,比如我们要实现一个根据知识库搜索进行智能回复,那么添加一个知识库搜索 和 一个AI对话。
将流程开始先链接知识库搜索,再链接AI对话,然后配置模型、知识库和相关参数
这样就完成了一个简单的智能回复,当用户提问的时候,先在知识库进行搜索,然后将搜索结果和问题一起给AI,AI根据知识库结果整理合适的回复内容给用户。
这时候可以点击 调试 来测试效果。没问题就可以发布使用了。至于使用就跟前面说的一样了。
知识库搜索
这个功能很特殊,因为它的输出是知识库索引,不是普通的数据,目前发现很多功能无法接收这个数据,导致这个结果无法进行二次加工。
目前发现除了 AI对话 功能,只有 指定回复 和 知识库搜索引用合并 这两个功能可以接收这个知识库索引。
文档和图片
工作流同样支持文档和图片输入,在工作流的的系统设置环节中可以开启。同样,如果开启图片输入,那么在AI对话环节就需要选择要选择一个支持输入图片的大模型,即多模态大模型。如果开启文档输入,则需要添加 文档解析 这个功能环节,先通过这个功能对文档进行解析,在将结果和用户提问一起提供给后面的环节(注意图片会直接略过这个环节)。