本地部署VANNA AI连接ORACLE 低版本DB中遇到的问题

部署运行你感兴趣的模型镜像

VANNA AI本地部署的详细步骤请参考文章:

本地部署Vanna实战,快速解决NLP2SQL-优快云博客

这里主要说明连接ORACLE碰到的问题。

如果需要VANNA AI连接ORACLE数据库查询数据,python需要安装oracledb:

pip3 install oracledb

oracledb支持两种连接ORACLE的模式thin和thick,thin模式只支持ORACLE DB版本是12.1之后的,如果是之前的版本就只能用thick模式,本地需要安装oracle client,例如连接ORACLE 9.2需要安装ORACLE CLIENT 11.2

安装完后,如果要直接用VANNA内置的连接connect_to_oracle会报错,因为VANNA是用THIN模式连接ORACLE:

DPY-3010: connections to this database server version are not supported by python-oracledb in thin mode

要改THICK模式需要修改VANNA本身的连接DB部分的程序:

找到自己安装的VANNA的路径,例如CONDA下的路径类似:

D:\anaconda3\envs\vanna\Lib\site-packages\vanna\base

修改base.py, 增加一句:oracledb.init_oracle_client(lib_dir=r"D:\product\11.2.0\client_1\BIN") 

lib_dir是指ORACLE CLIENT的安装路径

 def connect_to_oracle

....

     if not password:
            raise ImproperlyConfigured("Please set your Oracle db password")

        conn = None

     oracledb.init_oracle_client(lib_dir=r"D:\product\11.2.0\client_1\BIN") 
     try:
            conn = oracledb.connect(
                user=user,
                password=password,
                dsn=dsn,
                **kwargs
            )

...

然后可以用下面的测试一下:这里是本地OLLAMA+gemma3:4b+CHROMADB+ORACLE DB 9I

from vanna.ollama import Ollama

from vanna.chromadb import ChromaDB_VectorStore

from vanna.flask import VannaFlaskApp

class MyVanna(ChromaDB_VectorStore, Ollama):

    def __init__(self, config=None):

        ChromaDB_VectorStore.__init__(self, config=config)

        Ollama.__init__(self, config=config)



vn = MyVanna(config={'model': 'gemma3:4b','ollama_host': 'http://127.0.0.1:11434'})

vn.connect_to_oracle(dsn=r'DB IP:PORT/SERVICE NAME', user='xx', password='xxxx')



if __name__ == '__main__':

    app = VannaFlaskApp(vn)

    app.run()

DB IP为ORACLE DB的IP,PORT通常1521,SERVICE NAME可以用下面的SQL查询出来。

select value from v$parameter where name like '%service_name%';

若出现下面提示,表示连接成功

Your app is running at:
http://localhost:8084
 * Serving Flask app 'vanna.flask'
 * Debug mode: on

若提示

DPY-6001: Service "xx" is not registered with the listener at host "xxx" port xxx. (Similar to ORA-12514)

表示DSN未写对。

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值