|
|
3 дней назад | |
|---|---|---|
| .env.example | 3 дней назад | |
| .gitignore | 3 дней назад | |
| README.md | 3 дней назад | |
| app.py | 3 дней назад | |
| requirements.txt | 3 дней назад |
用自然语言查询 Doris ods 库,基于 openai-agents-python + 百炼 glm-5 + Gradio WebUI。
用户提问 → 单个 Agent
├─ list_tables(keyword) # 在 ods 库找相关表
├─ get_table_schema(table) # 看列定义和注释
└─ execute_sql(sql) # 只读 SELECT,≤200 行(SQL 报错自动重试)
→ 用中文总结结果 + 附最终 SQL
readonly_yfkj;execute_sql 拒绝非 SELECT,并把 SQL 包进子查询 + LIMIT 200。schema.json,不每轮查。python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
填好 .env(参考 .env.example):百炼 key、glm-5、Doris 只读账号。
# 1) (首次)抓取表结构到 schema.json —— 需能连通 Doris
python app.py --build-schema
# 2) (可选)验证 LLM 接线,不连 Doris
python app.py --selftest
# 3) 启动 WebUI
python app.py
# 打开 http://localhost:7860
python app.py 默认监听 0.0.0.0:7860,用 supervisor / systemd / docker 守护即可。
要对外暴露,建议加反向代理 + 鉴权(Gradio 支持 auth=(user, pwd),在 build_ui 里加)。
--build-schema。_run 改成 generator,用 Runner.run_streamed() + ResponseTextDeltaEvent 逐字 yield。v1 没做,Gradio 自带 loading 动画够用。load_schema / build_schema 里按表名前缀过滤,别把几百张表全给 agent。.env 已 gitignore。大模型信息.md / 数据库连接信息.md 里是明文,建议从仓库移走。