基于 AI 的消费者维权智能咨询系统,帮助普通消费者了解维权流程、生成法律文书、推荐投诉平台。
| 智能咨询 | 文书工具 |
|---|---|
![]() |
![]() |
- 智能对话咨询:通过对话逐步收集案件信息,提供专业的法律建议
- 法律依据分析:自动匹配相关法律条文(消保法、食安法等)
- 文书生成:一键生成投诉书、举报信、协商函、民事起诉状等法律文书(.docx 格式)
- 平台推荐:智能推荐最适合的投诉平台(12315、12345、黑猫投诉、法院等)
- 流程指导:详细的投诉流程步骤说明
| 组件 | 技术 | 说明 |
|---|---|---|
| 后端框架 | Python 3.9+ / FastAPI | 异步路由、SSE 流式响应 |
| AI 模型 | 智谱 GLM-4-Plus (zhipuai SDK) | 流式生成、结构化信息提取 |
| 文书生成 | python-docx | 模板化法律文书生成 |
| 前端 | Jinja2 + 原生 HTML/CSS/JS | SSE EventSource、DOMParser 安全渲染 |
| 知识库 | JSON 文件 (RAG) | 法律条文、投诉流程、平台规则 |
| 会话存储 | Supabase PostgreSQL (JSONB) | 有状态对话持久化 |
| 文档存储 | Supabase Storage | .docx 文件云存储 |
| 部署 | Vercel Serverless / Docker | 无服务器 + 容器双模式 |
系统核心是一个基于 有限状态机(FSM) 的对话 Agent,通过 6 个对话阶段引导用户完成维权全流程:
- FSM 状态管理:6 个阶段(greeting → situation_analysis → case_summary → guidance → document_preparation → follow_up),通过字段收集阈值和关键词匹配触发状态转换
- Prompt Engineering:每个阶段有独立的提示词模板,动态注入会话上下文(已收集信息、缺失字段、法律条文)
- 结构化信息提取:LLM 在自然语言回复中嵌入
<!--EXTRACTED_JSON-->注释块,Agent 通过正则解析提取结构化数据,更新case_info - 知识库注入(RAG):根据案件类型从 JSON 知识库中检索相关法律条文、投诉流程、平台信息,注入到 LLM 提示词中
- 对话历史窗口:仅保留最近 10 条消息作为上下文,平衡信息量与 token 消耗
每条用户消息的完整处理链路:
- 信息收集阶段:构建上下文 → LLM 流式生成 → 正则提取 JSON → 更新 case_info → 判断是否满足最小字段集 → 自动触发案件总结
- 案件总结阶段:关键词检测用户意图(确认/修改/其他)→ 确认则注入法律知识生成维权指导,修改则回退到信息收集
- 文书生成阶段:检查文书必需字段 → 缺失则 LLM 追问 → 齐全则触发 python-docx 模板生成 → 上传到 Supabase Storage
系统采用六阶段对话流程,引导用户从问题描述到文书生成:
law-agent/
├── main.py # FastAPI 入口
├── config.py # 配置管理
├── requirements.txt # 依赖列表
├── vercel.json # Vercel 部署配置
├── api/index.py # Vercel Serverless 入口
├── Dockerfile # Docker 镜像配置
├── docker-compose.yml # Docker Compose 编排
├── .env # 环境变量(API Key)
│
├── app/
│ ├── dependencies.py # 共享服务实例
│ ├── routers/
│ │ ├── chat.py # 对话 API (SSE 流式)
│ │ ├── document.py # 文书生成 API
│ │ └── platform.py # 平台推荐 API
│ │
│ ├── services/
│ │ ├── agent.py # 核心 Agent 逻辑
│ │ ├── llm.py # 智谱 GLM 封装
│ │ ├── document_generator.py # 文书生成
│ │ ├── platform_recommender.py # 平台推荐
│ │ ├── knowledge.py # 知识库加载
│ │ ├── session_store.py # Supabase 会话存储
│ │ └── doc_storage.py # Supabase 文档存储
│ │
│ ├── models/
│ │ ├── schemas.py # 数据模型
│ │ └── enums.py # 枚举定义
│ │
│ └── prompts/
│ ├── system_prompts.py # 系统提示词
│ ├── consultation.py # 咨询提示词
│ └── document_prompts.py # 文书生成提示词
│
├── knowledge/
│ ├── laws/ # 法律条文(5部法律)
│ ├── processes/ # 投诉流程(5个平台)
│ ├── platforms/ # 平台信息与推荐规则
│ └── templates/ # 文书模板(6种)
│
├── templates/
│ └── index.html # 前端页面
│
├── static/
│ ├── css/style.css
│ ├── js/chat.js
│ └── generated/ # 生成的文书存放目录
│
└── docs/
└── images/ # 文档图示
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
pip install -r requirements.txt复制环境变量模板并填入你的智谱 AI API Key:
cp .env.example .env编辑 .env 文件:
ZHIPUAI_API_KEY=your_api_key_here
GLM_MODEL=glm-4-plus
获取 API Key:访问 open.bigmodel.cn 注册并创建 API Key
python main.py服务启动后访问 http://localhost:8000
前往 supabase.com 创建项目,然后执行以下 SQL 创建会话表:
CREATE TABLE sessions (
session_id TEXT PRIMARY KEY,
data JSONB NOT NULL,
updated_at TIMESTAMPTZ DEFAULT NOW()
);在 Supabase Storage 中创建名为 documents 的存储桶(设为公开)。
# 安装 Vercel CLI
npm i -g vercel
# 部署
vercel --prodprintf '%s' "your_zhipuai_api_key" | vercel env add ZHIPUAI_API_KEY production
printf '%s' "glm-4-plus" | vercel env add GLM_MODEL production
printf '%s' "https://xxx.supabase.co" | vercel env add SUPABASE_URL production
printf '%s' "your_supabase_anon_key" | vercel env add SUPABASE_KEY production注意:使用
printf '%s'而非echo避免尾部换行导致 API Key 无效。
配置完成后重新部署:vercel --prod
cp .env.example .env
# 编辑 .env 填入 API Keydocker-compose up -d服务启动后访问 http://localhost:8000
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
# 重新构建
docker-compose up -d --build| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/chat/start |
创建对话会话 |
| POST | /api/chat/message |
发送消息(SSE 流式响应) |
| GET | /api/chat/history/{session_id} |
获取对话历史 |
| POST | /api/document/generate |
生成法律文书 |
| GET | /api/document/download/{file_id} |
下载文书 (.docx) |
| GET | /api/document/types |
文书类型列表 |
| POST | /api/platform/recommend |
获取平台推荐 |
| GET | /health |
健康检查 |
- 商品质量问题:假货、损坏、与描述不符
- 虚假宣传:夸大宣传、虚假广告
- 退款纠纷:拒绝退款、拖延退款
- 食品安全:过期、变质、不卫生
- 服务质量问题:服务态度差、服务缩水
| 文书 | 用途 |
|---|---|
| 投诉书 | 向市场监督管理局投诉 |
| 举报信 | 举报商家违法行为 |
| 协商函 | 向商家发送正式协商函 |
| 民事起诉状 | 向法院提起诉讼 |
| 证据清单 | 整理维权证据 |
| 索赔函 | 正式索赔函件 |
系统会根据案件情况智能推荐:
- 12315 平台 - 政府权威渠道,有执法权
- 12345 热线 - 政务服务便民热线
- 黑猫投诉 - 新浪旗下媒体平台,舆论压力大
- 消费者协会 - 免费调解服务
- 人民法院 - 最终法律手段
- 本系统仅供参考,不构成正式法律意见
- 复杂案件建议咨询专业律师
- 生成的文书请检查后使用,补充个人信息
MIT







