政府采购智能顾问 - 基于RAG的法规问答CLI工具
Project description
zcyclaw
政府采购智能顾问 — 基于 RAG 的法规问答 CLI & Web 工具。
独立于采购平台,基于中国政府采购法律法规提供专业问答、采购方式推荐等功能。核心开源,数据本地存储,隐私第一。
功能
- 法规智能问答:基于 16 部核心法规(766 条法条),回答自动标注法条来源
- Web 聊天界面:苹果风格 UI,流式输出,历史对话自动保存
- API Key 管理后台:浏览器内管理所有 LLM 提供商配置,无需 CLI 操作
- 历史对话记录:侧边栏查看、搜索、切换历史对话,持久化到纯文本文件
- 流式输出:token-by-token 逐字显示,体验流畅
- 多 LLM 支持:DeepSeek / 智谱 GLM / 通义千问 / Moonshot / MiniMax / OpenAI / Ollama / Anthropic
- 开箱即用:预构建法规数据随包分发,安装即可使用
- 本地优先:向量库、配置、日志全部本地存储,API Key 直连 LLM 厂商
快速开始
# 安装
uv tool install zcyclaw
# 或使用 pip
pip install zcyclaw
# 初始化配置(选择 LLM 提供商 + 输入 API Key)
zcyclaw init
# 单次问答
zcyclaw ask "询价采购需要满足什么条件?"
# 交互式多轮问答
zcyclaw ask -i
# 启动 Web 聊天界面
zcyclaw web
# 更新法规数据
zcyclaw update
# 查看数据统计
zcyclaw stats
Web 界面
启动 Web 服务后,浏览器访问 http://127.0.0.1:8765:
# 安装 Web 依赖
pip install "zcyclaw[web]"
# 启动服务
zcyclaw web
功能特性
- 苹果风格 UI:iMessage 气泡式聊天,毛玻璃导航栏,macOS 系统设置风格配置页
- 流式输出:实时逐字显示 AI 回答
- 历史对话:左侧侧边栏管理历史对话,支持搜索、切换、删除
- 对话持久化:所有对话自动保存到
~/.zcyclaw/conversations/纯文本文件 - API Key 管理:点击齿轮图标进入设置页,可视化管理所有提供商的 API Key 和参数
- 默认提供商切换:在设置页一键切换默认 LLM 提供商
- 移动端适配:响应式布局,支持手机和平板访问
数据存储
| 路径 | 说明 |
|---|---|
~/.zcyclaw/config.json |
配置文件(API Key、提供商参数) |
~/.zcyclaw/conversations/ |
历史对话记录(纯文本,每个会话一个文件) |
~/.zcyclaw/data/chroma/ |
法规向量数据库 |
~/.zcyclaw/logs/ |
对话日志(JSONL 格式) |
配置
配置文件位置:~/.zcyclaw/config.json
交互式配置
运行 zcyclaw init 将引导完成以下配置:
- 选择提供商:从已注册列表中选择
- API Key:输入对应厂商的 API Key(Ollama 不需要)
- 模型名称:可使用默认值,也可自定义为其他模型(如
deepseek-reasoner、glm-4-plus) - API 地址:可使用默认值,也可自定义为兼容 OpenAI 协议的第三方地址
也可以在 Web 界面中点击齿轮图标进入设置页,可视化管理所有配置。
手动编辑
直接编辑 ~/.zcyclaw/config.json:
{
"default_provider": "deepseek",
"providers": {
"deepseek": {
"api_key": "sk-xxx",
"base_url": "https://api.deepseek.com/v1",
"model": "deepseek-chat",
"temperature": 0.3,
"max_tokens": 2048
},
"minimax": {
"api_key": "sk-xxx",
"base_url": "https://api.minimax.chat/v1",
"model": "MiniMax-Text-01",
"temperature": 0.3,
"max_tokens": 2048
}
}
}
环境变量覆盖
前缀 ZCYCLAW_,双下划线分隔嵌套:
export ZCYCLAW_PROVIDERS__DEEPSEEK__API_KEY=sk-xxx
export ZCYCLAW_PROVIDERS__DEEPSEEK__MODEL=deepseek-reasoner
export ZCYCLAW_DEFAULT_PROVIDER=deepseek
支持的提供商
| 提供商 | 默认模型 | 需要API Key |
|---|---|---|
| DeepSeek | deepseek-chat | 是 |
| 智谱 GLM | glm-4-flash | 是 |
| 通义千问 | qwen-turbo | 是 |
| Moonshot | moonshot-v1-8k | 是 |
| MiniMax | MiniMax-Text-01 | 是 |
| OpenAI | gpt-4o-mini | 是 |
| Ollama | qwen2.5:7b | 否 |
| Anthropic | claude-sonnet-4-20250514 | 是 |
可选安装
# Web 界面支持(FastAPI + Uvicorn)
uv tool install "zcyclaw[web]"
# Anthropic 后端支持
uv tool install "zcyclaw[anthropic]"
# 本地 Embedding(fastembed/BGE-M3)
uv tool install "zcyclaw[fastembed]"
# 完整安装(Web + Anthropic + FastEmbed)
uv tool install "zcyclaw[full]"
内置法规
| 效力层级 | 法规 |
|---|---|
| 法律 | 政府采购法、招标投标法 |
| 行政法规 | 政府采购法实施条例、招标投标法实施条例 |
| 部门规章 | 货物和服务招标投标管理办法、非招标采购方式管理办法、竞争性磋商采购方式管理暂行办法、框架协议采购方式管理暂行办法、促进中小企业发展管理办法、需求管理办法、信息公开办法、评审专家管理办法、进口产品管理办法、代理机构管理暂行办法、政府和社会资本合作项目政府采购管理办法、关于促进政府采购公平竞争优化营商环境的通知 |
技术栈
Python 3.11+ / Typer / Rich / FastAPI / Pydantic / ChromaDB / httpx / loguru
许可证
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zcyclaw-0.1.3.30.tar.gz.
File metadata
- Download URL: zcyclaw-0.1.3.30.tar.gz
- Upload date:
- Size: 374.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
841bc3df284cca1bf3a209ef69f91b6f43e23d15d2321f019c7b13b1893ee15c
|
|
| MD5 |
41a91a77483713a63b8de3c5883c6006
|
|
| BLAKE2b-256 |
a25670cf260bea41857b9f230acac622872fe49f25245d82a6c7025bb8c9f394
|
File details
Details for the file zcyclaw-0.1.3.30-py3-none-any.whl.
File metadata
- Download URL: zcyclaw-0.1.3.30-py3-none-any.whl
- Upload date:
- Size: 159.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8b258c53d7a00cdb863b2992a9a6be5a07b679e98fb50fa155d3bb89a4fd162
|
|
| MD5 |
9d933b1127c8f379fa3a65aa41b92b39
|
|
| BLAKE2b-256 |
50a6fb0dac5e78477478b1716cdc865cedbf5b5a3c17aaaedfa030596472401e
|