自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

RAG做SQL生成處理表格,一個(gè)10.1k※的開源工具Vanna

開發(fā) 前端
Vanna是一個(gè)開源項(xiàng)目,它是一個(gè)基于Python的RAG(Retrieval-Augmented Generation,檢索增強(qiáng)型生成)框架,專門用于SQL生成和相關(guān)功能。

我們在日常的工作中除了非結(jié)構(gòu)化數(shù)據(jù)外,總會(huì)有一些表格數(shù)據(jù)感到很棘手不好拆分,做問答準(zhǔn)確率也不高;例外還有一些結(jié)構(gòu)化的數(shù)據(jù)需要處理,這個(gè)時(shí)候如果大模型能輸出結(jié)構(gòu)化的查詢語句,那就很妙了。今天介紹一款在GitHub上面10.1k star的項(xiàng)目,感覺用起來很簡單。

這個(gè)倉庫名為Vanna,是一個(gè)開源項(xiàng)目,它是一個(gè)基于Python的RAG(Retrieval-Augmented Generation,檢索增強(qiáng)型生成)框架,專門用于SQL生成和相關(guān)功能。以下是該項(xiàng)目的主要特點(diǎn)和功能:

項(xiàng)目介紹

開源許可:Vanna是在MIT許可下發(fā)布的,這意味著它可以自由地被用于商業(yè)和非商業(yè)項(xiàng)目。

框架目的:它旨在通過使用大型語言模型(LLMs)來生成準(zhǔn)確的SQL查詢,這些查詢可以自動(dòng)運(yùn)行在用戶的數(shù)據(jù)庫上。

圖片圖片

運(yùn)行流程圖

圖片圖片

工作原理:Vanna的工作分為兩個(gè)簡單的步驟:

  • 訓(xùn)練訓(xùn)練一個(gè)RAG模型到你的數(shù)據(jù)上。
  • 提出問題,這些問題將返回可以設(shè)置為自動(dòng)運(yùn)行在你的數(shù)據(jù)庫上的SQL查詢。

圖片圖片

用戶界面:項(xiàng)目提供了一些使用Vanna構(gòu)建的用戶界面示例,包括Jupyter Notebook、Streamlit、Flask和Slack集成,用戶可以按原樣使用或作為自定義界面的起點(diǎn)。

環(huán)境搭建

運(yùn)行所需要的依賴環(huán)境:

pip install vanna

模型加載

配置模型也非常簡單:

# The import statement will vary depending on your LLM and vector database. This is an example for OpenAI + ChromaDB


from vanna.openai.openai_chat import OpenAI_Chat
from vanna.chromadb.chromadb_vector import ChromaDB_VectorStore


class MyVanna(ChromaDB_VectorStore, OpenAI_Chat):
    def __init__(self, cnotallow=None):
        ChromaDB_VectorStore.__init__(self, cnotallow=config)
        OpenAI_Chat.__init__(self, cnotallow=config)


vn = MyVanna(cnotallow={'api_key': 'sk-...', 'model': 'gpt-4-...'})
# 使用自己的模型
# vn = MyVanna(cnotallow={'path': '/path/to/chromadb'})

模型訓(xùn)練

添加參考數(shù)據(jù)向量化和入庫,用于檢索混合加入prompt. Vanna可以通過DDL語句、文檔和SQL查詢來訓(xùn)練,這有助于模型理解數(shù)據(jù)庫的結(jié)構(gòu)和業(yè)務(wù)術(shù)語。

添加DDL語句:

vn.train(ddl="""
    CREATE TABLE IF NOT EXISTS my-table (
        id INT PRIMARY KEY,
        name VARCHAR(100),
        age INT
    )
""")

添加文檔:

vn.train(documentatinotallow="Our business defines XYZ as ...")

添加SQL語句:

vn.train(sql="SELECT name, age FROM my-table WHERE name = 'John Doe'")

提問和生成SQL:用戶可以向訓(xùn)練好的模型提問,模型將生成相應(yīng)的SQL查詢代碼。

vn.ask("What are the top 10 customers by sales?")

RAG與微調(diào)(Fine-Tuning):Vanna使用RAG技術(shù)而不是傳統(tǒng)的微調(diào),這使得它在跨不同LLMs的可移植性、數(shù)據(jù)更新的便捷性、運(yùn)行成本和未來適應(yīng)性方面具有優(yōu)勢。

為什么選擇Vanna

  1. 在復(fù)雜數(shù)據(jù)集上具有高精度。
  • Vanna 的能力與您提供給它的訓(xùn)練數(shù)據(jù)相關(guān)聯(lián)
  • 更多的訓(xùn)練數(shù)據(jù)意味著對(duì)于大型和復(fù)雜的數(shù)據(jù)集,準(zhǔn)確性更高
  1. 安全且私密。
  • 您的數(shù)據(jù)庫內(nèi)容永遠(yuǎn)不會(huì)發(fā)送到 LLM 或向量數(shù)據(jù)庫
  • SQL 執(zhí)行在本地環(huán)境中進(jìn)行
  1. 自學(xué)習(xí)。
  • 如果通過 Jupyter 使用,您可以選擇在成功執(zhí)行的查詢上“自動(dòng)訓(xùn)練”它
  • 如果通過其他接口使用,您可以讓接口提示用戶提供有關(guān)結(jié)果的反饋
  • 將存儲(chǔ)對(duì) SQL 的正確問題以供將來參考,并使未來的結(jié)果更加準(zhǔn)確
  1. 支持任何 SQL 數(shù)據(jù)庫。
  • 該包允許您連接到任何 SQL 數(shù)據(jù)庫,否則您可以使用 Python 連接到這些數(shù)據(jù)庫
  1. 隨意選擇前端。
  • 大多數(shù)人從 Jupyter Notebook 開始。
  • 通過 Slackbot、Web 應(yīng)用、Streamlit 應(yīng)用或自定義前端向最終用戶展示。

    6. 擴(kuò)展性:

  • Vanna設(shè)計(jì)用于連接任何數(shù)據(jù)庫、LLM和向量數(shù)據(jù)庫,項(xiàng)目提供了OpenAI和ChromaDB的實(shí)現(xiàn),并且可以輕松擴(kuò)展以使用自定義的LLM或向量數(shù)據(jù)庫。
# 項(xiàng)目地址
https://hub.yzuu.cf/vanna-ai/vanna
# 倉庫文檔
https://vanna.ai/docs/postgres-openai-standard-other-vectordb/


責(zé)任編輯:武曉燕 來源: 哎呀AIYA
相關(guān)推薦

2024-10-09 11:14:37

2024-08-19 09:40:00

人工智能診斷

2025-03-07 09:00:00

2020-09-01 11:00:08

OnionShare開源工具Linux

2025-04-21 03:00:00

2022-02-22 22:59:16

開源監(jiān)控工具

2022-02-12 12:18:59

Delta Chat聊天應(yīng)用開源

2024-12-06 09:58:09

2025-01-13 00:00:10

SwaggerAI項(xiàng)目

2019-07-24 14:49:48

SQL開源庫BI軟件

2020-11-04 09:56:13

開源技術(shù) go

2019-01-15 10:02:06

Kubernetes開源工具微服務(wù)

2020-09-28 15:55:32

開源技術(shù) 工具

2025-02-13 09:01:03

2010-05-12 16:52:11

Oracle備份工具

2018-11-09 09:40:52

2016-05-25 10:14:04

開源數(shù)據(jù)管道 ETL

2025-02-24 08:39:08

2013-03-18 10:31:22

JS異常

2018-11-16 09:10:13

TerminalizeGif圖像Linux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)