从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-api
container_name: one-api
restart: always
ports:
- "3000:3000"
environment:
- TZ=Asia/Shanghai
volumes:
- ./data/one-api:/data
我们使用最轻量级的Sqlite版本,启动容器以后打开浏览器访问:http://localhost:3000/
登录系统,默认账号为 root,密码为 123456。
添加渠道
添加星火大模型的渠道
获取星火大模型的密钥
- 控制台-讯飞开放平台 (xfyun.cn) 在这里申请一个应用和产品,3.5个人用户可以免费领取200万的Token对于测试基本是够用的
获取到密钥 安装APPID|APISecret|APIKey的格式填写到上面One-Api的密钥当中即可,

创建One-Api的Token,设置无限额度,然后点击提交。
点击复制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-service
container_name: fast-wiki-service
user: root
restart: always
ports:
- "8080:8080"
build:
context: .
dockerfile: ./src/Service/FastWiki.Service/Dockerfile
volumes:
- ./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-CpKIlADEESeOdoXnF58e72A2C8Af4e0c8b52Eb6eE7116c7a
postgres: # 当前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-server
container_name: fast-wiki-server
restart: always
ports:
- "2180:8080"
build:
context: .
dockerfile: ./src/Web/FastWiki.Web.Server/Dockerfile
environment:
- 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


点击知识库->创建知识库 点击添加。
点击创建的知识库:
点击导入文件

拖动需要上传的.md/.pdf/.txt的文件到这里,然后点击下一步,一直到上传数据,
上传数据,点击上传,上传完成关闭弹窗。
数据上传以后服务会在后台进行量化,等待上传完成以后点击应用,然后创建应用
创建应用,然后打开创建的应用
1.
绑定知识库,点击选择知识库然后点击需要绑定的知识库,在关闭弹窗,然后点击保存修改即可。

修改电话基础模型,修改为添加的
SparkDesk-v3.5然后点击保存修改即可打开聊天然后提问上传的文档的内容,这样就可以针对性规范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
知识库微信交流群加:

从0开始入门智能知识库和星火大模型,打造AI客服。的更多相关文章
- 【Google Cloud技术咨询】「Contact Center AI」引领我们走向高度智能客服的时代
前提背景 我们距离"不再智障"的智能客服还有多远?对于智能客服,用户一直都是"批评多于褒奖",究其原因是在于人们对于AI客服的期待很高,而AI客服在实际应用中的 ...
- 入门智能家居,从 IFTTT 到 HomeKit 自动化(二)
入门智能家居,从 IFTTT 到 HomeKit 自动化(二) 目录 0. HomeKit.HomeBridge.HomeAssistant 分别是什么?关系是什么? 1. 开始前的准备 2. 整 ...
- DWR3.0框架入门(2) —— DWR的服务器推送
DWR3.0框架入门(2) —— DWR的服务器推送 DWR 在开始本节内容之前,先来了解一下什么是服务器推送技术和DWR的推送方式. 1.服务器推送技术和DWR的推送方式 传统模式的 Web ...
- 《vue.js2.0从入门到放弃》学习之路
原文地址: Vue.js2.0从入门到放弃---入门实例(一):http://blog.csdn.net/u013182762/article/details/53021374 Vue.js2.0从入 ...
- .NET Core 2.0 项目的智能提示是英文,改成中文的解决方案
截至目前为止(2017.09.21),Microsoft 官方并没有提供 .NET Core 2.0 正式版的多语言安装包. 因此,在 Visual Studio 2015 Update 3 和 Vi ...
- 【转】Zabbix 3.0 从入门到精通(zabbix使用详解)
[转]Zabbix 3.0 从入门到精通(zabbix使用详解) 第1章 zabbix监控 1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了 当出问题之后,可以找到问题的根源 网站/ ...
- ExtJs 6.0+快速入门,ext-bootstrap.js文件的分析,各版本API下载
ExtJS6.0+快速入门+API下载地址 ExtAPI 下载地址如下,包含各个版本 http://docs.sencha.com/misc/guides/offline_docs.html 1.使用 ...
- 新手嘛,先学习下 Vue2.0 新手入门 — 从环境搭建到发布
Vue2.0 新手入门 — 从环境搭建到发布 转自:http://www.runoob.com/w3cnote/vue2-start-coding.html 具体文章详细就不搬了,步骤可过去看,我这就 ...
- 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等
1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...
- 【数据库】4.0 MySQL入门学习(四)——linux系统环境下MySQL安装
1.0 我的操作系统是CentOS Linux release 7.6.1810 (Core) 系统详细信息如下: Linux version 3.10.0-957.1.3.el7.x86_64 ( ...
随机推荐
- ngnix在linux安装并设置反向代理
一.nginx安装 1.安装Nginx依赖的环境 安装Nginx依赖的gcc的编译环境: yum install gcc-c++ Nginx的http模块需要使用pcre来解析正则表达式,需要安装pc ...
- windwos10任务栏居中
如下操作 新建一个文件夹如图 然后出现这个重右往左一直拖然后拉出来就行了如图 拖不动或者没有的把这个关了-锁定任务栏 文字如何隐藏? 在这个文字旁边右击关闭标题即可 然后锁定任务栏就OK了
- C# 使用RabbitMQ消息队列
参考文章 https://www.cnblogs.com/kiba/p/11703073.html和https://www.cnblogs.com/longlongogo/p/6489574.html ...
- 微信小程序-页面生命周期方法
在经过上一篇文章的介绍之后,我们知道了大体的生命周期在什么时候执行,这次主要是以代码的形式来展示一下具体的阶段执行什么生命周期方法. 首先我们编写一个代码可以从首页跳转到日志页面: <!--in ...
- FaceFusion:探索无限创意,创造独一无二的面孔融合艺术!
FaceFusion:探索无限创意,创造独一无二的面孔融合艺术! 它使用先进的图像处理技术,允许用户将不同的面部特征融合在一起,创造有趣和令人印象深刻的效果.这个项目的潜在应用包括娱乐.虚拟化妆和艺术 ...
- 主动学习(Active Learning)简介综述汇总以及主流技术方案
0.引言 在机器学习(Machine learning)领域,监督学习(Supervised learning).非监督学习(Unsupervised learning)以及半监督学习(Semi-su ...
- 解决SystemExit: 2,args = parser.parse_args() 的问题,
报错: File "/home/barry/PycharmProjects/EEPC/detect.py", line 283, in parse_opt opt = parser ...
- 【文件】C语言文件操作及其使用总结篇【初学者保姆级别福利】
[文件]C语言文件操作及其使用总结篇[初学者保姆级别福利] 一篇博客学好动态内存的管理和使用 这篇博客干货满满,建议收藏再看哦!! 求个赞求个赞求个赞求个赞 谢谢 先赞后看好习惯 打字不容易,这都是很 ...
- layui 的tab标签,选项卡的删除,是先切换,后删除,其实这样设计挺好的。
layui的 tab关闭时,是先触发 切换事件,然后再触发删除事件,这一点留意,其实这样设计挺好的.那么留意点,就是先向主进程发送切换消息,然后再向主进程发送删除消息, 这样反而更加有利于,主进程代码 ...
- MySQL 中 的 bit 类型,tinyint(1);
之前一直以为 mysql中没有 bit类型,需要使用 tinyint 来标识 bit.但是前端的实体类,不好控制,后来发现这些问题已经有了默认的统一设置,这样反而更好. 总结:MySQL中 使用布尔类 ...









