diff --git a/docs/user-guide/README.md b/docs/user-guide/README.md index c27a5c931dae3b9dadff09889d179045b6cab2f5..d9069ff66999797b03195f4d4f1f49ec15a5de93 100644 --- a/docs/user-guide/README.md +++ b/docs/user-guide/README.md @@ -17,17 +17,17 @@ openEuler Copilot System 智能问答平台目前支持 Web 和智能 Shell 两 ### 部署手册 -- [部署指南](./部署指南) +- [Web 端部署指南](./部署指南) - [网络环境下部署指南](./部署指南/网络环境下部署指南.md) - [无网络环境下部署指南](./部署指南/无网络环境下部署指南.md) - - [鉴权:启用 AuthHub](./部署指南/鉴权/AuthHub部署指南.md) -- [本地资产库构建指南](./部署指南/本地资产库构建指南.md) - [插件部署指南](./部署指南/插件) - [智能调优](./部署指南/插件/智能调优/插件—智能调优部署指南.md) - [智能诊断](./部署指南/插件/智能诊断/插件—智能诊断部署指南.md) - [AI容器栈](./部署指南/插件/AI容器栈/插件—AI容器栈部署指南.md) +- [本地资产库构建指南](./部署指南/本地资产库构建指南.md) + ### 使用手册 - [Web 端 (Gitee AI) 使用手册](./使用指南/线上服务/前言.md) diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/WEB\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/WEB\347\225\214\351\235\242.png" index 7bc6a98ea2959cbb2ff4289577cb9bc1bd0e40ca..bb9be4e33ce470865fe5a07decbc056b9ee4e9bb 100644 Binary files "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/WEB\347\225\214\351\235\242.png" and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/WEB\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/authhub\347\231\273\345\275\225\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/authhub\347\231\273\345\275\225\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..341828b1b6f728888d1dd52eec755033680155da Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/authhub\347\231\273\345\275\225\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/\345\210\233\345\273\272\345\272\224\347\224\250\346\210\220\345\212\237\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/\345\210\233\345\273\272\345\272\224\347\224\250\346\210\220\345\212\237\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..a871907f348317e43633cf05f5241cb978476fb4 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/\345\210\233\345\273\272\345\272\224\347\224\250\346\210\220\345\212\237\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/\345\210\233\345\273\272\345\272\224\347\224\250\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/\345\210\233\345\273\272\345\272\224\347\224\250\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..d82c736a94b106a30fd8d1f7b781f9e335bb441f Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/\345\210\233\345\273\272\345\272\224\347\224\250\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md" index ca506998a94d20c62ce8c05fe63a3d14237be94f..0613d4e50f586c2f52f1416c205410d1b9a00655 100644 --- "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md" +++ "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\347\275\221\347\273\234\347\216\257\345\242\203\344\270\213\351\203\250\347\275\262\346\214\207\345\215\227.md" @@ -44,6 +44,7 @@ openEuler Copilot System 是一款智能问答工具,使用 openEuler Copilot 1. 若无 GPU 或 NPU 资源,建议通过调用 OpenAI 接口的方式来实现功能。(接口样例: 参考链接:[API-KEY的获取与配置](https://help.aliyun.com/zh/dashscope/developer-reference/acquisition-and-configuration-of-api-key?spm=a2c4g.11186623.0.0.30e7694eaaxxGa)) 2. 调用第三方 OpenAI 接口的方式不需要安装高版本的 python (>=3.9.9) 3. 英伟达 GPU 对 Docker 的支持必需要新版本 Docker (>= v25.4.0) +4. 如果k8s集群环境,则不需要单独安装k3s,要求version >= 1.28 ### 部署视图 @@ -70,171 +71,185 @@ git clone https://gitee.com/openeuler/euler-copilot-framework.git ```bash # 进入部署脚本目录 -cd /home/euler-copilot-framework/euler-copilot-helm/scripts +cd /home/euler-copilot-framework/euler-copilot-helm/scripts && tree +``` +```bash +. +├── check_env.sh +├── download_file.sh +├── get_log.sh +├── install_tools.sh +└── prepare_docker.sh + ``` | 序号 | 步骤内容 | 相关指令 | 说明 | |-------------- |----------|---------------------------------------------|------------------------------------------ | |1| 环境检查 | `bash check_env.sh` | 主要对服务器的主机名、DNS、防火墙设置、磁盘剩余空间大小、网络、检查SELinux的设置 | -|2| 文件下载 | `bash download_file.sh` | 模型bge-reranker-large、bge-mixed-mode 和分词工具text2vec-base-chinese-paraphrase的下载 | +|2| 文件下载 | `bash download_file.sh` | 模型bge-reranker-large、bge-mixed-mode下载 | |3| 安装部署工具 | `bash install_tools.sh v1.30.2+k3s1 v3.15.3 cn` | 安装helm、k3s工具。注意:cn的使用是使用镜像站,可以去掉不用 | |4| 大模型准备 | 提供第三方 OpenAI 接口或基于硬件本都部署大模型 | 本地部署大模型可参考附录部分 | ## 安装 您的环境现已就绪,接下来即可启动 openEuler Copilot System 的安装流程。 - -### 1. 编辑配置文件 - ```bash # 下载目录以home为例,进入 openEuler Copilot System 仓库的Helm配置文件目录 -cd /home/euler-copilot-framework +cd /home/euler-copilot-framework && ll ``` - ```bash -ll -``` - -``` total 28 drwxr-xr-x 3 root root 4096 Aug 28 17:45 docs/ drwxr-xr-x 5 root root 4096 Aug 28 17:45 euler-copilot-helm/ ``` - ```bash -# 进入Helm配置文件目录 -cd euler-copilot-helm/chart +# 查看euler-copilot-helm的目录 +tree euler-copilot-helm ``` - ```bash -ll -``` - -``` -total 28 --rw-r--r-- 1 root root 135 Aug 28 17:45 Chart.yaml -drwxr-xr-x 10 root root 4096 Aug 28 17:55 templates/ --rw-r--r-- 1 root root 6572 Aug 30 12:05 values.yaml +euler-copilot-helm/chart +├── databases +│   ├── Chart.yaml +│   ├── configs +│   ├── templates +│   └── values.yaml +├── authhub +│   ├── Chart.yaml +│   ├── configs +│   ├── templates +│   └── values.yaml +└── euler_copilot + ├── Chart.yaml + ├── configs + ├── templates + │   ├── NOTES.txt + │   ├── rag + │   ├── vectorize + │   └── web + └── values.yaml +``` +### 1. 安装数据库 +- 编辑values.yaml +```bash +cd euler-copilot-helm/chart/databases ``` - -编辑 values.yaml 配置文件,请结合 YAML 中的注释部分进行修改 - ```bash +# 仅需修改镜像tag为对应架构,其余可不进行修改 vim values.yaml ``` - -注意事项: - -- 修改 domain 为服务器的实际 IP 地址。 -- 更新 OpenAI 的 URL、Key、Model 和 Max Token 为部署所需的值。 -- 根据实际部署情况,更新 vectorize、rag、framework 中的 BGE 模型路径、文档向量化和分词工具路径。 - -如需在内网环境中修改 Traefik 配置以转发端口,请继续下一步。 - +- 创建命名空间 ```bash -# 进入SSL配置目录,准备修改Traefik配置 -cd chart_ssl/ +kubectl create namespace euler-copilot ``` - ```bash -ll +# 设置环境变量 +export KUBECONFIG=/etc/rancher/k3s/k3s.yaml ``` - +- 安装数据库 +```bash +helm install -n euler-copilot databases . ``` -total 20 --rw-r--r-- 1 root root 250 Aug 28 17:45 traefik-config.yml --rw-r--r-- 1 root root 212 Aug 28 17:45 traefik-secret.yaml --rw-r--r-- 1 root root 175 Aug 28 17:45 traefik-tlsstore.yaml +- 查看pod状态 +```bash +kubectl -n euler-copilot get pods ``` - -修改 traefik-config.yml 以转发HTTPS端口(如果需要) - ```bash -vim traefik-config.yml +pgsql-deploy-databases-86b4dc4899-ppltc 1/1 Running 0 17d +redis-deploy-databases-f8866b56-kj9jz 1/1 Running 0 17d +mysql-deploy-databases-57f5f94ccf-sbhzp 2/2 Running 0 17d ``` - -修改部分示例: - +- 若服务器之前部署过mysql,则可预先清除下 pvc,再部署 databases。 +```bash +# 获取pvc +kubectl -n euler-copilot get pvc ``` -websecure: - exposedPort: 8080 # 将此处的端口号修改为期望转发的HTTPS端口 +```bash +# 删除pvc +kubectl -n euler-copilot delete pvc mysql-pvc ``` -应用修改后的 Traefik 配置 +### 2. 安装鉴权平台Authhub +- 编辑values.yaml ```bash -kubectl apply -f traefik-config.yml +cd euler-copilot-helm/chart/authhub ``` - -### 2. 安装 openEuler Copilot System - -创建 namespace - ```bash -cd /home/euler-copilot-framework/euler-copilot-helm/chart +# 请结合 YAML 中的注释中的[必填]项进行修改 +vim values.yaml +# 注意: +# - 1. authHub需要域名,可预先申请域名或在'C:\Windows\System32\drivers\etc\hosts'下配置。 +# authhub和euler-copilot必须是同一个根域名的两个子域名, 比如authhub.test.com和 +# eulercopilot.test.com +# - 2. 数据库的密码与databases的values.yaml一致 ``` - +- 安装Authhub ```bash -kubectl create namespace euler-copilot +helm install -n euler-copilot authhub . +# authhub默认账号administrator, 密码changeme ``` - -设置环境变量 - +- 查看pod状态 ```bash -export KUBECONFIG=/etc/rancher/k3s/k3s.yaml +kubectl -n euler-copilot get pods ``` - -安装 openEuler Copilot System - ```bash -helm install -n euler-copilot service . +NAME READY STATUS RESTARTS AGE +authhub-backend-deploy-authhub-64896f5cdc-m497f 2/2 Running 0 16d +authhub-web-deploy-authhub-7c48695966-h8d2p 1/1 Running 0 17d +pgsql-deploy-databases-86b4dc4899-ppltc 1/1 Running 0 17d +redis-deploy-databases-f8866b56-kj9jz 1/1 Running 0 17d +mysql-deploy-databases-57f5f94ccf-sbhzp 2/2 Running 0 17d ``` +- 登录 Authhub + + authhub的域名以 为例,authhub的登录界面如下图所示: -### 3. 查看 Pod 状态 + ![部署图](./pictures/authhub登录界面.png) -镜像拉取过程可能需要大约一分钟的时间,请耐心等待。 +- 创建应用eulercopilot -部署成功后,所有 Pod 的状态应显示为 Running。 - -```bash -kubectl -n euler-copilot get pods -``` - -``` -NAME READY STATUS RESTARTS AGE -framework-deploy-service-bb5b58678-jxzqr 2/2 Running 0 16d -mysql-deploy-service-c7857c7c9-wz9gn 1/1 Running 0 17d -pgsql-deploy-service-86b4dc4899-ppltc 1/1 Running 0 17d -rag-deploy-service-5b7887644c-sm58z 2/2 Running 0 110m -redis-deploy-service-f8866b56-kj9jz 1/1 Running 0 17d -vectorize-deploy-service-57f5f94ccf-sbhzp 2/2 Running 0 17d -web-deploy-service-74fbf7999f-r46rg 1/1 Running 0 2d -``` + ![部署图](./pictures/创建应用界面.png) + 点击创建应用,输入应用名称、应用主页和应用回调地址(登录后回调地址),参考如下: + - 应用名称:eulercopilot + - 应用主页:https://eulercopilot.test.com + - 应用回调地址:https://eulercopilot.test.com/api/auth/login + - 应用创建好后会生成 Client ID 和 Client Secret,将生成的 Client ID 和 Client Secret 配置到应用里,以 eulercopilot 为例,创建应用后在配置文件中添加配置 `euler-copilot-helm/chart/euler_copilot/values.yaml`中添加配置 + + ![部署图](./pictures/创建应用成功界面.png) -进入到 postgres 数据库,执行扩展命令 +### 2. 安装 openEuler Copilot System +- 编辑values.yaml ```bash -kubectl -n euler-copilot exec -it pgsql-deploy-service-86b4dc4899-ppltc -- bash +cd euler-copilot-helm/chart/euler_copilot ``` - ```bash -psql -U postgres -d postgres +# 请结合 YAML 中的注释中的[必填]项进行修改 +vim values.yaml ``` -``` -psql (16.2 (Debian 16.2-1.pgdg120+2)) -输入 "help" 来获取帮助信息. -postgres=# CREATE EXTENSION zhparser; -postgres=# CREATE EXTENSION vector; -postgres=# CREATE TEXT SEARCH CONFIGURATION zhparser (PARSER = zhparser); -postgres=# ALTER TEXT SEARCH CONFIGURATION zhparser ADD MAPPING FOR n,v,a,i,e,l WITH simple; -postgres=# exit +- 安装 openEuler Copilot System +```bash +helm install -n euler-copilot service . ``` -退出容器 +- 查看 Pod 状态 ```bash -exit +# 镜像拉取过程可能需要大约一分钟的时间,请耐心等待。部署成功后,所有 Pod 的状态应显示为 Running。 +kubectl -n euler-copilot get pods +``` +``` +NAME READY STATUS RESTARTS AGE +authhub-backend-deploy-authhub-64896f5cdc-m497f 2/2 Running 0 16d +authhub-web-deploy-authhub-7c48695966-h8d2p 1/1 Running 0 17d +pgsql-deploy-databases-86b4dc4899-ppltc 1/1 Running 0 17d +redis-deploy-databases-f8866b56-kj9jz 1/1 Running 0 17d +mysql-deploy-databases-57f5f94ccf-sbhzp 2/2 Running 0 17d +framework-deploy-service-bb5b58678-jxzqr 2/2 Running 0 16d +rag-deploy-service-5b7887644c-sm58z 2/2 Running 0 110m +vectorize-deploy-service-57f5f94ccf-sbhzp 2/2 Running 0 17d +web-deploy-service-74fbf7999f-r46rg 1/1 Running 0 2d ``` 注意:如果 Pod 状态出现失败,建议按照以下步骤进行排查 @@ -271,35 +286,14 @@ exit ## 验证安装 -访问 openEuler Copilot System 网页,请在浏览器中输入 https://$(host_ip):8080 (其中port默认值为8080,若更改则需相应调整)。 - -### 1. 创建登录账号密码 - -``` bash -# 首次登录触发mysql数据库生成user表 -# 1.生成加密后的账号密码 -root@openeuler:~# python3 -Python 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] on linux -Type "help", "copyright", "credits" or "license" for more information. ->>> import hashlib ->>> hashlib.sha256("[密码]".encode('utf-8')).hexdigest() -'f1db188c86b9f7cf154922a525891b807a6df8a44ad0fbace0cfe5840081a507' -# 保存生成加密后的密码 -# 2.插入账号密码到mysql数据库 -root@openeuler:~# kubectl -n euler-copilot exec -it mysql-deploy-service-c7857c7c9-wz9gn -- bash -bash-5.1# mysql -uroot -p8ZMTsY4@dgWZqoM6 -# 密码在euler-copilot-frameworkeuler-copilot-helm/chart/values.yaml的mysql章节查看 -mysql> use euler_copilot; -mysql> insert into user(user_sub, passwd) values ("[用户名]", "[加密后的密码]"); -mysql> exit; -``` - -### 2. 问答验证 - 恭喜您,openEuler Copilot System 的部署已完成!现在,您可以开启智能问答的非凡体验之旅了。 +请在浏览器中输入 https://$(host_ip):8080 或 https://域名(其中port默认值为8080,若更改则需相应调整)访问 openEuler Copilot System 网页,并尝试进行问答体验。 ![Web 界面](./pictures/WEB界面.png) +## 安装插件 +详细信息请参考文档 [插件部署指南](https://gitee.com/openeuler/euler-copilot-framework/tree/master/docs/user-guide/%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/%E6%8F%92%E4%BB%B6) + ## 构建专有领域智能问答 ### 1. 构建 openEuler 专业知识领域的智能问答 @@ -476,3 +470,28 @@ http_proxy="http://172.21.60.51:3128" https_proxy="http://172.21.60.51:3128" no_proxy=172.21.31.10 # 代理中剔除本机IP ``` +### 5. GPU环境部署大模型时出现无法流式回复? +在服务执行curl大模型失败,将 "stream": true,改为 "stream": false, 可以curl通 +```bash + curl http://localhost:30000/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer sk-123456" -d '{ + "model": "qwen1.5", + "messages": [ + { + "role": "system", + "content": "你是情感分析专家,你的任务是xxxx" + }, + { + "role": "user", + "content": "你好" + } + ], + "stream": true, + "n": 1, + "max_tokens": 32768 + }' +``` + +- 解决办法: +```bash +pip install Pydantic=1.10.13 +``` \ No newline at end of file diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\351\211\264\346\235\203/AuthHub\351\203\250\347\275\262\346\214\207\345\215\227.md" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\351\211\264\346\235\203/AuthHub\351\203\250\347\275\262\346\214\207\345\215\227.md" deleted file mode 100644 index 2cd8e0d92110099db93bbdffa20c072c7255c8b6..0000000000000000000000000000000000000000 --- "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\351\211\264\346\235\203/AuthHub\351\203\250\347\275\262\346\214\207\345\215\227.md" +++ /dev/null @@ -1,15 +0,0 @@ -# AuthHub 部署指南 - -## 准备工作 - -+ 将 values.yaml 中的 `authHub-web`、`authHub` 的 `enable` 字段改为 `True` - -```yaml -enable: True -``` - -+ 更新环境 - -```bash -helm upgrade euler-copilot . -``` diff --git a/euler-copilot-helm/chart/euler_copilot/values.yaml b/euler-copilot-helm/chart/euler_copilot/values.yaml index a99e0333a9b07b55d019159056d3ecc4be85cce4..127f81c7ea7da0cf3ef9dee4f925929e5294bd98 100644 --- a/euler-copilot-helm/chart/euler_copilot/values.yaml +++ b/euler-copilot-helm/chart/euler_copilot/values.yaml @@ -76,7 +76,7 @@ euler_copilot: # Volume设置 volume: # [必填] Embedding模型的位置 - models: /home/euler-copilot/models + models: /home/EulerCopilot/models # Service设置 service: # [必填] Service类型,ClusterIP或NodePort @@ -116,8 +116,8 @@ euler_copilot: nodePortDagster: # [必填] RAG知识库名 knowledgebaseID: default_test - # [必填] 待向量化的文档位置 - docs_dir: "/home/euler-copilot/docs" + # [必填] 待向量化的文档位置,需要手动创建目录 + docs_dir: "/home/EulerCopilot/docs" # 向量化服务设置 vectorize: # [必填] 是否使用集群内的Vectorize?