🧠 MindSQL
MindSQL 是一个 Python RAG(检索增强生成)库,旨在通过几行代码简化用户与数据库的交互。它可以无缝集成著名的数据库,如 PostgreSQL、MySQL 和 SQLite,同时通过扩展 IDatabase
接口,还支持 Snowflake 和 BigQuery 等主要数据库。该库利用大型语言模型(LLM)如 GPT-4、Llama 2、Google Gemini,并支持 ChromaDB 和 Faiss 等知识库。
🚀 安装
要安装 MindSQL,你可以使用 pip:
pip install mindsql
MindSQL 需要 Python 3.10 或更高版本。
💡 使用方法
# !pip install mindsql
from mindsql.core import MindSQLCore
from mindsql.databases import Sqlite
from mindsql.llms import GoogleGenAi
from mindsql.vectorstores import ChromaDB
# 添加你的配置
config = {"api_key": "你的API密钥"}
# 选择你想要使用的向量存储、LLM 和数据库
# 使用配置的 Llm、向量存储和数据库创建 MindSQLCore 实例
minds = MindSQLCore(
llm=GoogleGenAi(config=config),
vectorstore=ChromaDB(),
database=Sqlite()
)
# 使用指定的 URL 创建数据库连接
connection = minds.database.create_connection(url="你的数据库连接URL")
# 将指定数据库中的所有数据定义语言(DDL)语句索引到向量存储中
minds.index_all_ddls(connection=connection, db_name='数据库名称')
# 从指定的示例路径批量索引问题-SQL 对
minds.index(bulk=True, path="你的问题-SQL示例.json")
# 向数据库提问并可视化结果
response = minds.ask_db(
question="你的问题",
connection=connection,
visualize=True
)
# 从响应中提取并显示图表
chart = response["chart"]
chart.show()
# 关闭数据库连接
connection.close()
📁 代码结构
- _utils: 包含常量和日志记录器的实用模块。
- _helper: 帮助模块。
- core: 主要核心模块,
minds_core.py
。 - databases: 数据库相关模块。
- llms: 与语言模型相关的模块。
- testing: 测试脚本。
- vectorstores: 与向量存储相关的模块。
- poetry.lock 和 pyproject.toml: Poetry 依赖和配置文件。
- tests: 测试用例。
🤝 贡献指南
感谢你考虑为我们的项目做出贡献!请遵循以下指南以确保顺利合作:
-
复刻仓库并从主分支创建你的分支。
-
确保你的代码符合我们的编码标准和约定。
-
彻底测试你的更改,并在
tests
文件夹中添加测试用例。 -
提交一个清楚描述问题和解决方案的拉取请求。
🐛 错误报告
如果你在使用 MindSQL 时遇到错误,请按照以下步骤帮助我们解决:
-
检查现有问题,看看是否已经报告了该错误。
-
如果没有,请打开一个新问题,详细描述错误,包括重现步骤和相关的截图或错误消息。
🚀 功能请求
我们欢迎对 MindSQL 的新功能或改进的建议。以下是请求新功能的方法:
-
检查现有的功能请求,避免重复。
-
如果你的功能请求是独特的,请打开一个新问题并描述你想看到的功能。
-
提供尽可能多的上下文和细节,以帮助我们理解你的请求。
📣 反馈
我们重视你的反馈,并致力于改进 MindSQL。以下是与我们分享你想法的方式:
- 打开一个问题,提供一般反馈、建议或评论。
- 提供具有建设性和具体的反馈,以帮助我们更好地理解你的观点。
感谢你对我们项目的兴趣!我们感谢你的支持,并期待与你合作。🚀