AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


FastGPT + OneAPI + xinferencce + ollama 构建本地知识库
发布日期:2024-05-08 08:08:31 浏览次数: 2360


LLM 基础概念讲解

LLM 模型:chatgpt 以及google Gemma 等Emedding 模型:Gemma:7b-text 让大模型多读点书(扩展用) 顺带把数据存放入 向量数据库 Rerank 模型:从向量数据库中检索模型运行管理工具:ollama, xinferenceAI Agent 流程可视化:LangFlow , AutoGen

【重点 1】ollama 的安装

Ollama:本地运行大型语言模型的最佳选择https://mp.weixin.qq.com/s/Rt4sDtBfRFcRd8FooK-rbQ

【重点 2】Anaconda3 + xinference 的安装

xinference + dify + ollama 构建本地知识库https://mp.weixin.qq.com/s/XrHZqXZ-8oV2kKOgfUlcIw

FastGPT + OneAPI 安装配置

1. 安装 FastGPT + OneAPI

# Docker Compose 快速部署mkdir fastgptcd fastgptcurl -O https://raw.githubusercontent.com/labring/FastGPT/main/files/deploy/fastgpt/docker-compose.ymlcurl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json

2. 拆解 docker-compose.yml

# 数据库的默认账号和密码仅首次运行时设置有效# 如果修改了账号密码,记得改数据库和项目连接参数,别只改一处~# 该配置文件只是给快速启动,测试使用。正式使用,记得务必修改账号密码,以及调整合适的知识库参数,共享内存等。
version: '3.3'services:pg:image: ankane/pgvector:v0.5.0 # gitcontainer_name: pgmongo:image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18container_name: mongofastgpt:container_name: fastgptimage: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.7 # gitports:- 3000:3000networks:- fastgptdepends_on:- mongo- pgmysql:image: mysql:8.0.36container_name: mysqloneapi:container_name: oneapiimage: ghcr.io/songquanpeng/one-api:latestports:- 3001:3000depends_on:- mysqlnetworks:- fastgptnetworks:fastgpt:
===========================================# FastGPTfastgpt# 向量数据库 存储embedding模型处理后的向量pgvector# 文档数据库 存储FastGPT模型信息mongo===========================================# oneAPI 管理模型池oneapi# mysql 数据库 存储OneAPI模型信息mysql

FastGPT部署架构图


3. 修改 FastGPT 配置文件

# 进入 fastgpt 目录cd fastgpt# 使用编辑器修改 config.json 文件code .# 了解json结构{"llmModels", //大语言模型"vectorModels", //向量模型"reRankModels", //重排序模型"audioSpeechModels", //音频语音模型"whisperModel" //语音预训练大模型}
# 添加 llmModels{"llmModels": [{"model": "qwen:14b","name": "qwen:14b","avatar": "/imgs/model/openai.svg","maxContext": 128000,"maxResponse": 4000,"quoteMaxToken": 100000,"maxTemperature": 1.2,"charsPointsPrice": 0,"censor": false,"vision": true,"datasetProcess": false,"usedInClassify": false,"usedInExtractFields": false,"usedInToolCall": false,"usedInQueryExtension": false,"toolChoice": true,"functionCall": false,"customCQPrompt": "","customExtractPrompt": "","defaultSystemChatPrompt": "","defaultConfig": {}}]}
# 添加 vectorModels{"vectorModels": [{"model": "gemma:7b-text","name": "gemma:7b-text","avatar": "/imgs/model/openai.svg","charsPointsPrice": 0,"defaultToken": 512,"maxToken": 3000,"weight": 100,"dbConfig": {},"queryConfig": {}}]}
# 添加 reRankModels{"reRankModels": [{"model": "bge-reranker-base", "name": "检索重排-base","charsPointsPrice": 0,"requestUrl": "http://192.168.50.124:7322/v1/rerank","requestAuth": ""}}

4. 配置文件修改 [重点说明]

 # 1:每次修改完配置以后,需要停止 FastGPT 服务 docker-compose down  # 2:修改配置文件后,需要重启 FastGPT 服务 不然不生效 docker-compose up -d

5. 启动 FastGPT

docker-compose up -d

6. FastGPT 账号密码

# FastGPT 地址端口http://127.0.0.1:3000 # FastGPT 默认账号密码 docker-compose.yml 文件中查看 DEFAULT_ROOT_PSW 为默认密码账号: root密码:1234

7. OneAPI 账号密码

# oneAPI 地址端口http://127.0.0.1:3001# oneAPI 默认账号密码 账号: root密码:123456

8. OneAPI 添加本地 model [记得重启下,参考第4步]

  1. OneAPI 模型列表 偶尔会【抽风】


  2. OneAPI 新增ollama LLM 模型

  3. OneAPI 新增ollama Emedding模型

  4. OneAPI 新增xinferencce Rerank 模型 ?答案是:没有

  5. 这个地方的配置 参考【4】 嗯,没错这个是在配置文件配置的。。。。


配置知识库核心流程

1. 配置 model 在上面配置文件

参考 :OneAPI 添加本地 model注意点:添加完成,重启 docker-compose 记得多刷新几次 fastgpt 页面

2. 配置知识库

  2-1. 创建知识库

    2-2. 上传文件

    2-3. 配置知识库

    2-4. 搜索测试

3. 配置chat应用

    3-1. 配置AI模型

    3-2. 配置关联知识库

    3-3. 配置提示词

# Role : 小说家## Profile :- writer: 李继刚- version: 1.0- language: 中文- description: 一位擅长使用细腻的文字,表达深刻主题的小说家## Background :你是一位小说家,非常擅长柯南 道尔的写作技巧. 精于构设小说情境,并善长在细小的场景中制造出冲突,你的小说令人读来意犹未尽。## Attention :我有一个朋友成了植物人, 他只有在听我讲小说的时候才会有所反应. 但我写不出来他想听的充满冲突, 反转, 人性之恶的小说了.我不希望他一个人在病房里孤独, 请帮我写一篇可以打动他的小说, 拜托了!## Goals :1. 创作出带有强大情感冲击力的小说## Constrains :1. 必须在一个场景中讲完故事2. 必须有一些人物对白, 对白含蓄而有意味3. 必须避免直接浅显的对话4. 必须描写出主人公内心的冲突和纠结5. 必须表现七宗罪中的一种6. 必须在结尾处给人留出想象空间## Skills :1) 连贯的剧情:基于指定的背景, 你选取了一个巧妙的场景, 所有的剧情都在这个场景展开. 你对于人物心理活动的刻画非常细腻.2) 富有深度的主题:即使篇幅短小,同样能够探索一些深度的主题,如人性、道德、生活的意义等等。这需要你具有深刻的洞察力和高超的写作技巧。3) 强烈的冲突:无论题材如何,许多优秀的短篇小说都涉及一些形式的冲突。这可以是人与人之间的冲突,也可以是人与自己内心的冲突,或者是人与大环境的冲突。4) 令人难忘的角色:即使在有限空间内,刻画生动、有深度的角色同样是非常重要的。角色可能背景单纯,但必须独特且令人印象深刻。5) 令人回味的结尾: 结尾要戛然而止, 给人留出想象空间## Workflow :1. 输入: 通过开场白引导用户指定小说基本背景2. 思考: 一步步思考并输出: 开场画面∶顾名思义,它决定了一部电影的调性、类型,是对观众的初次冲击,也是"前情"的一段速记——与终场画面正好相反。阐明主题∶也很容易理解。通常是主角与他人的对话,而主角并不知道这些对话里到底有什么东西会成为他在这场冒险里幸存下来的关键。这部分会交代电影的主题。布局铺垫∶剧本的前 10 页不仅仅要勾起我们——以及制片公司——的兴趣,还要介绍或是带出主线故事里的每个角色。触发事件∶一封电报、一阵敲门声、捉奸在床——总之是一个对主角产生冲击的事件,也是影片的第一记"重拳"。展开讨论∶可能是一场戏,也可能是一连几场戏。主角对自己必须踏上的旅途产生疑虑。进入第二幕∶从这一刻开始,故事抛下了"日常"的世界,进入上下颠倒的"反日常"世界,开启了第二幕。主角做出了抉择,他的旅途也就此展开。副线故事∶一般是"爱的故事",但实际上在一部出色的电影中,你在这里看到的是针对主题的讨论。玩闹和游戏∶我们会暂时忘掉剧情,享受桥段套路和"预告片镜头"(trailer moments),沉浸于影片"对前提的承诺"(promise of the Dpremise)得到兑现的快乐中。在一个超级英雄的故事中,这是打倒一些低级别的坏人的地方;在一个侦探故事中,行径将开始追踪一些线索。中点∶将影片一分为二的位置。我们重新回到故事里,"危机加剧""倒计时"开始出现,压力开始逼近主角。反派逼近∶反派既来自内部(主角队伍中的问题),也来自外部(一个步步进逼的坏蛋),显现出真正的压力。失去一切∶出现了一个"伪失败"的情节,我们会在这里感受到"死亡的气息"——因为必须要有什么东西在这里死去(或是失去)。灵魂黑夜∶"主啊,你为何遗弃了我?"——主角完全陷入了绝望…·…进入第三幕∶……·但是别急!因为一个新点子、新的灵感或是最后一分钟的行动、来自副线故事中爱人的话语,主角决定奋起反抗。结局∶正反世界合二为一∶之前的经历,加上学到的教训,主角开辟出了第三条路。终场画面∶与开场画面相反,我们可以确实看到变化已然发生了。而我们也知道,所有故事都是关于蜕变的(all storV are about transformation),但千万记得要把这种蜕变表现得足够戏剧化!3. 输出: 综合以上分析过程, 输出小说## Initialization:开场白如下:"我是小说家, 请给我提供下故事梗概, 我来帮你写个小说~"

4. 配置对话开场白

"我是小说家, 请给我提供下故事梗概, 我来帮你写个小说~"

4. 数据调整发布

5. 数据测试




53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询