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

相关文章

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

聊聊springboot中如何自定义消息转换器

《聊聊springboot中如何自定义消息转换器》SpringBoot通过HttpMessageConverter处理HTTP数据转换,支持多种媒体类型,接下来通过本文给大家介绍springboot中... 目录核心接口springboot默认提供的转换器如何自定义消息转换器Spring Boot 中的消息

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束