|
| 1 | +# 大模型数据助手 |
| 2 | + |
| 3 | +🌟 **项目简介** |
| 4 | + |
| 5 | +一个轻量级、支持全链路且易于二次开发的大模型应用项目 |
| 6 | + |
| 7 | +**已适配DeepSeek/Qwen2.5等大模型** |
| 8 | + |
| 9 | +基于 Dify 、Ollama&Vllm、Sanic 和 Text2SQL 📊 等技术构建的一站式大模型应用开发项目,采用 Vue3、TypeScript 和 Vite 5 打造现代UI。它支持通过 ECharts 📈 实现基于大模型的数据图形化问答,具备处理 CSV 文件 📂 表格问答的能力。同时,能方便对接第三方开源 RAG 系统 检索系统 🌐等,以支持广泛的通用知识问答。 |
| 10 | + |
| 11 | +作为轻量级的大模型应用开发项目,Sanic-Web 🛠️ 支持快速迭代与扩展,助力大模型项目快速落地。🚀 |
| 12 | + |
| 13 | +## 架构方案 |
| 14 | + |
| 15 | + |
| 16 | +## 🎉 **特性** |
| 17 | +- **核心技术栈**:Dify + Ollama + RAG + (Qwen2.5/DeepSeek) + Text2SQL |
| 18 | +- **UI 框架**:Vue 3 + TypeScript + Vite 5 |
| 19 | +- **数据问答**:集成 ECharts大模型实现Text2SQL轻量级的图形化数据问答展示 |
| 20 | +- **表格问答**:支持 CSV格式文件的上传与基于大模型总结预处理和Text2SQL的表格数据问答 |
| 21 | +- **通用问答**:支持通用数据形式问答基于对接三方RAG系统+公网检索模式 |
| 22 | +- **应用架构**:作为一个轻量级全链路一站式大模型应用开发框架方便扩展落地 |
| 23 | +- **灵活部署**:支持大模型应用开发各依赖组件docker-compose一键拉起快速部署零配置 |
| 24 | + |
| 25 | +## 运行效果 |
| 26 | + |
| 27 | + |
| 28 | + |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | +## 💡环境配置要求 |
| 33 | + |
| 34 | +在开始之前,请确保您的开发环境满足以下最低配置要求: |
| 35 | + |
| 36 | +- **操作系统**:Windows 10/11, macOs M系列, Centos/Ubuntu |
| 37 | +- **GPU**: 本地使用ollama部署,推荐使用Nvidia显卡或CPU模式。或公网购买APIKEY形式 |
| 38 | +- **内存**:8GB+ |
| 39 | + |
| 40 | +## 🔧 **前置条件** |
| 41 | +* Python 3.8+ |
| 42 | +* Poetry 1.8.3+ |
| 43 | +* Dify 0.7.1+ |
| 44 | +* Mysql 8.0+ |
| 45 | +* Node.js 18.12.x+ |
| 46 | +* Pnpm 9.x |
| 47 | + |
| 48 | + |
| 49 | +## 📚 **大模型部署** |
| 50 | +- [参考Ollama部署](https://qwen.readthedocs.io/zh-cn/latest/run_locally/ollama.html) |
| 51 | +- 模型: Qwen2.5 7B 模型 |
| 52 | +- 模型: DeepSeek R1 7B 模型 |
| 53 | +- [阿里云公网APIKEY形式](http://aliyun.com/product/bailian) |
| 54 | + |
| 55 | +## ⚙️ **Dify环境配置** |
| 56 | +1. **安装Dify** |
| 57 | + - [官方参考文档](https://docs.dify.ai/zh-hans) |
| 58 | + - 为了兼顾第一次接触大模型应用的同学,本项目提供了一键拉起Dify服务方便大家快速体验。 |
| 59 | + - Dify本机访问地址:http://localhost:18000 账号/密码: 需自己注册 |
| 60 | + ```bash |
| 61 | + # 拉起内置的dify服务 |
| 62 | + cd docker/dify/docker |
| 63 | + docker-compose up -d |
| 64 | + |
| 65 | +2. **Dify配置** |
| 66 | + - 添加Dify大模型提供商Ollama,配置Qwen2.5模型和DeepSeek R1模型 |
| 67 | + - 导入项目根目录下的**docker/dify/数据问答_v1.1.2_deepseek.yml画布** |
| 68 | + - 获取画布对应的api-key先复制出来下面步骤会使用 |
| 69 | + - 导入画布后需要手动选择一下你本地配置的大模型并保存 |
| 70 | + |
| 71 | + |
| 72 | + |
| 73 | + |
| 74 | + |
| 75 | + |
| 76 | +## 🚀 **快速体验** |
| 77 | + - 具体步骤如下: |
| 78 | + - 第一步克隆代码到本地 |
| 79 | + - 第二步参考上面**大模型部署**先安装Ollama部署Qwen2.5模型和DeepSeek R1模型 |
| 80 | + - 第三步Dify环境配置直接参考上面**Dify环境配置** **这步很重要!!!!** |
| 81 | + - 第四步启动服务具体步骤如下: |
| 82 | + |
| 83 | +1. **克隆仓库** |
| 84 | + ```bash |
| 85 | + git clone https://github.com/apconw/sanic-web.git |
| 86 | +
|
| 87 | +2. **启动服务** |
| 88 | + - 修改docker-compose里的chat-service服务DIFY_开头的环境变量 |
| 89 | + - 修改**DIFY_DATABASE_QA_API_KEY** 获取Dify画布的api-key |
| 90 | +
|
| 91 | + ```bash |
| 92 | + # 拉起前后端服务和中间件 |
| 93 | + cd docker |
| 94 | + docker compose up -d |
| 95 | + |
| 96 | +3. **Minio配置** |
| 97 | + - 访问MinIO服务,http://localhost:19001/ 账号:admin 密码:12345678 |
| 98 | + - 创建一个bucket,名称filedata,同时配置Access Key |
| 99 | + - 修改docker-compose里的chat-service服务的MINIO_开头的环境变量重启服务 |
| 100 | + |
| 101 | + ```bash |
| 102 | + # 重新拉起前后端服务和中间件 |
| 103 | + cd docker |
| 104 | + docker compose up -d |
| 105 | +
|
| 106 | +4. **数据初始化** |
| 107 | + ```bash |
| 108 | + |
| 109 | + # 安装依赖包 |
| 110 | + pip install pymysql |
| 111 | + |
| 112 | + # Mac or Linux 用户执行 |
| 113 | + |
| 114 | + cd docker |
| 115 | + ./init.sh |
| 116 | + |
| 117 | + # Windows 用户执行 |
| 118 | + |
| 119 | + cd common |
| 120 | + python initialize_mysql.py |
| 121 | + |
| 122 | + |
| 123 | + |
| 124 | +5. **访问服务** |
| 125 | + - 前端服务:http://localhost:8081 |
| 126 | + |
| 127 | + |
| 128 | +## 🛠️ **本地开发** |
| 129 | +- 第一步克隆代码到本地 |
| 130 | +- 第二步参考上面**大模型部署**先安装Ollama部署Qwen2.5模型和DeepSeek R1模型 |
| 131 | +- 第三步本地开发环境Dify配置,参考上面 **Dify环境配置里 获取Dify画布的api-key 同时修改.env.dev文件里面的DIFY_DATABASE_QA_API_KEY** |
| 132 | +- 第四步本地开发环境Minio配置,修改env.dev文件里面的Minio相关密钥信息 |
| 133 | +- 第五步安装前后端项目依赖并启动前后端服务具体步骤如下: |
| 134 | + |
| 135 | +1. **后端依赖安装** |
| 136 | + - poetry安装 [参考poetry官方文档](https://python-poetry.org/docs/) |
| 137 | + ```bash |
| 138 | + # 安装poetry |
| 139 | + pip install poetry |
| 140 | + |
| 141 | + # 安装依赖根目录执行 |
| 142 | + # 设置国内仓库 |
| 143 | + poetry source add --priority=primary mirrors https://pypi.tuna.tsinghua.edu.cn/simple/ |
| 144 | + poetry install --no-root |
| 145 | +
|
| 146 | +2. **安装中间件** |
| 147 | + ```bash |
| 148 | + cd docker |
| 149 | + docker compose up -d mysql minio |
| 150 | + |
| 151 | +3. **Minio配置** |
| 152 | + - 访问MinIO服务,http://localhost:19001/ 账号:admin 密码:12345678 |
| 153 | + - 创建一个bucket,名称filedata,同时配置Access Key |
| 154 | + - 修改.evn.dev里的MINIO_开头的密钥消息 |
| 155 | + |
| 156 | +4. **初始化数据库** |
| 157 | + - 如果使用本地环境mysql,初始化数据时需修改源码initialize_mysql,修改数据库连接信息即可 |
| 158 | + ```bash |
| 159 | + # Mac or Linux 用户执行 |
| 160 | + cd docker |
| 161 | + ./init.sh |
| 162 | + |
| 163 | + # Windows 用户执行 |
| 164 | + |
| 165 | + cd common |
| 166 | + python initialize_mysql.py |
| 167 | +
|
| 168 | +5. **前端依赖安装** |
| 169 | + - 前端是基于开源项目[可参考chatgpt-vue3-light-mvp安装](https://github.com/pdsuwwz/chatgpt-vue3-light-mvp)二开 |
| 170 | + ```bash |
| 171 | + # 安装前端依赖&启动服务 |
| 172 | + cd web |
| 173 | + |
| 174 | + #安装依赖 |
| 175 | + npm install -g pnpm |
| 176 | + |
| 177 | + pnpm i |
| 178 | + |
| 179 | + #启动服务 |
| 180 | + pnpm dev |
| 181 | + |
| 182 | +6. **启动后端服务** |
| 183 | + ```bash |
| 184 | + #启动后端服务 |
| 185 | + python serv.py |
| 186 | + ``` |
| 187 | + |
| 188 | +7. **访问服务** |
| 189 | + - 前端服务:http://localhost:2048 |
| 190 | + |
| 191 | +## 🐳 构建镜像 |
| 192 | + |
| 193 | +- 执行构建命令: |
| 194 | + ```bash |
| 195 | + # 构建前端镜像 |
| 196 | + make web-build |
| 197 | + |
| 198 | + # 构建后端镜像 |
| 199 | + make server-build |
| 200 | +
|
| 201 | +
|
| 202 | +## 🌹 支持 |
| 203 | +
|
| 204 | +如果你喜欢这个项目或发现有用,可以点右上角 [`Star`](https://github.com/apconw/sanic-web) 支持一下,你的支持是我们不断改进的动力,感谢! ^_^ |
| 205 | +
|
| 206 | +## ⭐ Star History |
| 207 | + [](https://star-history.com/#apconw/sanic-web&Date) |
| 208 | +
|
| 209 | +## 🐳 关于技术支持申明 |
| 210 | +- **开源不易,本人精力和时间有限,如需一对一技术支持可以赞助一波^_^联系微信(备注 技术支持)** |
| 211 | +- **一对一技术支持 我将亲自远程帮您配置开发环境部署和启动、并讲解项目架构以及二开思路等** |
| 212 | +- **长期技术支持方式 拉你加入群(一线算法、架构大佬群),为你提供技术指导,项目解决方案等** |
| 213 | +
|
| 214 | +## QA交流群 |
| 215 | +- 大模型应用交流群欢迎大家, 欢迎加进群讨论分享经验 |
| 216 | +- 关注下面的公众号点击·**微信群**菜单添加微信拉你入群 |
| 217 | +
|
| 218 | +| 微信群 | |
| 219 | +|:-----------------------------------:| |
| 220 | +|  | |
| 221 | +
|
| 222 | +## License |
| 223 | +
|
| 224 | +[MIT](./LICENSE) License | Copyright © 2024-PRESENT [AiAdventurer](https://github.com/apconw) |
0 commit comments