奇诺分享 | ccino.net

  • 首页
  • VPS
    • VPS申请
    • VPS配置
    • 科学上网
  • 网站建设
    • WordPress
  • 程序猿
    • 开发工具
    • 微服务
    • 容器
    • 分布式
    • 数据库
    • 人工智能
  • 杂项
  • 关于
  • Privacy Policy
生活不只是眼前的苟且,还有诗和远方!
  1. 首页
  2. 程序猿
  3. 人工智能
  4. 正文

手把手教你构建一个 本地化的,免费的,企业级的,AI大模型知识库问答系统

2024年5月10日 1204点热度 2人点赞 0条评论

我将通过一个系列分享,手把手的教大家打造一个完全本地化的,免费的,企业级知识库问答系统

本地大模型回答演示图

gitmin1.jpg

知识库导入演示图

gitmind2.jpg

我认为本地化主要有2方面的意义:

1. 安全性

当使用外部模型或服务时,我们的私有数据,用户问题,都会被发送给第三方 那我们就要面临私有数据暴露给别人的风险,甚至会导致数据泄露 本地化会让我们的数据就更安全

2. 灵活性

另外随着我们的业务发展,如果模型不能很好的满足我们需求的时候 我们可以很方便的对本地模型其进行微调 以达到更好的适配

这样就既兼顾了安全,又兼顾了灵活性

应用场景

知识库问答的使用场景其实非常多,我随便举2个商业系统的例子

比如对个人,可以用来整理笔记、论文解读、文献检索、文档问答等等。 这里我用 轻闪PDF的文档对话 https://lightpdf.cn/chatdoc 来演示一下效果。

我们随便上传一个PDF文档,等文档解析完成后,我们就可以通过提问的方式,对文档里面的内容进行解读,可以很快的从文档中找到我们想要的内容, 大大提高我们查看文档的效率。

对企业,可以用来做智能客服,数据沉淀或者数字员工等等,同样我用思乎的在线客服 https://gitmind.cn 来演示一下。

我们可以向客服提问,AI就会准确的回复我们的问题,而这些问题的答案,大模型本身是没有的。 因为大模型既不了解我们的业务,也不知道我们的数据,这些AI回复的答案,都是从企业的知识库里面获取的。这样我们就实现了一个7x24小时的智能客服, 不仅为企业降本增效,还提高了客户的满意度。

服务器配置要求

环境 最低配置 推荐配置
测试 2核 2GB 2核 4GB
100w 组向量 4核 8GB 50GB 4核 16GB 50GB
500w 组向量 8核 32GB 200GB 16核 48GB 200GB
1000w 组向量 16核 48GB 200GB 32核 64GB 500GB

架构图

整个的系统搭建,都是基于这个架构图来进行的

架构图

RAG原理

是什么

  • 检索:Retrieval,通过向量模型,或者多种混合检索方式,从知识库中检索出相关的文档
  • 增强:Augmentation,通过将检索到的文档,附加到提示词中,进行增强。也即 ICL(In Context Learning)
  • 生成:Generation,通过大语言模型,生成答案

有什么优势

  1. 有助于减轻大模型的幻觉,提高大模型回复的准确性
  2. 与微调不同,RAG提供了一定的可观察性和可检查性
  3. 成本低,好实施

rag.png

安装 Docker

下载 Docker 并安装 https://www.docker.com/products/docker-desktop/

安装 Ollama

下载 Ollama 并安装 https://ollama.com/

下载 Chat 模型

我使用阿里的通义千问作为演示,根据自己的电脑配置情况,选择合适的模型。

总体来说,模型是越大,效果越好,但是对电脑的配置要求也越高

  • 4b 模型要 3GB内存
  • 7b 模型要 8GB 内存
  • 13b 模型要 16GB 内存
  • 70b 模型要 64GB 内存

特别注意:你如果要用于商业用途,需要申请授权,否则只能用于个人学习

  • 千问许可说明: https://ollama.com/library/qwen:latest/blobs/41c2cf8c272f

申请商用授权: https://dashscope.console.aliyun.com/openModelApply/qianwen

下载模型

1
ollama pull qwen:7b

测试API请求

等模型下载和安装好后,执行下面的命令,测试API请求是否成功

Mac/Linux下执行:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
curl 'http://localhost:11434/api/chat' \
--data '{
    "model": "qwen:7b",
    "messages": [
        {
            "role": "user",
            "content": "你是谁"
        }
    ],
    "temperature": 0.1,
    "stream": false
}'
Windows下执行:
1
2
curl "http://localhost:11434/api/chat" ^
--data "{""model"": ""qwen:7b"", ""messages"": [{""role"": ""user"", ""content"": ""你是谁""}], ""temperature"": 0.1, ""stream"": false}"

下载 Embedding 模型

我使用了 DmetaSoul 的中文Embedding模型,该模型号称在 MTEB 中文榜单取得开源第一的成绩: https://huggingface.co/DMetaSoul/Dmeta-embedding-zh/blob/main/README_zh.md

下载模型

1
ollama pull shaw/dmeta-embedding-zh

测试API请求

等模型下载和安装好后,执行下面的命令,测试API请求是否成功

Mac/Linux下执行:
1
2
3
4
5
curl 'http://localhost:11434/api/embeddings' \
--data '{
  "model": "shaw/dmeta-embedding-zh",
  "prompt": "天空是灰色的"
}'
Windows下执行:
1
2
curl "http://localhost:11434/api/embeddings" ^
--data "{""model"": ""shaw/dmeta-embedding-zh"", ""prompt"": ""天空是灰色的""}"

安装FastGPT及其依赖

1. 下载 docker 文件 和 config 文件

你可以手动下载,放到一个文件夹里面

  • docker-compose.yml: https://harryai.cc/kbqa/docker-compose.yml
  • config.json: https://harryai.cc/kbqa/config.json

也可以直接执行下面的命令,自动下载

1
2
3
4
mkdir kbqa
cd kbqa
curl -O https://harryai.cc/kbqa/docker-compose.yml
curl -O https://harryai.cc/kbqa/config.json

2. 启动 docker

1
docker-compose up

注意

  • 第一次启动会有点慢,因为要拉取镜像,后面启动就会很快了
  • 如果第一次启动失败,可以多次执行 docker-compose up

3. 访问 FastGPT 和 OneAPI

你第一次访问,系统里面是没有数据的,截图里面的数据,是我测试的时候已经创建好了的。

FastGPT

点击访问:http://localhost:3000

用户名 root,密码 1234(密码可以在 docker-compose.yml 环境变量里设置 DEFAULT_ROOT_PSW 进行修改) fastgpt.jpg

OneAPI

点击访问:http://localhost:3001

用户名 root,密码 123456 oneapi.jpg

配置OneAPI

添加模型:http://localhost:3001/channel

1. 配置大语言模型

  1. 类型:Ollama
  2. 名称:ollama-qwen:7b
  3. 模型:输入自定义模型名称,qwen:7b
  4. 密钥:随便填,比如 123
  5. 代理:http://host.docker.internal:11434

2. 配置Embedding向量模型

  1. 类型:Ollama
  2. 名称:ollama-dmeta-embedding-zh
  3. 模型:输入自定义模型名称,shaw/dmeta-embedding-zh**,比如
  4. 密钥:随便填,比如 123
  5. 代理:http://host.docker.internal:11434

特别注意:

  1. 模型 必须和 ollama 安装的模型名称保持一致,可以使用 ollama list 命令查看
  2. 代理地址 必须是 http://host.docker.internal:11434,这样 OneAPI 才能访问到 ollama

默认情况下,Docker 使用的是 桥接模式 启动服务,即容器使用 Docker 自己创建的虚拟网络,容器之间可以相互通信,但是它们无法直接访问宿主机(即你的电脑)上的网络服务。

但是 Ollama 是运行在你的电脑上的, 而 OneAPI 是运行在 Docker 容器里面的,所以 OneAPI 无法直接访问 Ollama。

docker 官方提供了一种支持方案,可通过指向 host.docker.internal 来指向宿主机的 IP。

参见官方文档:从容器连接到主机上的服务

配置FastGPT

我们先创建一个简单的应用,实现一个基本的AI对话,目的是测试OneAPI的接口以及Ollama的接口是否正常。

 

本文出自:https://harryai.cc/post/enterprise-knowledge-llm-qa/

相关文章

  • 谷歌科学家万字长文:《改变你职业生涯的一篇文章,我如何运用人工智能完成工作》建议每个人都要读一遍

  • 在cloudflare部署hugging face的免费api,可对接oneapi/newapi,免费使用Qwen2.5 72B等模型

  • 教你从零开始,入坑域名、云服务器并部署 New API + Open WebUI!

  • 实现本地 RAG 服务:整合 Open WebUI、Ollama 和 Qwen2.5

相关文章

  • 谷歌科学家万字长文:《改变你职业生涯的一篇文章,我如何运用人工智能完成工作》建议每个人都要读一遍

  • 在cloudflare部署hugging face的免费api,可对接oneapi/newapi,免费使用Qwen2.5 72B等模型

  • 教你从零开始,入坑域名、云服务器并部署 New API + Open WebUI!

  • 实现本地 RAG 服务:整合 Open WebUI、Ollama 和 Qwen2.5

相关文章

  • 谷歌科学家万字长文:《改变你职业生涯的一篇文章,我如何运用人工智能完成工作》建议每个人都要读一遍

  • 在cloudflare部署hugging face的免费api,可对接oneapi/newapi,免费使用Qwen2.5 72B等模型

  • 教你从零开始,入坑域名、云服务器并部署 New API + Open WebUI!

  • 实现本地 RAG 服务:整合 Open WebUI、Ollama 和 Qwen2.5

相关文章

  • 谷歌科学家万字长文:《改变你职业生涯的一篇文章,我如何运用人工智能完成工作》建议每个人都要读一遍

  • 在cloudflare部署hugging face的免费api,可对接oneapi/newapi,免费使用Qwen2.5 72B等模型

  • 教你从零开始,入坑域名、云服务器并部署 New API + Open WebUI!

  • 实现本地 RAG 服务:整合 Open WebUI、Ollama 和 Qwen2.5

相关文章

  • 谷歌科学家万字长文:《改变你职业生涯的一篇文章,我如何运用人工智能完成工作》建议每个人都要读一遍

  • 在cloudflare部署hugging face的免费api,可对接oneapi/newapi,免费使用Qwen2.5 72B等模型

  • 教你从零开始,入坑域名、云服务器并部署 New API + Open WebUI!

  • 实现本地 RAG 服务:整合 Open WebUI、Ollama 和 Qwen2.5

标签: AI FastGPT
最后更新:2024年5月10日

奇诺分享 | ccino.net

这个人很懒,什么都没留下

点赞
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

文章目录
  • 本地大模型回答演示图
  • 知识库导入演示图
  • 我认为本地化主要有2方面的意义:
    • 1. 安全性
    • 2. 灵活性
  • 应用场景
  • 服务器配置要求
  • 架构图
  • RAG原理
    • 是什么
    • 有什么优势
  • 安装 Docker
  • 安装 Ollama
    • 下载 Chat 模型
    • 下载 Embedding 模型
  • 安装FastGPT及其依赖
    • 1. 下载 docker 文件 和 config 文件
    • 2. 启动 docker
    • 3. 访问 FastGPT 和 OneAPI
  • 配置OneAPI
    • 1. 配置大语言模型
    • 2. 配置Embedding向量模型
  • 配置FastGPT
最近评论
奇诺分享 | ccino.net 发布于 5 年前(11月22日) 惭愧~~我没用Windows版本的,所以帮不了你~~
chenyuan 发布于 5 年前(11月01日) 系统代理按键打开了没过几秒又自动观上了,导致一直打开不了,是什么问题呢?感谢大佬,请帮帮忙!谢谢!
奇诺分享 | ccino.net 发布于 5 年前(07月14日) 就是给同一局域网的其他设备共享使用。
xulingran 发布于 5 年前(07月12日) 请问“启用局域网共享代理功能”是什么意思呢
奇诺分享 | ccino.net 发布于 5 年前(05月23日) 我没遇到此问题,要不你到官方开case问问看?
标签聚合
网站建设 优化 https VPS SSL WordPress 插件 证书

COPYRIGHT © 2021 ccino.net. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang