• 作者:老汪软件技巧
  • 发表时间: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站点同步和外部知识库,但是后两个是商业版收费的。

手动创建

_fastran教程_使用pld器件和使用74系列

在首页的知识库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对话环节就需要选择要选择一个支持输入图片的大模型,即多模态大模型。如果开启文档输入,则需要添加 文档解析 这个功能环节,先通过这个功能对文档进行解析,在将结果和用户提问一起提供给后面的环节(注意图片会直接略过这个环节)。