知识库平台设计(知识库框架设计)万万没想到
1,视频地址「链接」2,整体架构和技术方案项目名称 llm-knowledge-system 大模型知识库系统 项目代码在,逐步开发设计中。ll
1,视频地址「链接」2,整体架构和技术方案项目名称 llm-knowledge-system 大模型知识库系统 项目代码在,逐步开发设计中llm-knowledge-system: 大模型知识库系统
开发语言使用golang进行开发 框架使用goframe主要是考虑到高并发,和快速部署3,goframe框架官方:https://goframe.org/display/gf 代码: https://gitee.com/johng/gf。
GoFrame是一款模块化、高性能、企业级的Go基础开发框架GoFrame是一款通用性的基础开发框架,是Golang标准库的一个增强扩展级,包含通用核心的基础开发组件,优点是实战化、模块化、文档全面、模块丰富、易用性高、通用性强、面向团队。
GoFrame即可用于开发完整的工程化项目,由于框架基础采用模块化解耦设计,因此也可以作为工具库使用如果您想使用Golang开发一个业务型项目,无论是小型还是中大型项目,GoFrame是您的不二之选如果您想开发一个Golang组件库,GoFrame提供开箱即用、丰富强大的基础组件库也能助您的工作事半功倍。
如果您是团队Leader,GoFrame丰富的资料文档、详尽的代码注释、活跃的社区成员将会极大降低您的指导成本,支持团队快速接入、语言转型与能力提升4,搜索库 MeiliSearchMeiliSearch 基于 Rust 语言开发的开源搜索引擎
https://www.meilisearch.com/5,向量数据库 milvushttps://milvus.io/一款开源向量数据库,赋能 AI 应用和向量相似度搜索 Field:类似表字段,可以是结构化数据,当然还可以是向量; Entity:一组Field,类似表的一条数据; Collection:一组Entity,类似于表;。
Milvus不单单是向量检索工具,而是向量数据库,能对不同业务的向量隔离,分开存储; 提供可视化管理工具; 支持带过滤条件的向量混合检索6,关于fastchat部署 ChatGLM3和 BGE的embedding。
之前的项目已经调研清楚了:【ChatGLM3】(5):使用 fastchat 部署ChatGLM3服务,启动8bit的worker,可以运行openai_api服务和web界面方便进行测试还支持embeddings 接口!。
https://blog.csdn.net/freewebsys/article/details/134484318?spm=1001.2014.3001.5501fastchat其实可以分开部署,分为 CPU 版本和 GPU 版本。
这样在生产环境更灵活 其中workder可以支持多机器部署:bash# 构建 cpu 版本 FROM python:slim-bullseye # 设置python3的镜像源 RUN mkdir
/root/.pip/ && echo "[global]" > /root/.pip/pip.conf && \ echo "index-url = https://mirrors.aliyun.com/pypi/simple/"
>> /root/.pip/pip.conf && \ echo "[install]" >> /root/.pip/pip.conf && \ echo "trusted-host=mirrors.aliyun.com"
>> /root/.pip/pip.conf # 先安装 RUN pip3 install "fschat[controller]"GPU的镜像主要跑模型:bash## 参考文章:https://blog.csdn.net/freewebsys/article/details/134567530
FROM pytorch/pytorch:2.1.0-cuda12.1-cudnn8-devel # 设置debian的镜像源 && # 设置python3的镜像源 RUN echo"deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse"
> /etc/apt/sources.list && \ echo"deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse"
>> /etc/apt/sources.list && \ echo"deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse"
>> /etc/apt/sources.list && \ echo"deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse"
>> /etc/apt/sources.list && \ pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple && \
pip3 config set install.trusted-host mirrors.aliyun.com # 先安装 xformers 再安装 fastchat, 就不会安装 pytroch 了,会使用 xformers 依赖的版本了。
# apt update && apt install -y net-tools vim RUN pip3 install transformers accelerate sentencepiece \ && pip3 install
"fschat[model_worker,webui]"7,整个的docker-compose组件整个的docker-compose文件: 包括: mysql,seilisearch,milvus,fastchat的ChatGLM3,BGE-zh
yamlversion: 3.5 services:################## mysql 数据库 5.7 版本 ##################mysql:restart:always
image:mysql:5.7container_name:mysqlports:-"3306:3306"volumes:-"./data/mysql:/var/lib/mysql"# - "./conf/mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf"
environment:MYSQL_ROOT_PASSWORD:mysqladminMYSQL_DATABASE:llm_knowledgeTZ:Asia/Shanghaicommand:[--character-set-server=utf8mb4
,--collation-server=utf8mb4_general_ci,--max_connections=3000]################## meilisearch 1.5 搜索服务 ##################
meilisearch:restart:alwaysimage:getmeili/meilisearch:v1.5container_name:meilisearchports:-"7700:7700"
volumes:-"./data/meilisearch:/meili_data"environment:MEILI_ENV:productionMEILI_MASTER_KEY:admin_1234567890
##################### 向量数据库配置 #####################etcd:restart:alwayscontainer_name:milvus-etcdimage:
quay.io/coreos/etcd:v3.5.5environment:-ETCD_AUTO_COMPACTION_MODE=revision-ETCD_AUTO_COMPACTION_RETENTION=1000
-ETCD_QUOTA_BACKEND_BYTES=4294967296-ETCD_SNAPSHOT_COUNT=50000volumes:-./data/milvus/etcd:/etcdcommand:
etcd-advertise-client-urls=http://127.0.0.1:2379-listen-client-urlshttp://0.0.0.0:2379--data-dir/etcd
healthcheck:test:["CMD","etcdctl","endpoint","health"]interval:30stimeout:20sretries:3minio:restart:always
container_name:milvus-minioimage:minio/minio:RELEASE.2023-03-20T20-16-18Zenvironment:MINIO_ACCESS_KEY:
minioadminMINIO_SECRET_KEY:minioadminports:-"9001:9001"-"9000:9000"volumes:-./data/milvus/minio:/minio_data
command:minioserver/minio_data--console-address":9001"healthcheck:test:["CMD","curl","-f","http://localhost:9000/minio/health/live"
]interval:30stimeout:20sretries:3milvus-standalone:restart:alwayscontainer_name:milvus-standaloneimage:
milvusdb/milvus:v2.3.3command:["milvus","run","standalone"]security_opt:-seccomp:unconfinedenvironment:
ETCD_ENDPOINTS:etcd:2379MINIO_ADDRESS:minio:9000volumes:-./data/milvus/milvus:/var/lib/milvushealthcheck:
test:["CMD","curl","-f","http://localhost:9091/healthz"]interval:30sstart_period:90stimeout:20sretries:
3ports:-"19530:19530"-"9091:9091"depends_on:-"etcd"-"minio"##################### 使用fastchat部署大模型 #####################
fastchat-controller:restart:alwayscontainer_name:fastchat-controllerimage:fastchat-cpu:v1.0build:context:
.dockerfile:docker/fastchat/DockerfileCpu# 获取当前ip地址command:python3-mfastchat.serve.controller--host0.0
.0.0--port21001fastchat-api:restart:alwayscontainer_name:fastchat-apiimage:fastchat-cpu:v1.0build:context:
.dockerfile:docker/fastchat/DockerfileCpu# 获取当前ip地址 执行模型ports:-"8000:8000"command:bash-c"python3 -m fastchat.serve.openai_api_server --controller-address http://fastchat-controller:21001 \ --host 0.0.0.0 --port 8000 "。
depends_on:-"fastchat-controller"fastchat-worker-chatglm3:restart:alwayscontainer_name:fastchat-worker-chatglm3
image:fastchat-gpu:v1.0volumes:-./models/chatglm3-6b:/data/models/chatglm3-6bbuild:context:.dockerfile:
docker/fastchat/DockerfileGpu# 是以 GPU 资源deploy:resources:reservations:devices:-driver:"nvidia"count:"all"
capabilities:["gpu"]# 获取当前ip地址 执行模型command:bash-c"python3 -m fastchat.serve.model_worker --load-8bit --model-names chatglm3-6b \ --model-path /data/models/chatglm3-6b --controller-address http://fastchat-controller:21001 \ --worker-address http://fastchat-worker-chatglm3:8001 --host 0.0.0.0 --port 8001 "。
depends_on:-"fastchat-controller"fastchat-worker-bge-large-zh:restart:alwayscontainer_name:fastchat-worker-bge-large-zh
image:fastchat-gpu:v1.0volumes:-./models/bge-large-zh:/data/models/bge-large-zhbuild:context:.dockerfile:
docker/fastchat/DockerfileGpu# 是以 GPU 资源deploy:resources:reservations:devices:-driver:"nvidia"count:"all"
capabilities:["gpu"]# 获取当前ip地址 执行模型command:bash-c"python3 -m fastchat.serve.model_worker --model-names bge-large-zh \ --model-path /data/models/bge-large-zh --controller-address http://fastchat-controller:21001 \ --worker-address http://fastchat-worker-bge-large-zh:8001 --host 0.0.0.0 --port 8001 "。
depends_on:-"fastchat-controller"networks:default:name:knowledge-network8,总结整个的docker-compose文件:项目介绍端口
mysql数据库3306meilisearch搜索库7700milvus向量数据库19530fastchat模型框架,部署chatglm3,BGE-zh8000使用goframe可以快速创建项目 然后就可以进行开发了。
在项目的docker-compose 目录下可以直接将各种中间件服务都启动 配置都在各自中间件的目录下面数据都存储在data目录下面
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186