Dify+ollama+vanna 实现text2sql 智能数据分析 -01

新鲜出炉-今天安装vanna踩过的坑

今天的任务是安装vanna这个工具,因为dify中自己写的查询向量数据库和执行sql这两步太慢了大概要20S,所以想用下这个工具,看是否会快一点。后面会把这个vanna封装成一个工具让dify调用。

环境说明

我是在本地windows电脑安装的这几个软件,安装前需要一些基础环境,例如docker+python

以下以我正常安装的顺序把遇到的问题和解决方法写一下

1.vanna是基于pyhon安装的所以要先安装python环境和pycharm

2.然后再pycharm里面执行pip install ‘vanna[chromadb,ollama,mysql]’
记得更新pip install : python -m pip install --upgrade pip setuptools
这个时候会报错,因为没有安装c++ 环境,
所以要先点击vs_build工具,在安装程序里,勾选 “使用 C++ 的桌面开发” 工作负载。
检查环境变量:where cl.exe
重新安装:pip install vanna[chromadb,mysql,ollama] (不用重启电脑)

3.运行python代码时需要保证ollama时启动状态的
ollama serve 启动ollama
ollama run qwen2.5:3b 运行一个模型
http://192.168.5.55:11434/ 浏览器访问看ollama是否正常,ip地址使用ipconfig查看

4.python程序会报错,可能是anna、chromadb 或 ollama没有正确的安装到环境里面
需要:1。右键点击 PowerShell → 以管理员身份运行:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
2.重新创建并激活虚拟环境:python -m venv .venv
.venv\Scripts\activate
3.升级pip : python.exe -m pip install --upgrade pip
4.重新安装:pip install vanna[chromadb,ollama]
5.验证安装结果:pip list | Where-Object { $.StartsWith(“vanna”) -or $.StartsWith(“chroma”) -or $_.StartsWith(“ollama”) }
预期输出应包含:
plaintext
vanna 0.7.6
chroma-hnswlib 0.7.6
chromadb 0.6.3
ollama 0.4.7
8.python -c “from vanna.ollama.ollama import Ollama; print(Ollama)”
如果成功,输出应为:
plaintext
<class ‘vanna.ollama.ollama.Ollama’>
9. Python 3.8 或更高版本 python --version
10.ok回到pychram界面,发现还是报错,怎么办?
11.可能是因为安装vanna路径不能被识别到,所以类似需要添加到环境变量里面:
1.点击顶部菜单栏的 File → Settings。展开 Project: vanna → 选择 Python Interpreter。点击右上角的齿轮图标 → 选择 Add Interpreter。在弹出的窗口中,选择 Existing environment → System Interpreter。点击右侧的文件夹图标(浏览)→ 导航到以下路径:C:\Users\xxx\PycharmProjects\vanna.venv\Scripts\python.exe点击 OK 确认。
12.添加了发现并没有刷新怎么办?退掉重新进
13.重新进来还是没有怎么办?File → Invalidate Caches/Restart。勾选 Invalidate and Restart → 点击 Invalidate。
14.好了,结束。
15.还是没有怎么办:C:\Users\xxx\PycharmProjects\vanna.venv\Lib\site-packages 检查这个下面有没有安装的vanna[chromadb,mysql,ollama]如果没有,则重新安装。
16。再pycharm小窗口界面执行python -m venv new_venv
# 激活新环境(在PyCharm终端)
new_venv\Scripts\activate
pip install vanna[chromadb,ollama]
17.再回到解释器的界面看是否成功【9次才成功,麻了】

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/825322af72b441caa2dbcec90f657f0c.png

然后开始运行

先在pycharm里面写这段代码,连接你的本地模型和数据库
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d15090378aff40a1bddea5ff583d9187.png![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/970aba7d6c17460c84e9e7ba9542e878.png

这里也有个坑,为啥我的run里面写了参数,是因为她好像默认没有监听所有端口,所以要指定一下,还有端口也是,如果被占用了就得换一个。

搞定
在这里插入图片描述

顺便分享以下前两天在安装使用dify和ollama时候遇到的问题

1.如果第一次安装docker需要切换里面默认的镜像源地址
在这里插入图片描述

2.ollama启动之后再dify中就是添加不成功,原因也是监听不到的问题
解决办法:在 PowerShell 中运行以下命令来设置 OLLAMA_HOST 环境变量,将监听地址指定为 0.0.0.0:11434。
• 然后再docker里面访问这个地址,如果可以访问呢成功则添加即可
• curl http://192.168.5.55:11434 ipconfig查看ip地址
• $env:OLLAMA_HOST = “0.0.0.0:11434”
• ollama serve
• [System.Environment]::SetEnvironmentVariable(“OLLAMA_HOST”, “0.0.0.0:11434”, [System.EnvironmentVariableTarget]::User)

3.再dify中使用可视化的时候,第一次一直再预览界面出不来图表,展示的一直是字符,但是产品是支持echarts的,就弄了好久。最后发现先把任务发布,然后再预览界面去访问就好了,可能是个bug。

04-02
### Plop.js 使用指南 Plop.js 是一款用于自动化代码生成的工具,旨在帮助开发者减少重复性的编码工作并提高效率。它允许用户通过自定义模板来生成常见的代码结构。 #### 安装 Plop.js 要将 Plop 添加为项目的开发依赖项,可以运行以下命令[^4]: ```bash npm install --save-dev plop ``` 安装完成后,在项目根目录下初始化 Plop 配置文件: ```bash npx plop init ``` 这将在当前目录中生成一个名为 `plopfile.js` 的默认配置文件。 --- #### 创建 Plopfile (生成器配置文件) Plopfile 是 Plop.js 的核心部分,其中包含了所有的生成器逻辑。以下是创建和维护 Plopfile 的一些注意事项: 1. **位置**: 确保 `plopfile.js` 文件位于项目的根目录下。 2. **模块类型**: 如果使用的是 ESM(ECMAScript Module),需要在 `package.json` 中添加 `"type": "module"` 或者将文件命名为 `.mjs` 扩展名[^1]。 下面是一个简单的 Plopfile 示例,展示了如何定义一个基础生成器: ```javascript // plopfile.js export default function(plop) { plop.setGenerator('component', { // 设置生成器名称 description: '创建一个新的 React 组件', prompts: [ { type: 'input', name: 'name', message: '请输入组件名称:', }, ], actions: [ { type: 'add', // 动作类型:添加文件 path: 'src/components/{{pascalCase name}}.jsx', // 输出路径 templateFile: 'templates/component-template.jsx', // 模板文件路径 }, ], }); } ``` 上述代码会根据用户的输入动态生成新的 React 组件文件,并将其保存到指定的位置。 --- #### 运行生成器 完成配置后,可以通过以下命令调用生成器: ```bash npx plop component ``` 此命令会触发之前定义的 `component` 生成器,提示用户提供必要的参数(如组件名称)。随后,基于这些参数生成目标文件。 如果需要加载特定路径中的 Plopfile,则可显式指定其位置[^5]: ```bash npx plop --plopfile ./custom-plopfile.js ``` --- #### 常见问题及解决方法 新手可能在创建或编写 Plopfile 时遇到语法错误。为了避免此类问题,请注意以下几点: - 确认 Plopfile 存在于正确的目录中。 - 对于 ES Modules 支持,记得更新 `package.json` 或调整文件扩展名。 - 输入不当时可能导致生成失败;建议仔细阅读生成器描述以及交互提示信息。 --- ### 工具对比与其他资源推荐 除了 Plop.js 外,还有其他类似的工具可以帮助提升研发效能。例如: - **Generate** 提供了一种简单的方式来构建脚手架应用[^3]。 - 测试框架方面可以选择 AVA、Cypress 和 Puppeteer 来增强质量保障能力[^2]。 尽管如此,每款工具有各自的适用场景,因此应依据实际需求做出最佳选择。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值