从0开始入门智能知识库和星火大模型,打造AI客服。

介绍FastWiki

FastWiki是一个高性能、基于最新技术栈的知识库系统,旨在为大规模信息检索和智能搜索提供解决方案。它采用微软Semantic Kernel进行深度学习和自然语言处理,在后端使用MasaFramework,前端采用MasaBlazor框架,实现了一个高效、易用、可扩展的智能向量搜索平台。其目标是帮助用户快速准确地获取所需信息,具有智能搜索、高性能、现代化前端、强大的后端等特点。除此之外,FastWiki是开源和社区驱动的项目,采用Apache-2.0许可证,鼓励开发者和企业使用和贡献。

部署FastWiki

下面部署FastWiki将使用docker-compose进行部署,如果不存在环境则先安装docker和docker-compose的环境,由于postgresql需要使用向量插件,自己打包向量插件会过于麻烦,所以FastWiki提供了一键docker-compose的文件,内部提供的postgresql自带了vector插件了,我们只需要执行脚本即可

部署One-Api

One-Api是干什么的:

  • One-Api用于AI的中转站,由于大部分的AI工具仅支持openai的api格式,但是国内的AI的接口格式五花八门,所以我们需要通过One-Api将国内的AI转换成openai的接口格式下面我们开始部署我们的One-Api

将下面的内容复制到一个docker-compose.yml文件中

version: '3.8'
services:one-api:image: justsong/one-apicontainer_name: one-apirestart: alwaysports:- "3000:3000"environment:- TZ=Asia/Shanghaivolumes:- ./data/one-api:/data

我们使用最轻量级的Sqlite版本,启动容器以后打开浏览器访问:http://localhost:3000/

登录系统,默认账号为 root,密码为 123456

  1. 添加渠道

  2. 添加星火大模型的渠道

  3. 获取星火大模型的密钥

    1. 控制台-讯飞开放平台 (xfyun.cn) 在这里申请一个应用和产品,3.5个人用户可以免费领取200万的Token对于测试基本是够用的
  4. 获取到密钥 安装APPID|APISecret|APIKey的格式填写到上面One-Api的密钥当中即可,

  5. 创建One-Api的Token,设置无限额度,然后点击提交。

  6. 点击复制key,然后将key修改下面的compose文件中的OPENAI_CHAT_TOKEN的环境变量的值,OPENAI_CHAT_ENDPOINT的地址则修改成fast-wiki-service能访问的地址,比如你局域网的ip加端口 OPENAI_CHAT_ENDPOINT=http://ip:端口 这样即可。

下载docker-compose.yml

curl -o docker-compose.yml https://raw.githubusercontent.com/239573049/fast-wiki/master/docker-compose.yml

然后打开下载的docker-compose.yml文件,知识库依赖了第三方服务所以不能直接运行,需要修改部分参数。

version: '3.8'  # 可以根据需要使用不同的版本
services:fast-wiki-service:image: registry.cn-shenzhen.aliyuncs.com/fast-wiki/fast-wiki-servicecontainer_name: fast-wiki-serviceuser: rootrestart: alwaysports:- "8080:8080"build: context: .dockerfile: ./src/Service/FastWiki.Service/Dockerfilevolumes:- ./wwwroot:/app/wwwroot/environment:- OPENAI_CHAT_ENDPOINT=https://api.openai.com- OPENAI_CHAT_EMBEDDING_ENDPOINT=https://ai-api.token-ai.cn/- OPENAI_CHAT_TOKEN={您的TokenKey}- OPENAI_CHAT_MODEL=gpt-3.5-turbo- OPENAI_EMBEDDING_MODEL=text-embedding-3-small- ASPNETCORE_ENVIRONMENT=Development- OPENAI_EMBEDDING_TOKEN=sk-CpKIlADEESeOdoXnF58e72A2C8Af4e0c8b52Eb6eE7116c7apostgres: # 当前compose服务名image: registry.cn-shenzhen.aliyuncs.com/fast-wiki/pgvector:v0.5.0 # 拉取的数据库镜像container_name: postgres  # 容器运行的容器名称restart: always  # 开机自启动environment:  # 环境变量POSTGRES_USER: token  # 默认账号POSTGRES_PASSWORD: dd666666 # 默认密码POSTGRES_DB: wiki # 默认数据库TZ: Asia/Shanghai  # 数据库时区volumes:- ./postgresql:/var/lib/postgresql/data # 将PostgreSql数据持久化fast-wiki-server:image: registry.cn-shenzhen.aliyuncs.com/fast-wiki/fast-wiki-servercontainer_name: fast-wiki-serverrestart: always ports:- "2180:8080"build: context: .dockerfile: ./src/Web/FastWiki.Web.Server/Dockerfileenvironment:- FAST_WIKI_SERVICE=http://知识库api的ip:8080 volumes:- ./model.json:/app/model.json

FastWikiService环境变量参数:

  • QUANTIZE_MAX_TASK:量化任务的最大并发数,默认为3
  • OPENAI_CHAT_ENDPOINT:OpenAI API的地址
  • OPENAI_CHAT_EMBEDDING_ENDPOINT: Embedding API的地址
  • OPENAI_CHAT_TOKEN: OpenAI API的Token
  • OPENAI_CHAT_MODEL: 对话的模型,默认gpt-3.5-turbo
  • OPENAI_EMBEDDING_MODEL: Embedding的模型,默认text-embedding-3-small
  • OPENAI_EMBEDDING_TOKEN: Embedding的Token, 默认为空,为空则使用对话的Token

FastWiki.Web.Server环境变量参数:

  • FAST_WIKI_SERVICE:FastWikiService的地址,默认为http://localhost:5124

请注意FAST_WIKI_SERVICE环境变量一定是得外网能访问到的地址,否则在回复知识库内容的时候会导致引用的文件出现404.

FastWiki为你提供了免费的向量Api,这个地址和token仅支持向量(并且对于ip进行限流)。

创建自定义模型的json以便支持国产模型,文件需要于docker-compose.yml同级:

model.json

{"ChatModel": [{"label": "gpt-3.5-turbo","value": "gpt-3.5-turbo"},{"label": "gpt-4-0125-preview","value": "gpt-4-0125-preview"},{"label": "gpt-4-1106-preview","value": "gpt-4-1106-preview"},{"label": "gpt-4-1106-vision-preview","value": "gpt-4-1106-vision-preview"},{"label": "gpt-4","value": "gpt-4"},{"label": "gpt-4-32k","value": "gpt-4-32k"},{"label": "gpt-3.5-turbo-0125","value": "gpt-3.5-turbo-0125"},{"label": "SparkDesk-v3.5","value": "SparkDesk-v3.5"}],"EmbeddingModel": [{"label": "text-embedding-3-small","value": "text-embedding-3-small"}]
}

SparkDesk-v3.5则是星火大模型。

上面文件创建好了以后执行,然后就可以访问http://localhost:2180/

docker-compose up -d

登录系统默认账号admin密码Aa123456

  1. 点击知识库->创建知识库 点击添加。

  2. 点击创建的知识库:

  3. 点击导入文件

  4. 拖动需要上传的.md/.pdf/.txt的文件到这里,然后点击下一步,一直到上传数据,

  5. 上传数据,点击上传,上传完成关闭弹窗。

  6. 数据上传以后服务会在后台进行量化,等待上传完成以后点击应用,然后创建应用

  7. 创建应用,然后打开创建的应用
    1.

  8. 绑定知识库,点击选择知识库然后点击需要绑定的知识库,在关闭弹窗,然后点击保存修改即可。

  9. 修改电话基础模型,修改为添加的SparkDesk-v3.5然后点击保存修改即可

  10. 打开聊天然后提问上传的文档的内容,这样就可以针对性规范AI了,还可以设置超出知识库返回的时候回复内容!

开源地址

Github: https://github.com/239573049/fast-wiki

Gitee: https://gitee.com/hejiale010426/fast-wiki

在线文档:https://docs.token-ai.cn/

体验地址:https://chat.token-ai.cn/chat/share-chat?id=939b3ad2f853422db0d781bcb19a8bf1

知识库微信交流群加:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/721692.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【基础知识】VAE 变分推断公式|变分分布|先验分布|后验分布|KL散度|边缘似然

VAE 变分推断公式 这个绿框中的公式是变分推断(Variational Inference)的核心组成部分,用于在贝叶斯模型中近似复杂的后验分布 p ( z ∣ x ) p(z|x) p(z∣x)。变分推断通过引入一个简单的分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ​(z∣x)&…

Swing程序设计(11)动作事件监听器,焦点事件监听器

文章目录 前言一、事件监听器是什么?二、详细展开 1.动作事件监听器2.焦点事件监听器总结 前言 如果你是坚持从Swing程序第一篇看到了这里,恭喜你,Swing程序设计简单地落下了帷幕,关于Swing程序更深的了解,可以自行学习…

MySQL性能优化-范式设计和反范式设计

范式化设计 范式化设计背景 范式是数据表设计的基本原则,又很容易被忽略。很多时候,当数据库运行了一段时间之后,我们才发现数据表设计得有问题。重新调整数据表的结构,就需要做数据迁移,还有可能影响程序的业务逻辑…

【Axure高保真原型】输入宽高控制图片尺寸

今天和大家分享输入图片宽高控制图片尺寸的原型模板,在输入框里输入图片的宽和高,图片会自动设置成对应数值的尺寸,包括了按比例或者自由设置两种方式,具体效果可以观看下方视频或者打开预览地址体验。 【原型效果】 【Axure高保…

一个printf多个字符串的连续输出

先看程序,再看解析 int main() { char arr[10] "qwer"; printf("asdf " "%s" "zxcv\n",arr); return 0; } 此程序会输出连续三段字符串asdf qwer zxcv 原因:字符串的输出…

数据库SQLite

1.简单创建一个数据库和删除一个数据库 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:orientation"vertical">&l…

wordpress外贸独立站

WordPress外贸电商主题 简洁实用的wordpress外贸电商主题&#xff0c;适合做外贸跨境的电商公司官网使用。 https://www.jianzhanpress.com/?p5025 华强北面3C数码WordPress外贸模板 电脑周边、3C数码产品行业的官方网站使用&#xff0c;用WordPress外贸模板快速搭建外贸网…

Windows Media Player (Win10)

Windows Media Player &#xff08;Win10&#xff09;服务器运行失败 先关闭掉【Windows Media Player】组件&#xff0c;但是要重启计算机 重启计算机后&#xff0c;再开启【Windows Media Player】组件√起来 可以使用了&#xff01;&#xff01;&#xff01;

视频编码标准H.264/AVC,H.265/HEVC,VP8/VP9,AV1的基本原理、优缺点以及适用场景

视频编码标准是用于压缩数字视频数据的技术规范&#xff0c;以减少存储和传输所需的带宽。以下是关于H.264/AVC、H.265/HEVC、VP8/VP9和AV1这些标准的基本原理、优缺点以及适用场景的简要描述&#xff1a; H.264/AVC (Advanced Video Coding) 基本原理&#xff1a; H.264是一…

前缀和和差分以及练习题目

蓝桥杯备赛系列 倒计时50天&#xff01; 前缀和和差分 知识点 前缀和数组&#xff1a; 假设原数组用a[i]表示&#xff0c;前缀和数组用sum[i]表示&#xff0c;那么sum[i]表示的是原数组前i项之和&#xff0c;注意一般用前缀和数组时&#xff0c;原数组a[i]的有效下标是从1开…

最强照片AI无损放大工具

使用人工智能的能力来放大图像&#xff0c;同时为惊人的结果添加自然的细节。 使用深度学习技术&#xff0c;A.I.GigaPixEL可以放大图像并填满其他调整大小的产品所遗漏的细节。 下载地址&#xff1a;最强照片AI无损放大工具.zip

北斗导航 | 同步双星故障的BDS/GPS接收机自主完好性监测算法

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 同步双星故障的BDS/GPS接收机自主完好性监测算法 1 引言2 同步双星故障…

代码随想录算法训练营第五十一天丨309. 买卖股票的最佳时机含冷冻期、714. 买卖股票的最佳时机含手续费

309. 买卖股票的最佳时机含冷冻期 这题是中等&#xff1f;&#xff1f;&#xff1f; 最终自己写完再看代码随想录的解释感觉很好理解&#xff0c;但是从0到1想出来就很困难。 class Solution:def maxProfit(self, prices: List[int]) -> int:n len(prices)if n 1:retur…

太阳能供电井盖-物联网智能井盖监测系统-旭华智能

在这个日新月异的科技时代&#xff0c;城市的每一个角落都在悄然发生变化。而在这场城市升级的浪潮中&#xff0c;智能井盖以其前瞻性的科技应用和卓越的安全性能&#xff0c;正悄然崭露头角&#xff0c;变身马路上的智能“眼睛”&#xff0c;守护城市安全。 传统的井盖监测系统…

展示模型展台的高度一般为多少---模大狮模型网

展示模型展台的高度一般取决于多个因素&#xff0c;包括展示物品的大小、展台的设计风格、展览场地的限制等。一般来说&#xff0c;展示模型展台的高度可以根据以下几点考虑&#xff1a; 展示物品的大小&#xff1a;如果展示物品比较大或需要竖立展示&#xff0c;展台的高度可能…

MWC 2024 | 紫光展锐“芯联世界”,携手产业伙伴共创“智慧未来”

西班牙巴塞罗那&#xff0c;当地时间2月26日&#xff0c;2024年世界移动通信大会&#xff08;MWC 2024&#xff09;盛大开幕。MWC由全球移动通信系统协会&#xff08;GSMA&#xff09;主导举办&#xff0c;是全球通信领域最具权威的展会之一。紫光展锐以“芯联世界 智慧未来”为…

前端开发中HTTP状态码的含义和用途,及常见错误码产生的原因和解决方法

文章目录 一、HTTP状态码含义二、HTTP状态码分类1、第一类状态码&#xff08;1XX&#xff09;是信息响应2、第二类状态码&#xff08;2XX&#xff09;是成功响应3、第三类状态码&#xff08;3XX&#xff09;是重定向响应4、第四类状态码&#xff08;4XX&#xff09;是客户端错误…

【学位论文】上海交通大学 研究生学位论文 本地保存

上海交大研究生学位论文网&#xff1a;http://thesis.lib.sjtu.edu.cn/ &#xff08;只能校内访问或SJTU VPN访问&#xff09; 如果希望下载论文&#xff0c;需要参考&#xff1a;https://github.com/olixu/SJTU_Thesis_Crawler 安装过程 安装过程的几个坑&#xff1a; &a…

go-zero官网

go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性&#xff0c;经受了充分的实战检验。 go-zero官网&#xff1a;go-zero 缩短从需求到上线的距离

【Redis】RedisTemplate和StringRedisTemplate的区别

两者的关系是 StringRedisTemplate 继承 RedisTemplate 。 两者的数据是不共通的&#xff1a;也就是说 StringRedisTemplate 只能管理 StringRedisTemplate 里面的数据&#xff0c;RedisTemplate 只能管理 RedisTemplate 中的数据。 RedisTemplate 看这个类的名字后缀是 Temp…