链载Ai
标题: Vanna:用自然语言查询你的 SQL 数据库 [打印本页]
作者: 链载Ai 时间: 昨天 10:09
标题: Vanna:用自然语言查询你的 SQL 数据库
ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;">Vanna 是一个开源的 Python RAG(检索增强生成)框架,用于 SQL 生成和其他相关功能。它使用大型语言模型(LLM)来实现准确的文本到 SQL 生成。
ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;">Vanna 的工作原理:ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;">1.在你的数据上训练一个 RAG “模型”。2.提出问题,Vanna 会返回 SQL 查询,这些查询可以被设置为自动运行在你的数据库上。ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;">用户界面:ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;">Vanna 提供了多种用户界面,例如 Jupyter Notebook、Streamlit、Flask 和 Slack,方便你使用。ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;">安装:ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;">使用示例:from vanna.openai.openai_chat import OpenAI_Chatfrom vanna.chromadb.chromadb_vector import ChromaDB_VectorStore
class MyVanna(ChromaDB_VectorStore, OpenAI_Chat):def __init__(self, config=None):ChromaDB_VectorStore.__init__(self, config=config)OpenAI_Chat.__init__(self, config=config)
vn = MyVanna(config={'api_key': 'sk-...', 'model': 'gpt-4-...'})
ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;">训练:ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;list-style: circle;">•ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;">使用 DDL 语句进行训练,例如:vn.train(ddl="""CREATETABLEIFNOTEXISTSmy-table(idINTPRIMARYKEY,nameVARCHAR(100),ageINT)""")
•
使用文档进行训练,例如:
vn.train(documentation="OurbusinessdefinesXYZas...")
•
使用 SQL 查询进行训练,例如:
vn.train(sql="SELECTname,ageFROMmy-tableWHEREname='JohnDoe'")
提问:
vn.ask("Whatarethetop10customersbysales?")Vanna 的优势:
•高精度:在复杂数据集上表现出色。•安全和私密:你的数据库内容不会被发送到 LLM 或向量数据库。•自学习:可以根据成功执行的查询进行自动训练。•支持任何 SQL 数据库。•可扩展性强:可以轻松扩展到使用自定义的 LLM 或向量数据库。
项目地址:https://github.com/vanna-ai/vanna
| 欢迎光临 链载Ai (https://www.lianzai.com/) |
Powered by Discuz! X3.5 |