介绍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

  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-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环境变量一定是得外网能访问到的地址,否则在回复知识库内容的时候会导致引用的文件出现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

知识库微信交流群加:

从0开始入门智能知识库和星火大模型,打造AI客服。的更多相关文章

  1. 【Google Cloud技术咨询】「Contact Center AI」引领我们走向高度智能客服的时代

    前提背景 我们距离"不再智障"的智能客服还有多远?对于智能客服,用户一直都是"批评多于褒奖",究其原因是在于人们对于AI客服的期待很高,而AI客服在实际应用中的 ...

  2. 入门智能家居,从 IFTTT 到 HomeKit 自动化(二)

    入门智能家居,从 IFTTT 到 HomeKit 自动化(二)   目录 0. HomeKit.HomeBridge.HomeAssistant 分别是什么?关系是什么? 1. 开始前的准备 2. 整 ...

  3. DWR3.0框架入门(2) —— DWR的服务器推送

    DWR3.0框架入门(2) —— DWR的服务器推送 DWR 在开始本节内容之前,先来了解一下什么是服务器推送技术和DWR的推送方式.   1.服务器推送技术和DWR的推送方式   传统模式的 Web ...

  4. 《vue.js2.0从入门到放弃》学习之路

    原文地址: Vue.js2.0从入门到放弃---入门实例(一):http://blog.csdn.net/u013182762/article/details/53021374 Vue.js2.0从入 ...

  5. .NET Core 2.0 项目的智能提示是英文,改成中文的解决方案

    截至目前为止(2017.09.21),Microsoft 官方并没有提供 .NET Core 2.0 正式版的多语言安装包. 因此,在 Visual Studio 2015 Update 3 和 Vi ...

  6. 【转】Zabbix 3.0 从入门到精通(zabbix使用详解)

    [转]Zabbix 3.0 从入门到精通(zabbix使用详解) 第1章 zabbix监控 1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了 当出问题之后,可以找到问题的根源   网站/ ...

  7. ExtJs 6.0+快速入门,ext-bootstrap.js文件的分析,各版本API下载

    ExtJS6.0+快速入门+API下载地址 ExtAPI 下载地址如下,包含各个版本 http://docs.sencha.com/misc/guides/offline_docs.html 1.使用 ...

  8. 新手嘛,先学习下 Vue2.0 新手入门 — 从环境搭建到发布

    Vue2.0 新手入门 — 从环境搭建到发布 转自:http://www.runoob.com/w3cnote/vue2-start-coding.html 具体文章详细就不搬了,步骤可过去看,我这就 ...

  9. 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等

    1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...

  10. 【数据库】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 ( ...

随机推荐

  1. 【小测试】rust中的无符号整数溢出

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 1.在编译阶段就可以识别出来的溢出 fn main(){ ...

  2. bootstrap ----- bootstrap table表格参数

    表格参数: 名称 标签 类型 默认 描述 - data-toggle String 'table' 不用写 JavaScript 直接启用表格. classes data-classes String ...

  3. 在Protocol Buffers中导入当前目录中的.proto文件

    在protobuf中导入当前目录中的.proto文件时,可以使用相对路径.相对路径是相对于当前.proto文件所在的目录来引用其他.proto文件. 假设有以下目录结构: my_project/ |- ...

  4. HTML直接插入js、css

    简单的小页面可以使用 代码量大的话还是建议引用代码 直接包裹起来 <style>这里添加css代码</style> 加入css标识 <style type="t ...

  5. 小白学k8s(11)-k8s中Secret理解

    理解Secret 什么是Secret Secret的类型 Opaque Secret Opaque Secret的使用 将Secret挂载到Volume中 挂载的Secret会被自动更新 将Secre ...

  6. 6.2 Windows驱动开发:内核枚举SSSDT表基址

    在Windows内核中,SSSDT(System Service Shadow Descriptor Table)是SSDT(System Service Descriptor Table)的一种变种 ...

  7. C++ Boost库 实现命令行解析

    Boost库中默认自带了一个功能强大的命令行参数解析器,以往我都是自己实现参数解析的,今天偶尔发现这个好东西,就来总结一下参数解析的基本用法,该库需要引入program_options.hpp头文件, ...

  8. python list 转二叉树 及遍历

    from __future__ import annotations from typing import Union from collections import deque class Tree ...

  9. ClickHouse(24)ClickHouse集成mongodb表引擎详细解析

    目录 MongoDB 创建一张表 用法示例 资料分享 系列文章 clickhouse系列文章 MongoDB MongoDB 引擎是只读表引擎,允许从远程 MongoDB 集合中读取数据(SELECT ...

  10. 给textarea添加行号,textarea使用代码风格的一些思考

    背景 项目有个需求是 在textarea中编辑脚本并显示为代码风格样式,显示行号: textarea显示行号 思路: 1.监听textarea内容变化,执行一个change函数,解析内容里面有多少个换 ...