Fastgpt知识库接入oneapi和自定义大模型

2024-05-08 12:12

本文主要是介绍Fastgpt知识库接入oneapi和自定义大模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本期教程教大家训练自己的知识库回答chatgpt回答不了的问题

FastGPT 是一个知识库问答系统,可以通过调用大模型和知识库回答特定的问题

  1. 可以做成专属 AI 客服集成到现有的APP或者网站内当作智能客服
  2. 支持网络爬虫学习互联网上的很多知识
  3. 可以通过flow可视化进行工作流程编排

本期教程主要内容

  1. 实现fastgpt对接oneapi接入多种大模型
  2. 实现fastgpt自定义大模型
  3. 实现添加m3e索引模型
  4. 实现自定义文本处理模型
  5. 实现在线更新fastgpt
  6. 不需要以上5条功能可以查看往期教程一键部署教程
  7. ⚠️注意遇到报错或者问题请查看最后面的避坑指南或许能找到答案

推荐使用浪浪云服务器,省心 省时 省力安全稳定 教程全面且详细

需要采用一键部署的系统

Pasted image 20240425082923

添加端口转发

Pasted image 20240425095846

Pasted image 20240425095945

Pasted image 20240425100303

登录casaos

Pasted image 20240425162314

登录fastgpt

Pasted image 20240425162149

浏览器登录oneapi

Pasted image 20240425161949

fastgpt如何对接oneapi

打开files

Pasted image 20240425162522

进入fastgpt文件下

Pasted image 20240425162642

Pasted image 20240425162705

编辑docker-compose.yaml文件

Pasted image 20240425162814

修改配置文件

修改前

Pasted image 20240425163012

修改后

Pasted image 20240425163609

打开终端

Pasted image 20240425163727

登录终端

Pasted image 20240425202209

进入fastgpt文件夹下

cd fastgpt

Pasted image 20240425202708

停止运行fastgpt

docker compose down

Pasted image 20240425202750

启动fastgpt

docker compose up -d

Pasted image 20240425202816

此时fastgpt已经对接到oneapi上了

oneapi对接chatgpt或其他大模型

本次演示对接xi的中转api

Pasted image 20240425203122

Pasted image 20240425203422

Pasted image 20240425203523

登录fastgpt看一下能否使用

Pasted image 20240425204128

可以看到已经可以对话了,如果不能对话报错,就去检查一下docker-compose编辑那部检查一下时候填对了,填写没有问题就执行一下 停止fastgpt和启动fastgpt运行

Pasted image 20240425204229

如何自定义添加大模型

可以看到fastgpt里自带的模型只有3个,如何加入其他模型呢

Pasted image 20240425204523

编辑config.json

Pasted image 20240425204745

可以看到以下是相应的模型配置文件

Pasted image 20240425205050

示例:添加千问大模型

{ "model": "gpt-3.5-turbo", // 模型名(对应OneAPI中渠道的模型名) "name": "gpt-3.5-turbo", // 别名 "avatar": "/imgs/model/openai.svg", // 模型的logo "maxContext": 16000, // 最大上下文 "maxResponse": 4000, // 最大回复 "quoteMaxToken": 13000, // 最大引用内容 "maxTemperature": 1.2, // 最大温度 "charsPointsPrice": 0, // n积分/1k token(商业版) "censor": false, // 是否开启敏感校验(商业版) "vision": false, // 是否支持图片输入 "datasetProcess": true, // 是否设置为知识库处理模型(QA),务必保证至少有一个为true,否则知识库会报错 "usedInClassify": true, // 是否用于问题分类(务必保证至少有一个为true)    "usedInExtractFields": true, // 是否用于内容提取(务必保证至少有一个为true) "usedInToolCall": true, // 是否用于工具调用(务必保证至少有一个为true) "usedInQueryExtension": true, // 是否用于问题优化(务必保证至少有一个为true) "toolChoice": true, // 是否支持工具选择(分类,内容提取,工具调用会用到。目前只有gpt支持) "functionCall": false, // 是否支持函数调用(分类,内容提取,工具调用会用到。会优先使用 toolChoice,如果为false,则使用 functionCall,如果仍为 false,则使用提示词模式) "customCQPrompt": "", // 自定义文本分类提示词(不支持工具和函数调用的模型 "customExtractPrompt": "", // 自定义内容提取提示词 "defaultSystemChatPrompt": "", // 对话默认携带的系统提示词 "defaultConfig":{} // 请求API时,挟带一些默认配置(比如 GLM4 的 top_p) },

千问大模型

{"model": "qwen:14b","name": "qwen:14b","maxContext": 16000,"avatar": "/imgs/model/qwen.svg","maxResponse": 4000,"quoteMaxToken": 13000,"maxTemperature": 1.2,"charsPointsPrice": 0,"censor": false,"vision": false,"datasetProcess": true,"usedInClassify": true,"usedInExtractFields": true,"usedInToolCall": true,"usedInQueryExtension": true,"toolChoice": true,"functionCall": true,"customCQPrompt": "","customExtractPrompt": "","defaultSystemChatPrompt": "","defaultConfig": {}},

Pasted image 20240425210900

重启一下fastgpt

Pasted image 20240425211058

Pasted image 20240426104245

添加知识库m3e索引模型

fastgpt支持的索引模型有embedding和m3e,但是自带的只有emnedding,如何添加m3e索引模型

编辑这个config.json文件

Pasted image 20240427093725

添加m3e模型

{ "model": "m3e", "name": "m3e", "price": 0.1, "defaultToken": 500, "maxToken": 1800 
}

Pasted image 20240427093936

重启fastgpt

Pasted image 20240427094011

可以看到知识库创建已有M3e

Pasted image 20240427094041

知识库文本处理是如何添加的

Pasted image 20240427094533

在模型配置文件里设置为true就会显示在此

Pasted image 20240427094507

并且要在fastgpt对接的oneapi里添加索引模型m3e

Pasted image 20240427095156

测试是否成功

Pasted image 20240427095250

Pasted image 20240427095424

索引完成

Pasted image 20240427095510

可以看到可以回答知识库相关内容了

Pasted image 20240427101256

如何更新fastgpt

# 更新fastgpt
docker compose pull # 启动fastgpt
docker compose up -d

避坑指南

在测试过程中出现配置文件中添加了模型并且也重启了fastgpt,发现fastgpt里还是没有自定义添加的模型

  1. 仔细检查一下配置文件是否填对
  2. 配置文件没问题,可以多次重启fastgpt,大概率就会解决问题

oneapi里添加了模型名字,fastgpt里也添加了,但是就是提示无所用模型

  1. 仔细检查一下模型名字时候填对,或者多等一会在进行测试

更多问题可以加QQ群反馈

这篇关于Fastgpt知识库接入oneapi和自定义大模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/970286

相关文章

如何自定义一个log适配器starter

《如何自定义一个log适配器starter》:本文主要介绍如何自定义一个log适配器starter的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求Starter 项目目录结构pom.XML 配置LogInitializer实现MDCInterceptor

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

spring security 超详细使用教程及如何接入springboot、前后端分离

《springsecurity超详细使用教程及如何接入springboot、前后端分离》SpringSecurity是一个强大且可扩展的框架,用于保护Java应用程序,尤其是基于Spring的应用... 目录1、准备工作1.1 引入依赖1.2 用户认证的配置1.3 基本的配置1.4 常用配置2、加密1. 密

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI