【ChatBI】text2sql-不需要訪問數據表-超輕量Python庫Vanna快速上手,對接oneapi

oneapi 準備

首先確保你有oneapi ,然后申請 kimi的api

需要去Moonshot AI - 開放平臺? ? ?

然后添加一個api key

然后打開oneapi的渠道界面,添加kimi。

然后點擊 測試, 如果能生成響應時間,就是配置正確。

然后創建令牌?http://xxx:3000/token? ?, 模型名是moonshot-v1-8k

然后復制token , token是sk開頭的一串密碼。

其他平臺接入也是類似操作, 不懂的讀者可以留言評論。

Vanna安裝使用

說明

Vanna是一個輕量的Python庫, 用來做nl2sql 。 它可以根據用戶的問題, 生成對應的sql 查詢語句。一般來說。vanna需要建表sql和一些常見的查詢sql。 然后vanna 會通過搜索你的sql 來模仿生成一個sql 。? (用prompt的形式)。

安裝庫

pip install vanna就可以了

然后執行以下代碼。

from openai import OpenAI
from vanna.openai.openai_chat import OpenAI_Chat
from vanna.chromadb.chromadb_vector import ChromaDB_VectorStore
# zhipu
from zhipuai import ZhipuAI# oneapi kimi
#url,API_KEY,model_name =  "http://10.106.153.12:3002/v1",'sk-NykXx0lml5gnMy6gEe8bA114BbB644C398Ac0d8b5a123d48','moonshot-v1-8k'
url,API_KEY,model_name =  "http://10.106.153.11:9002/v1",'EMPTY', 'qwen2-7b-instruct'client = OpenAI(api_key=API_KEY,base_url=url,
)
def single_query(query):return [{"role": "user", "content": query}]def qwen_chat(client,model,history):# create a chat completion temperature=0.9,completion = client.chat.completions.create(model=model, max_tokens=512,messages=history)return completion.choices[0].message.content
# print the completion
# 用這一行測試是否能正常訪問 oneapi的接口
# print(qwen_chat(client,model_name,single_query('你好')))class MyVanna(ChromaDB_VectorStore, OpenAI_Chat):def __init__(self, client=None, config=None):ChromaDB_VectorStore.__init__(self, config=config)OpenAI_Chat.__init__(self, client=client, config=config)vn = MyVanna(client=client, config={"model": model_name})
#vn.max_tokens = 1000
vn.temperature = 1
vn.train(ddl="""
CREATE TABLE IF NOT EXISTS users (id INT PRIMARY KEY COMMENT '用戶ID',username VARCHAR(50) COMMENT '用戶名',email VARCHAR(100) COMMENT '電子郵件',age INT COMMENT '年齡',gender VARCHAR(10) COMMENT '性別(男/女)',city VARCHAR(50) COMMENT '城市'
) COMMENT='用戶信息表' CHARACTER SET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
""")
vn.train(ddl="CREATE TABLE IF NOT EXISTS consumption_record (   id INT PRIMARY KEY COMMENT '消費記錄ID',""user_id COMMENT '用戶id' ,item_id INT COMMENT '商品id',amount INT COMMENT '數量' ,consumption INT COMMENT '總消費'"") COMMENT='購買記錄' CHARACTER SET=utf8mb4 COLLATE=utf8mb4_unicode_ci;  ")
query = '男性用戶的總消費是多少'
res = vn.generate_sql(query)
print("#"*10)
print(query,res)
print("#"*10)
query = '男性用戶有多少個'
res = vn.generate_sql('男性用戶有多少個')print("#"*10)
print(query,res)
print("#"*10)

vanna的優勢是可以直接生成sql,不需要訪問你的數據表。 只需要sql 建表信息, 或者是一些已有的sql ,它可以從已有的sql中進行學習。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37719.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37719.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37719.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vllm Offline 啟動

Vllm Offline 啟動 Vllm Offline 啟動,設置環境變量, TRANSFORMERS_OFFLINE1reference: https://github.com/vllm-project/vllm/discussions/1405

Linux shell編程學習筆記60:touch命令

0 前言 在csdn技能樹Linux入門的練習題中,touch是最常見的一條命令。這次我們就來研究它的用法。 1 touch命令的功能、格式和選項說明 我們可以使用touch --help命令查看touch命令的幫助信息。 [purpleendurer bash ~ ]touch --help Usage: touch [OPTION]... …

MATLAB-NGO-CNN-SVM,基于NGO蒼鷹優化算法優化卷積神經網絡CNN結合支持向量機SVM數據分類(多特征輸入多分類)

NGO-CNN-SVM,基于NGO蒼鷹優化算法優化卷積神經網絡CNN結合支持向量機SVM數據分類(多特征輸入多分類) 1.數據均為Excel數據,直接替換數據就可以運行程序。 2.所有程序都經過驗證,保證程序可以運行。 3.具有良好的編程習慣,程序均…

【Android面試八股文】Activity A跳轉B,B跳轉C,A不能直接跳轉到C,A如何傳遞消息給C?

文章目錄 1. 使用Intent傳遞消息2. 使用全局單例類(Singleton)3. 使用靜態變量4. 使用Application全局靜態變量5. 使用 Android系統剪切板(Clipboard)6. 本地化存儲方式6.1 使用SharedPreferences6.2 使用File文件存儲方式傳遞消息6.3 使用SQLite數據庫方式傳遞消息7. 使用廣…

【Spring Boot】Java 的數據庫連接模板:JDBCTemplate

Java 的數據庫連接模板:JDBCTemplate 1.JDBCTemplate 初識1.1 JDBC1.2 JDBCTemplate 2.JDBCTemplate 實現數據的增加、刪除、修改和查詢2.1 配置基礎依賴2.2 新建實體類2.3 操作數據2.3.1 創建數據表2.3.2 添加數據2.3.3 查詢數據2.3.4 查詢所有記錄2.3.5 修改數據2…

【ai】tx2 nx:ubuntu18.04 yolov4-triton-tensorrt 成功部署server 運行

isarsoft / yolov4-triton-tensorrt運行發現插件未注冊? 【ai】tx2 nx: jetson Triton Inference Server 部署YOLOv4 【ai】tx2 nx: jetson Triton Inference Server 運行YOLOv4 對main 進行了重新構建 【ai】tx2 nx :ubuntu查找NvInfer.h 路徑及哪個包、查找符號【ai】tx2…

深度學習實戰81-基于大模型的Chatlaw法律問答中的知識圖譜融合思路,數據集說明、以及知識圖譜對ChatLaw的影響介紹

大家好,我是微學AI,今天給大家介紹一下深度學習實戰81-基于大模型的Chatlaw法律問答中的知識圖譜融合思路,數據集說明、以及知識圖譜對ChatLaw的影響介紹。基于大模型的Chatlaw法律問答系統融合了知識圖譜,以提高法律咨詢服務的可靠性和準確性。Chatlaw通過結合知識圖譜與人…

AES加密算法及AES-CMAC原理白話版系統解析

本文框架 前言1. AES加密理論1.1 不同AES算法區別1.2 加密過程介紹1.2.1 加密模式和填充方案選擇1.2.2 密鑰擴展1.2.3分組處理1.2.4多輪加密1.2.4.1字節替換1.2.4.2行移位1.2.4.3列混淆1.2.4.4輪密鑰加1.3 加密模式1.3.1ECB模式1.3.2CBC模式1.3.3CTR模式1.3.4CFB模式1.3.5 OFB模…

redis 單節點數據如何平滑遷移到集群中

目的 如何把一個redis單節點的數據遷移到 redis集群中 方案&#xff1a; 使用命令redis-cli --cluster import 導入數據至集群 --cluster-from <arg>--cluster-from-user <arg> 數據源用戶--cluster-from-pass <arg> 數據源密碼--cluster-from-askpass--c…

css_22_過渡動畫

一.過渡 transition-property 作用&#xff1a;定義哪個屬性需要過渡。結構&#xff1a; transition-property: all; 常用值&#xff1a; 1.none&#xff1a;不過渡任何屬性。 2.all&#xff1a;過渡所有能過渡的屬性。 3&#xff0e;具體某個屬性名&#xff0c;例如&#xf…

駕校預約小程序系統的設計

管理員賬戶功能包括&#xff1a;系統首頁&#xff0c;個人中心&#xff0c;學員管理&#xff0c;教練管理&#xff0c;駕校信息管理&#xff0c;駕校車輛管理&#xff0c;教練預約管理&#xff0c;考試信息管理 微信端賬號功能包括&#xff1a;系統首頁&#xff0c;駕校信息&a…

Java基礎——五、繼承

五、繼承 簡要 1、說明 繼承(Inheritance)是面向對象編程(OOP)的一個核心概念&#xff0c;它允許一個類(子類)繼承另一個類(父類)的屬性和方法&#xff0c;從而實現代碼重用和結構化組織。通過繼承&#xff0c;子類可以擴展父類的功能或者對父類的方法進行重寫。 父類(超類…

基于docker安裝redis服務

Redis是我們在項目中經常需要使用的緩存數據庫&#xff0c;安裝redis的方式也有很多&#xff0c;本文主要是給大家講解如何基于docker進行redis服務的安裝&#xff0c;主要介紹&#xff0c;如何拉取redis鏡像、如何掛載redis的數據以及使用redis的配置文件和開啟認證等功能&…

steam社區載入失敗、加載不出來、打不開?

隨著steam夏季大促的到來&#xff0c;最近steam在線用戶越來越多了&#xff0c;很多玩家在自己喜歡的游戲社區里看最新的玩法、攻略和玩家的游戲心得。不過有不少玩家表示有時候會打不開游戲社區或是社區加載失敗等問題。根據大家遇到的問題&#xff0c;這里總結了幾種解決方法…

構建現代醫療:互聯網醫院系統源碼與電子處方小程序開發教學

本篇文章&#xff0c;筆者將探討互聯網醫院系統的源碼結構和電子處方小程序的開發&#xff0c;幫助讀者更好地理解和掌握這些前沿技術。 一、互聯網醫院系統源碼結構 互聯網醫院系統通常由多個模塊組成&#xff0c;每個模塊負責不同的功能。以下是一個典型的互聯網醫院系統的主…

基于C語言的Jacobi迭代和Gauss-Seidel迭代的方程組求解實現

文章目錄 Jacobi迭代方法介紹Gauss-Seidel迭代方法介紹具體代碼實現示例題目實現效果 Jacobi迭代方法介紹 Jacobi迭代法是一種簡單的迭代求解方法&#xff0c;適用于嚴格對角占優矩陣。其基本思想是利用當前迭代步的已知解來更新下一個迭代步的解。在C語言實現中&#xff0c;我…

商協會小程序如何提升商協會形象?

商協會小程序在提升商協會形象方面扮演著重要角色。以下是關于商協會小程序如何提升商協會形象的一些場景分析&#xff1a; 1、數字化名片與品牌形象展示 小程序可以作為商協會的數字名片&#xff0c;通過展示商會文化、活動信息和會員服務&#xff0c;有效提升商會的品牌形象…

鏈表反轉的兩種方式

鏈表反轉的兩種方式 1.頭插法 先創建一個新的鏈表&#xff0c;然后不斷遍歷我們想要反轉的鏈表&#xff0c;再一個一個使用頭插法插入到我們新建立的鏈表中&#xff0c;這樣鏈表就倒置了。 LinkList Reverse(LinkList re) {LinkList n;n (LinkList)malloc(sizeof(LNode));n…

C語言代碼風格

程序文件的說明&#xff0c;一般放在文件頭部注釋。 用來描述文件的作用、作者、日期等信息。一般格式如下&#xff1a; /** 文件名&#xff1a;filename.c* 功能&#xff1a;簡要描述文件的功能或作用* 作者&#xff1a;作者姓名* 日期&#xff1a;創建日期或最近修改日期*/…

Textual Learning2 -- 使用時的小問題

1、出現的問題&#xff1a; 在vscode里面直接運行函數會顯示報錯&#xff1a; 我嘗試在vscode中含textual庫的環境下運行&#xff0c;但仍然報錯 2、解決方案&#xff1a; 在命令行中運行&#xff1a; 首先按winR&#xff0c;輸入cmd打開命令行 或在已經安裝的conda環境&a…