From 63661298ddf5f3de56c2d873ac53ec12ffa46420 Mon Sep 17 00:00:00 2001 From: selfrelease Date: Mon, 29 Jun 2026 09:54:25 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=E6=8A=95=E6=A0=87?= =?UTF-8?q?=E7=94=A8=E9=A1=B9=E7=9B=AE=E6=A6=82=E8=BF=B0=E6=96=87=E6=A1=A3?= =?UTF-8?q?=EF=BC=88MD=20+=20Word=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/PROJECT_OVERVIEW.docx | Bin 0 -> 17131 bytes docs/PROJECT_OVERVIEW.md | 284 +++++++++++++++++++++++++++++++++++++ 2 files changed, 284 insertions(+) create mode 100644 docs/PROJECT_OVERVIEW.docx create mode 100644 docs/PROJECT_OVERVIEW.md diff --git a/docs/PROJECT_OVERVIEW.docx b/docs/PROJECT_OVERVIEW.docx new file mode 100644 index 0000000000000000000000000000000000000000..9b95426ff5a2697b63223627632df85f93d06e84 GIT binary patch literal 17131 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 literal 0 HcmV?d00001 diff --git a/docs/PROJECT_OVERVIEW.md b/docs/PROJECT_OVERVIEW.md new file mode 100644 index 0000000..98db025 --- /dev/null +++ b/docs/PROJECT_OVERVIEW.md @@ -0,0 +1,284 @@ +# 政智通 — 政务AI智能应用平台 + +## 一、项目概述 + +**项目名称**:政智通 — 政务AI智能应用平台 + +**项目定位**:面向政府部门的AI智能办公平台,以大语言模型为核心引擎,覆盖公文写作、政策解读、政务宣传、数据治理、便民服务等多场景,提升行政效能、赋能智慧政务。 + +**用途**:投标 — 入驻法治网平台 + +--- + +## 二、开发语言与技术栈 + +| 层级 | 技术选型 | 版本 | +|------|----------|------| +| 后端语言 | Go (Golang) | 1.25.0 | +| 后端框架 | Chi Router | v5.2.5 | +| 前端语言 | TypeScript | - | +| 前端框架 | Next.js (App Router) / React | - | +| 前端样式 | Tailwind CSS / shadcn/ui | - | +| 数据库 | PostgreSQL | 15+ | +| 缓存 | Redis | 7+ | +| AI 引擎 | 通义千问 (Qwen) / OpenAI 兼容接口 | - | +| PPT 生成微服务 | Python | - | +| 认证 | JWT (golang-jwt/v5) | - | +| 日志 | zerolog | - | + +--- + +## 三、源代码规模 + +| 模块 | 文件类型 | 文件数 | 代码行数 | +|------|----------|--------|----------| +| 后端服务 | Go (`.go`) | 52 | 10,528 | +| 前端应用 | TSX (`.tsx`) | - | 14,356 | +| 前端应用 | TS (`.ts`) | - | 1,496 | +| 前端应用 | CSS (`.css`) | - | 140 | +| PPT 微服务 | Python (`.py`) | - | 1,367 | +| **合计** | | **~143 文件** | **~27,887 行** | + +--- + +## 四、系统架构 + +### 4.1 整体架构 + +``` +┌─────────────────────────────────────────────┐ +│ 前端 (Next.js) │ +│ ┌─────────┐ ┌──────────┐ ┌──────────────┐ │ +│ │ 门户端 │ │ 管理后台 │ │ 平台管理端 │ │ +│ │(Portal) │ │(Admin) │ │(Platform) │ │ +│ └────┬────┘ └────┬─────┘ └──────┬───────┘ │ +│ └───────────┴──────────────┘ │ +│ REST API │ +└───────────────────┬─────────────────────────┘ + │ +┌───────────────────┴─────────────────────────┐ +│ 后端 (Go / Chi Router) │ +│ ┌──────┐ ┌───────┐ ┌──────┐ ┌──────────┐ │ +│ │认证 │ │应用 │ │对话 │ │知识库 │ │ +│ │中间件 │ │商店 │ │引擎 │ │管理 │ │ +│ └──────┘ └───────┘ └──────┘ └──────────┘ │ +│ ┌──────┐ ┌───────┐ ┌──────┐ ┌──────────┐ │ +│ │PPT │ │文档 │ │审计 │ │平台管理 │ │ +│ │生成 │ │模板 │ │日志 │ │ │ │ +│ └──────┘ └───────┘ └──────┘ └──────────┘ │ +└──────┬──────────────────────┬───────────────┘ + │ │ +┌──────┴──────┐ ┌──────┴──────┐ +│ PostgreSQL │ │ Redis │ +│ (持久化) │ │ (缓存) │ +└─────────────┘ └─────────────┘ +``` + +### 4.2 后端模块结构 + +| 目录 | 职责 | +|------|------| +| `server/cmd/server/` | 主入口、路由注册 | +| `server/internal/handler/` | HTTP 请求处理器(对话、应用商店、知识库、PPT、文件等) | +| `server/internal/middleware/` | 中间件(认证、租户隔离、日志) | +| `server/internal/config/` | 配置管理 | +| `server/internal/response/` | 统一响应格式 | +| `server/pkg/auth/` | JWT 认证工具包 | +| `server/pkg/db/` | 数据库连接与查询 | +| `server/pkg/llm/` | 大语言模型接口封装 | +| `server/pkg/embedding/` | 向量嵌入 | +| `server/pkg/chunker/` | 文档分块 | +| `server/pkg/tenant/` | 多租户隔离 | +| `server/migrations/` | 数据库迁移脚本(17 个迁移 + 种子数据) | + +### 4.3 前端模块结构 + +| 目录 | 职责 | +|------|------| +| `apps/web/src/app/(portal)/` | 门户端:应用商店、对话、知识库、工作台 | +| `apps/web/src/app/(admin)/` | 管理后台:用户管理、应用管理、审计、分析、模型配置 | +| `apps/web/src/app/(auth)/` | 认证:登录、注册 | +| `apps/web/src/app/platform/` | 平台管理:组织管理、供应商、配额、审计 | +| `apps/web/src/components/` | 通用组件(UI 基础组件、布局、应用卡片) | +| `apps/web/src/hooks/` | 自定义 Hooks | +| `apps/web/src/lib/` | 工具函数库 | +| `apps/web/src/stores/` | 状态管理 | + +--- + +## 五、核心功能模块 + +### 5.1 政务应用分类 + +| 分类 | 说明 | +|------|------| +| 公文写作 | 公文拟稿、会议纪要、文件摘要 | +| 政策解读 | 法规问答、政策影响分析 | +| 政务宣传 | 宣传稿件、信息发布 | +| 数据治理 | 数据分析、综合研判 | +| 便民服务 | 群众来信回复、咨询答复 | +| 信息化工具 | 开发辅助、系统运维 | +| 组织人事 | 干部考核、人事管理 | +| 招商引资 | 项目评估、投资分析 | +| 翻译外事 | 中英互译、外事用语 | +| 综合应用 | 其他政务场景 | + +### 5.2 预置应用 + +| 应用名称 | 类型 | 功能说明 | +|----------|------|----------| +| 政策法规问答 | 对话型 | 法规条款查询与解读 | +| 公文写作助手 | 对话型 | 各类公文拟稿 | +| 群众来信回复 | 对话型 | 群众诉求回复建议 | +| 会议纪要生成 | 补全型 | 会议记录整理 | +| 公文摘要提取 | 补全型 | 文件要点提取 | +| 翻译助手 | 补全型 | 政务中英互译 | +| 招商项目评估 | 工作流 | 多维度项目评估 | +| 政策影响分析 | 工作流 | 政策多维度影响评估 | +| 综合研判助手 | 智能体 | 数据分析与报告生成 | +| 干部考核助手 | 智能体 | 绩效分析与评语生成 | +| 智能 PPT 生成 | PPT 生成 | 上传文档/输入主题,AI 生成原生可编辑 PPTX | + +### 5.3 系统功能清单 + +| 功能域 | 功能项 | +|--------|--------| +| 用户与权限 | 注册/登录、JWT 认证、角色管理、多租户隔离 | +| 应用管理 | 应用商店、分类浏览、应用创建、收藏评分 | +| AI 对话 | 多轮对话、流式输出、上下文管理、对话历史 | +| 知识库 | 文档上传、文档分块、向量嵌入、知识检索 | +| PPT 生成 | 多种输入源、多种风格、AI 生图、可编辑 PPTX 导出 | +| 文档模板 | 模板管理、模板应用 | +| 平台管理 | 组织管理、模型供应商配置、配额管理 | +| 审计与安全 | 操作审计日志、安全审计、用量统计 | +| 数据分析 | 使用分析、模型调用统计、用户行为分析 | + +--- + +## 六、数据库设计 + +### 6.1 数据库迁移版本 + +共 **17 个迁移版本**,涵盖: + +| 迁移 | 内容 | +|------|------| +| 000001 | 初始化 schema | +| 000002 | 分类与应用 | +| 000003 | 评价、收藏、评分 | +| 000004 | 用量日志 | +| 000005 | 模型、配额、审计 | +| 000006 | PPT 任务 | +| 000007 | PPT 生成器类型 | +| 000008 | 文档模板 | +| 000009 | 对话命名 | +| 000010 | 知识库 ID | +| 000011 | 文档内容 | +| 000012 | 用量日志消息 | +| 000013 | 组织机构 | +| 000014 | 多租户 | +| 000015 | 平台管理 | +| 000016 | 对话与消息 | +| 000017 | 清理旧对话表 | + +### 6.2 种子数据 + +包含法治网、发改委、公安、科技、信访等多领域种子数据,支持快速部署演示。 + +--- + +## 七、部署架构 + +### 7.1 运行环境 + +| 组件 | 要求 | +|------|------| +| Go | 1.25+ | +| Node.js | 18+ | +| PostgreSQL | 15+ | +| Redis | 7+ | +| Python | 3.10+ (PPT Worker) | + +### 7.2 部署方式 + +- **Docker 部署**:提供 `docker/` 配置目录,支持容器化部署 +- **原生部署**:通过 `Makefile` 管理构建与启动 +- **部署脚本**:`deploy.sh` 支持自动化部署 + +### 7.3 服务端口 + +| 服务 | 端口 | +|------|------| +| 后端 API | 8080 | +| 前端 Web | 3000 | +| PostgreSQL | 5432 | +| Redis | 6379 | + +--- + +## 八、安全设计 + +| 安全措施 | 说明 | +|----------|------| +| JWT 认证 | 短期 Token + 刷新机制 | +| 多租户隔离 | 基于 `session.tenant_id` 的数据隔离 | +| 密钥管理 | 环境变量管理,不进 Git | +| SQL 注入防御 | 参数化查询 | +| XSS 防御 | 自动转义 + CSP | +| CSRF 防御 | SameSite Cookie | +| 操作审计 | 审计日志记录,保留 ≥ 6 个月 | +| 限流熔断 | 登录限流、接口限流 | + +--- + +## 九、项目目录结构 + +``` +GovAI/ +├── server/ # Go 后端服务 +│ ├── cmd/ # 命令入口 +│ │ ├── server/ # 主服务入口与路由 +│ │ ├── check-providers/ # 供应商检查工具 +│ │ ├── seed-providers/ # 供应商种子工具 +│ │ ├── embed-chunks/ # 向量嵌入工具 +│ │ └── ... # 其他命令行工具 +│ ├── internal/ # 内部业务逻辑 +│ │ ├── handler/ # HTTP 处理器 +│ │ ├── middleware/ # 中间件 +│ │ ├── config/ # 配置 +│ │ ├── response/ # 统一响应 +│ │ ├── logger/ # 日志 +│ │ └── metrics/ # 指标 +│ ├── pkg/ # 公共工具包 +│ │ ├── auth/ # 认证 +│ │ ├── db/ # 数据库 +│ │ ├── llm/ # 大模型接口 +│ │ ├── embedding/ # 向量嵌入 +│ │ ├── chunker/ # 文档分块 +│ │ ├── tenant/ # 多租户 +│ │ └── dify/ # Dify 集成 +│ └── migrations/ # 数据库迁移与种子数据 +├── apps/web/ # Next.js 前端 +│ └── src/ +│ ├── app/ # 页面路由 +│ │ ├── (portal)/ # 门户端 +│ │ ├── (admin)/ # 管理后台 +│ │ ├── (auth)/ # 认证页面 +│ │ └── platform/ # 平台管理端 +│ ├── components/ # 通用组件 +│ ├── hooks/ # 自定义 Hooks +│ ├── lib/ # 工具函数 +│ └── stores/ # 状态管理 +├── ppt-worker/ # PPT 生成微服务 (Python) +├── docker/ # Docker 配置 +├── docs/ # 项目文档 +├── Makefile # 构建管理 +├── deploy.sh # 部署脚本 +└── README.md # 项目说明 +``` + +--- + +## 十、总结 + +政智通平台是一个基于 Go + Next.js 的前后端分离架构的政务AI智能应用平台,总代码量约 **2.8 万行**,涵盖 52 个 Go 源文件和 91 个前端 TypeScript/TSX 文件。平台集成了大语言模型能力,提供公文写作、政策解读、智能PPT生成等 11 个预置应用,支持多租户隔离、知识库管理、审计安全等企业级功能,满足政府部门智慧办公的需求。