Gemini+SQLite代理API
该项目公开了一个小型FastAPI服务,该服务允许Gemini模型将自然语言请求转换为针对捆绑的SQLite CRM数据库的安全SQL查询(database/crmarena_data.db).
设置
- 安装依赖项
pip install -r requirements.txt- 设置环境变量(支持从
.env)
- 创建文件 .env 例如
GEMINI_API_KEY=your_key_here
CRM_DB_PATH=database/crmarena_data.db
GEMINI_MODEL=gemini-2.5-flash
AGENT_MAX_ROWS=50- 或通过外壳导出: $env:GEMINI_API_KEY=""
- 运行API
uvicorn agent_api:app --reload --port 8000用法
- 探索架构:
GET /schema - 问一个问题:
POST /query身体:
{ "question": "แสดง 5 order ล่าสุดของ account ที่ชื่อ John Doe" }代理提示Gemini返回一个带有SELECT语句的JSON有效负载(LIMIT强制),在SQLite上执行它,并返回 sql, columns, rows,以及可选 reasoning 现场。
流线型UI
- 启动:
streamlit run streamlit_app.py - UI页面将填写泰语/英语问题,并显示模型生成的SQL及其结果。
database/crmarena_data.db.
MCP服务器
- 运行MCP服务器(stdin/stdout传输):
python mcp_server.py- 工具:
- ask(question: str) →将自然语言查询发送回JSON字符串 {sql, reasoning, columns, rows} - schema() →发送地面地图表/列 注:负载环境变量来自 .env 例如 GEMINI_API_KEY, CRM_DB_PATH, GEMINI_MODEL, AGENT_MAX_ROWS.
