Metadata-Version: 2.4
Name: zcyclaw
Version: 0.1.3.30
Summary: 政府采购智能顾问 - 基于RAG的法规问答CLI工具
Project-URL: Homepage, https://github.com/brucehuu/zcyclaw
Project-URL: Repository, https://github.com/brucehuu/zcyclaw
Project-URL: Issues, https://github.com/brucehuu/zcyclaw/issues
Author: zcyclaw
License: MIT
License-File: LICENSE
Keywords: ai-agent,cli,government-procurement,rag
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Office/Business
Requires-Python: >=3.11
Requires-Dist: chromadb>=0.5
Requires-Dist: httpx>=0.27
Requires-Dist: loguru>=0.7
Requires-Dist: prompt-toolkit>=3.0
Requires-Dist: pydantic-settings>=2.0
Requires-Dist: pydantic>=2.0
Requires-Dist: python-docx>=1.2.0
Requires-Dist: rich>=13.0
Requires-Dist: typer>=0.12
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.30; extra == 'anthropic'
Provides-Extra: crawler
Requires-Dist: playwright>=1.40; extra == 'crawler'
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest-mock>=3.14; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Provides-Extra: fastembed
Requires-Dist: fastembed>=0.4; extra == 'fastembed'
Provides-Extra: full
Requires-Dist: anthropic>=0.30; extra == 'full'
Requires-Dist: fastapi>=0.115; extra == 'full'
Requires-Dist: fastembed>=0.4; extra == 'full'
Requires-Dist: uvicorn>=0.32; extra == 'full'
Provides-Extra: web
Requires-Dist: fastapi>=0.115; extra == 'web'
Requires-Dist: uvicorn>=0.32; extra == 'web'
Description-Content-Type: text/markdown

# 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 厂商

## 快速开始

```bash
# 安装
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`：

```bash
# 安装 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` 将引导完成以下配置：

1. **选择提供商**：从已注册列表中选择
2. **API Key**：输入对应厂商的 API Key（Ollama 不需要）
3. **模型名称**：可使用默认值，也可自定义为其他模型（如 `deepseek-reasoner`、`glm-4-plus`）
4. **API 地址**：可使用默认值，也可自定义为兼容 OpenAI 协议的第三方地址

也可以在 Web 界面中点击齿轮图标进入设置页，可视化管理所有配置。

### 手动编辑

直接编辑 `~/.zcyclaw/config.json`：

```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_`，双下划线分隔嵌套：

```bash
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 | 是 |

## 可选安装

```bash
# 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
