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次才成功,麻了】

然后开始运行
先在pycharm里面写这段代码,连接你的本地模型和数据库

这里也有个坑,为啥我的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。
相关文章:
Dify+ollama+vanna 实现text2sql 智能数据分析 -01
新鲜出炉-今天安装vanna踩过的坑 今天的任务是安装vanna这个工具,因为dify中自己写的查询向量数据库和执行sql这两步太慢了大概要20S,所以想用下这个工具,看是否会快一点。后面会把这个vanna封装成一个工具让dify调用。 环境说明 我是在本…...
【Python实用技巧】OS模块详解:文件与目录操作的瑞士军刀
大家好,我是唐叔!今天咱们来聊聊Python中那个被低估的"老黄牛"——os模块。这个模块看似简单,但却是每个Python开发者都绕不开的利器。就像我常说的:“不会用os模块的Python程序员,就像不会用筷子的美食家”…...
动态内存分配与内存对齐
在C语言及其他低级编程语言中,内存管理是一个至关重要的主题。动态内存分配和内存对齐是确保程序高效和稳定运行的关键因素。本文将深入探讨动态内存分配的原理,内存对齐的概念,并解释它们如何共同影响程序的性能和资源利用。 一、动态内存分配简介 1.1 动态内存分配的概念…...
C 标准库 – 头文件
1️⃣ <fenv.h> 简介 <fenv.h> 提供了用于控制和检查浮点运算行为的宏和函数。它为浮点环境提供了精细的控制,允许设置舍入模式、捕获浮点异常等。通过 <fenv.h>,程序员可以: 控制浮点舍入模式,指定不同的舍入…...
Redis的基础,经典,高级问题解答篇
目录 一,基础 二,经典 缓存雪崩: 1. Redis事务的原子性 2. 与MySQL事务的区别 1. 主从复制原理 2. 哨兵模式故障转移流程 3. 客户端感知故障转移 三,高级 一,基础 Redis的5种基础数据类型及使用场景…...
uniapp uni-swipe-action滑动内容排版改造
在uniapp开发中 默认的uni-swipe-action滑动组件 按钮里的文字都是横排的 不能换行的 如果是在一些小屏设备 比如PDA这种,同时按钮文字又都是4个字 多按钮的情况 就会发现滑动一下都直接满屏了 观看体验都不好 但默认的官方组件又没有样式的设置,下面就告…...
电脑卡怎么办?提升电脑流畅的方法
电脑已经成为我们工作、学习和娱乐不可或缺的伙伴。然而,随着使用时间的增长,许多用户会遇到电脑运行变慢、卡顿的情况,这不仅影响了工作效率,也大大降低了使用体验。本文将为大家分析电脑卡顿的常见原因,并提供一套实…...
SpringBoot报错解决方案
org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException: the request was rejected because its size (31297934) exceeds the configured maximum (10485760) 文件上传大小超过限制...
知识表示方法之二:产生式表示法(Production System)
有关知识表示方法之一:一阶谓词逻辑的内容可以看我的文章:https://blog.csdn.net/lzm12278828/article/details/146541478 一、定义 “产生式”这一术语是有美国数学家博斯特(E.Post)在1943年首先提出来的,他根据串替代规则提出了一种称为波斯特机的计算模型,模型中的每…...
SQL Server中账号权限
目录标题 查看现有权限授予权限拒绝权限撤销权限角色管理 在SQL Server中管理账号权限主要通过以下几个关键步骤: 查看现有权限 可以使用系统视图来查看账号的权限,比如 sys.database_permissions 视图,示例查询如下: SELECT d…...
软件需求未明确非功能性指标(如并发量)的后果
软件需求未明确非功能性指标(如并发量)可能带来的严重后果包括:系统性能下降、用户体验恶化、稳定性降低、安全风险增加、后期维护成本高企。其中,系统性能下降尤为显著。当软件系统在设计和开发阶段未明确并发量需求时࿰…...
VScode-i18n-ally-Vue
参考这篇文章,做Vue项目的国际化配置,本篇文章主要解释,下载了i18n之后,该如何对Vscode进行配置 https://juejin.cn/post/7271964525998309428 i18n Ally全局配置项 Vscode中安装i18n Ally插件,并设置其配置项&#…...
Spring Boot项目快速创建-开发流程(笔记)
主要流程: 前端发送网络请求->controller->调用service->操纵mapper->操作数据库->对entity数据对象赋值->返回前端 前期准备: maven、mysql下载好 跟学视频,感谢老师: https://www.bilibili.com/video/BV1gm4…...
车架号查询车牌号接口如何用Java对接
一、什么是车架号查询车牌号接口? 车架号查询车牌号接口,即传入车架号,返回车牌号、车型编码、初次登记日期信息。车架号又称车辆VIN码,车辆识别码。 二、如何用Java对接该接口? 下面我们以阿里云接口为例࿰…...
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本的处理方法
1、安装了node.js后,windows powershell中直接输入npm,然后就报错 2、出现原因:权限不够 系统禁用了脚本的执行,所以我们在windows powershell输入npm -v的时候,就会报上面的错误。 3、解决 Set-ExecutionPolicy Un…...
【java笔记】泛型、包装类、自动装箱拆箱与缓存机制
一、泛型:类型安全的基石 1. 泛型的本质与原理 Java 泛型(Generics)是 JDK 5 引入的特性,通过类型参数化实现代码的通用性。泛型类、接口和方法允许在定义时声明类型参数(如 T、E、K、V),这些…...
数仓开发那些事(11)
某神州优秀员工:一闪,领导说要给我涨米。 一闪:。。。。(着急的团团转) 老运维:Oi,两个吊毛,看看你们的hadoop集群,健康度30分,怎么还在抽思谋克?…...
自动化测试【Python3.7+Selenium3】
1、自动化测试环境搭建之selenium3安装 方法1:cmd环境下,用pip install selenium (速度很慢,不推荐) 方法2:下载selenium安装包手动安装 下载地址:https://pypi.org/project/selenium/ 在解压…...
从零开始完成冒泡排序(0基础)——C语言版
文章目录 前言一、冒泡排序的基本思想二、冒泡排序的执行过程(一)第一轮排序(二)第二轮排序(三)第三轮排序(四)第四轮排序 三、冒泡排序的代码实现(C语言)&am…...
工业级POE交换机:助力智能化与自动化发展
随着工业互联网、物联网(IoT)和自动化技术的快速发展,网络设备在工业领域的应用日益广泛。然而,在严苛环境下,传统网络设备往往难以应对复杂的温湿度变化、电磁干扰和供电不稳定等挑战。为同时满足数据传输与供电一体化…...
使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第五讲)
在上一讲我们讲解了按键回调函数的自定义函数的用法,这一讲继续讲解回调函数的另一种用法。 首先我们将上一讲做好的按键名称以及自定义回调事件中的按键名称修改,改为默认模式为“open”当点击按键时进入回调函数将按键名称改为“close”,具…...
Burp Suite Professional 2024版本安装激活指南
文章目录 burpsuite简介Burp Suite的主要组件:Burp Suite的版本使用场景 下载地址使用教程 burpsuite简介 Burp Suite 是一个广泛使用的网络安全测试工具,特别是在Web应用程序安全领域。它主要用于发现和修复Web应用中的安全漏洞,特别适用于渗…...
【c++深入系列】:类与对象详解(上)
🔥 本文专栏:c 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 你仰望的星辰并非遥不可及,而是跋涉者脚印的倒影;你向往的远方未必需要翅膀,只要脚下始终有路&#x…...
6、进程理论和简单进程创建
一、了解进程推荐看这个视频,很详细 1、概念 进程(Process)程序的运行过程,是系统进行资源分配和调度的独立单元程序的运行过程:多个不同程序 并发,同一个程序同时执行多个任务。 就需要很多资源来实现这个过程。 每个进程都有一…...
java八股文之JVM
1.什么是程序计数器 程序计数器是 JVM 管理线程执行的“定位器”,记录每个线程当前执行的指令位置,确保程序流程的连续性和线程切换的准确性。线程私有的,每个线程一份,内部保存的字节码的行号。用于记录正在执行的字节码指令的地…...
Todesk介绍
文章目录 ToDesk 软件介绍1. 软件概述2. ToDesk 的功能特点2.1 简单易用2.2 高质量的图像与流畅的操作2.3 跨平台支持2.4 多屏显示与协作2.5 文件传输功能2.6 实时聊天与语音通话2.7 远程唤醒与自动启动2.8 多种权限设置与安全性2.9 无需公网 IP 3. ToDesk 的应用场景3.1 个人使…...
每日总结3.27
蓝桥刷题 1. 团建 (树dfs) #include <bits/stdc.h> using namespace std; const int N200005; int a[N],b[N]; int ans; map<int,vector<int>>m1,m2; void dfs(int x,int y,int count) { if(a[x]!b[y]) {return;} ansmax(ans,c…...
Linux 进程3-fork创建子进程继承父进程缓冲区验证
目录 1. fork创建子进程继承父进程缓冲区验证 1.1 write向标准输出(终端屏幕)写入数据验证 1.1.1 write函数写入数据不带行缓冲刷新 \n 1.1.2 write函数写入数据带行缓冲刷新 \n 1.2 fork创建前执行printf函数 1.2.1 fork创建前执行printf函数带\n…...
应用服务接口第二次请求一直pending问题
目录 一、问题背景二、问题排查过程三、解决方案四、总结 一、问题背景 升级内容发布到灰度环境,验证相关服务,查看接口调用日志,发现第一次请求正常,第二次相同接口请求就一直pending,其他服务也是如此 二、问题排查…...
基于FPGA的ESP8266无线数据传输(温湿度DTH11、光照强度BH1750、WIFI模块)连接中国移动onenet云平台,仿真+上板
文章目录 一、创建云平台产品设备二、FPGA仿真WIFI模块通信过程仿真分析2.上板 总结 一、创建云平台产品设备 使用串口助手测试传输过程 相关信息记录 二、FPGA仿真WIFI模块通信过程 仿真分析 //各个状态tx_dataalways (posedge clk or negedge rst_n) beginif(!rst_n) beg…...
