# nl2sql **Repository Path**: zdyumath/nl2sql ## Basic Information - **Project Name**: nl2sql - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-05 - **Last Updated**: 2025-05-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NL2SQL 功能模块 这是一个用于将自然语言转化为SQL语句的Python客户端程序。 ## 功能特点 - 使用SQLAlchemy进行数据库连接和查询 - 支持获取数据库表结构 - 支持查询表数据 - 使用环境变量进行配置管理 - 支持自然语言转SQL查询 - 支持多种AI模型服务(DeepSeek API和本地OLLAMA) - 支持交互式选择模型服务 ## 安装 1. 克隆项目到本地 2. 安装依赖: ```bash pip install -r requirements.txt ``` ## 配置 ### 数据库配置 在 `config.py` 文件中配置数据库连接信息: ```python DB_CONFIG = { 'host': 'localhost', 'port': 5432, 'database': 'postgres', 'user': 'postgres', 'password': 'your_password' } ``` ### AI模型配置 在 `.env` 文件中配置AI模型服务信息: ``` # DeepSeek API配置 MODEL_NAME=deepseek-chat API_BASE_URL=https://api.deepseek.com/v1 DEEPSEEK_API_KEY=your_deepseek_api_key_here TEMPERATURE=1 MAX_TOKENS=4096 # OLLAMA配置 OLLAMA_MODEL_NAME=deepseek-coder OLLAMA_API_BASE_URL=http://localhost:11434 OLLAMA_TEMPERATURE=1 OLLAMA_MAX_TOKENS=4096 ``` ## 使用方法 ### 运行自然语言转SQL查询示例 ```bash # 使用DeepSeek API python ai_example.py --model deepseek # 使用本地OLLAMA服务(默认) python ai_example.py # 交互式选择模型服务 python ai_example.py --interactive ``` ### 运行数据库查询示例 ```bash python test.py ``` ## 项目结构 ``` nl2sql/ ├── README.md ├── requirements.txt ├── config.py ├── db_manager.py ├── main.py ├── ai_config.py ├── ai_query.py ├── ollama_query.py ├── ai_example.py └── .env ``` ## 示例代码 ### 数据库查询 ```python from db_manager import DatabaseManager # 创建数据库管理器实例 db = DatabaseManager() # 获取所有表 tables = db.get_tables() # 获取表结构 columns = db.get_table_columns('table_name') # 获取表数据 data = db.get_table_data('table_name') ``` ### 自然语言转SQL查询 ```python from ai_query import AIQueryManager from ollama_query import OllamaQueryManager # 使用DeepSeek API ai_query = AIQueryManager() result = ai_query.query("查询所有租户的基本信息") # 使用本地OLLAMA服务 ollama_query = OllamaQueryManager() result = ollama_query.query("查询所有租户的基本信息") ``` ## 故障排除 ### OLLAMA服务问题 如果您在使用OLLAMA服务时遇到问题,请检查: 1. OLLAMA服务是否已启动并正在运行 2. 您选择的模型是否已在OLLAMA中下载 3. OLLAMA服务的URL是否正确配置 您可以使用以下命令检查OLLAMA服务状态: ```bash # 检查OLLAMA服务是否运行 curl http://localhost:11434/api/tags # 下载模型(如果尚未下载) ollama pull deepseek-coder ```