chore: align V2 into final four-project layout
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# AI合同平台V2与共享AI重构任务编排
|
||||
# AI合同平台V2与共享AI重构任务编排
|
||||
|
||||
日期:2026-06-22
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
正确做法是:
|
||||
|
||||
> 以 `D:\yuqei-project\ai-contract-platform` 的 `main` 分支作为唯一 V2 主线,把 shared 重构吸收到 V2 workspace 中,形成“合同产品平台 + 统一 AI 中台 + OpenAPI 契约 + 正式 SDK + 统一基础设施”的一体化工程。
|
||||
> 以 `D:\yuqei-project\ai-contract-platform` 的 `main` 分支作为唯一 V2 主线,从第一天就落成 `yuqei-contract-platform`、`yuqei-ai-platform`、`yuqei-ai-sdk-python`、`yuqei-infra` 四个最终工程,形成“合同产品平台 + 统一 AI 中台 + OpenAPI 契约 + 正式 SDK + 统一基础设施”的一体化工程。
|
||||
|
||||
旧 shared 仓库不再继续扩展新功能,只作为历史参考、行为对照、代码迁移素材和数据导出来源。
|
||||
|
||||
@@ -20,30 +20,28 @@
|
||||
| `D:\yuqei-project\ai-contract-platform-v1` | V1 旧系统参考目录 | 只读参考,不继续开发新功能 |
|
||||
| `D:\yuqei-project\shared-ai-platform` | 旧 Python shared 原型 | 不新增能力,仅参考可复用代码和数据处理经验 |
|
||||
| `D:\yuqei-project\shared-ai-platform-java` | 旧 Java shared 主线 | 不新增能力,仅参考模块边界和接口设计 |
|
||||
| `D:\yuqei-project\shared-ai-python-sdk` | 旧 Python SDK 参考 | 参考客户端结构,V2 SDK 在 `sdks/python` 重做 |
|
||||
| `D:\yuqei-project\shared-ai-python-sdk` | 旧 Python SDK 参考 | 参考客户端结构,V2 SDK 在 `yuqei-ai-sdk-python` 重做 |
|
||||
| `D:\yuqei-project\shared-java-libs` | Java 公共库参考 | V2 当前不采用 Java 主线时不继续扩展 |
|
||||
|
||||
## 3. V2 新目录承载关系
|
||||
|
||||
V2 不再采用旧式 `shared-*` 多仓混合,也不采用临时混放路线。当前 `main` 从第一天就按四个最终工程组织:
|
||||
|
||||
```text
|
||||
apps/
|
||||
contract-web/ # 合同平台前端
|
||||
yuqei-contract-platform/
|
||||
apps/contract-web/ # 合同平台前端
|
||||
services/contract-api/ # 合同业务后端
|
||||
packages/design-system/ # 设计系统、组件规范、tokens
|
||||
packages/contract-openapi/ # 合同业务 API 契约
|
||||
|
||||
services/
|
||||
contract-api/ # 合同业务后端
|
||||
ai-platform-api/ # 新共享 AI 中台服务
|
||||
worker/ # 异步任务、文档解析、索引、导出
|
||||
yuqei-ai-platform/
|
||||
services/ai-platform-api/ # 新共享 AI 中台服务
|
||||
services/worker/ # 异步任务、文档解析、索引、导出
|
||||
packages/ai-openapi/ # AI 中台 API 契约
|
||||
|
||||
packages/
|
||||
design-system/ # 设计系统、组件规范、tokens
|
||||
contract-openapi/ # 合同业务 API 契约
|
||||
ai-openapi/ # AI 中台 API 契约
|
||||
yuqei-ai-sdk-python/ # 新正式 Python SDK
|
||||
|
||||
sdks/
|
||||
python/ # 新正式 Python SDK
|
||||
typescript/ # 前端或 Node 服务 SDK
|
||||
|
||||
infra/
|
||||
yuqei-infra/
|
||||
docker/
|
||||
compose/
|
||||
nginx/
|
||||
@@ -54,12 +52,11 @@ infra/
|
||||
|
||||
shared 的新形态不是一个旧式 `shared-*` 大杂烩仓库,而是:
|
||||
|
||||
- `services/ai-platform-api`:共享 AI 中台服务。
|
||||
- `packages/ai-openapi`:AI 中台契约真相源。
|
||||
- `sdks/python`、`sdks/typescript`:跨服务调用边界。
|
||||
- `services/worker`:AI、知识库、文档解析、导出等异步任务执行。
|
||||
- `packages/design-system`:前端体验统一,但不急于抽复杂组件库。
|
||||
|
||||
- `yuqei-ai-platform/services/ai-platform-api`:共享 AI 中台服务。
|
||||
- `yuqei-ai-platform/packages/ai-openapi`:AI 中台契约真相源。
|
||||
- `yuqei-ai-sdk-python`:跨服务调用边界。
|
||||
- `yuqei-ai-platform/services/worker`:AI、知识库、文档解析、导出等异步任务执行。
|
||||
- `yuqei-contract-platform/packages/design-system`:前端体验统一,但不急于抽复杂组件库。
|
||||
## 4. 关键原则
|
||||
|
||||
1. 合同业务流程不进 shared。
|
||||
@@ -140,11 +137,11 @@ S6 安全、性能、部署和数据迁移
|
||||
- 缓存/队列:Redis。
|
||||
- 对象存储:MinIO/S3。
|
||||
- 搜索:PostgreSQL FTS 起步,后续可扩展 OpenSearch/Meilisearch。
|
||||
- 初始化 monorepo 工具链。
|
||||
- 初始化四个最终工程的根目录、构建脚本和边界校验。
|
||||
- 初始化 `contract-api`。
|
||||
- 初始化 `ai-platform-api`。
|
||||
- 初始化 `contract-web`。
|
||||
- 初始化 `packages/contract-openapi` 和 `packages/ai-openapi`。
|
||||
- 初始化 `yuqei-contract-platform/packages/contract-openapi` 和 `yuqei-ai-platform/packages/ai-openapi`。
|
||||
- 初始化基础 Docker Compose。
|
||||
- 建立统一配置、日志、健康检查、错误码规范。
|
||||
|
||||
@@ -195,15 +192,15 @@ GET /api/v1/audit/ai-runs
|
||||
|
||||
任务:
|
||||
|
||||
- 在 `packages/ai-openapi` 固化 AI 中台契约。
|
||||
- 在 `sdks/python` 实现 Python SDK:
|
||||
- 在 `yuqei-ai-platform/packages/ai-openapi` 固化 AI 中台契约。
|
||||
- 在 `yuqei-ai-sdk-python` 实现 Python SDK:
|
||||
- 同步 client
|
||||
- 异步 client
|
||||
- SSE 事件解析
|
||||
- 类型定义
|
||||
- 错误映射
|
||||
- 超时、重试、trace id
|
||||
- 在 `sdks/typescript` 实现前端或 Node 侧基础 client。
|
||||
- 如确需前端或 Node 侧直接调用 AI 中台,另建 `yuqei-ai-sdk-typescript` 并按同样契约生成。
|
||||
- 建立 SDK contract tests。
|
||||
|
||||
验收:
|
||||
@@ -329,8 +326,8 @@ docs/adr/0001-v2-technology-stack.md
|
||||
输出目录:
|
||||
|
||||
```text
|
||||
packages/ai-openapi/
|
||||
packages/contract-openapi/
|
||||
yuqei-ai-platform/packages/ai-openapi/
|
||||
yuqei-contract-platform/packages/contract-openapi/
|
||||
```
|
||||
|
||||
内容:
|
||||
@@ -344,9 +341,9 @@ packages/contract-openapi/
|
||||
输出目录:
|
||||
|
||||
```text
|
||||
services/contract-api/
|
||||
services/ai-platform-api/
|
||||
services/worker/
|
||||
yuqei-contract-platform/services/contract-api/
|
||||
yuqei-ai-platform/services/ai-platform-api/
|
||||
yuqei-ai-platform/services/worker/
|
||||
```
|
||||
|
||||
内容:
|
||||
@@ -362,8 +359,8 @@ services/worker/
|
||||
输出目录:
|
||||
|
||||
```text
|
||||
apps/contract-web/
|
||||
packages/design-system/
|
||||
yuqei-contract-platform/apps/contract-web/
|
||||
yuqei-contract-platform/packages/design-system/
|
||||
```
|
||||
|
||||
内容:
|
||||
@@ -379,10 +376,10 @@ packages/design-system/
|
||||
输出目录:
|
||||
|
||||
```text
|
||||
infra/compose/
|
||||
infra/docker/
|
||||
infra/nginx/
|
||||
infra/observability/
|
||||
yuqei-infra/compose/
|
||||
yuqei-infra/docker/
|
||||
yuqei-infra/nginx/
|
||||
yuqei-infra/observability/
|
||||
```
|
||||
|
||||
内容:
|
||||
|
||||
@@ -69,7 +69,7 @@ V2 启动后建议:
|
||||
|
||||
当前定位是 Python 原型 + 文档仓。
|
||||
|
||||
V2 中建议:
|
||||
V2 中执行:
|
||||
|
||||
- 保留为历史原型和迁移资料。
|
||||
- 不作为生产 AI 中台主线。
|
||||
@@ -91,9 +91,9 @@ V2 中建议:
|
||||
|
||||
当前 SDK 有保留价值,但建议重写为 V2 正式 SDK。
|
||||
|
||||
V2 中建议:
|
||||
V2 中执行:
|
||||
|
||||
- 改名为 `yuqei-ai-sdk-python` 或在新 monorepo 中放入 `sdks/python`。
|
||||
- 正式工程名为 `yuqei-ai-sdk-python`。
|
||||
- SDK 由 OpenAPI 契约生成基础客户端,再手写业务友好封装。
|
||||
- 合同系统只能通过 SDK 或 OpenAPI client 调用 AI 中台。
|
||||
- 删除 V1 中 vendored SDK 副本。
|
||||
@@ -110,31 +110,35 @@ V2 中建议:
|
||||
|
||||
## 4. 新仓库与模块划分
|
||||
|
||||
### 4.1 推荐方案:V2 workspace monorepo
|
||||
### 4.1 推荐方案:四个最终工程一次到位
|
||||
|
||||
为了避免多个仓库在重构初期版本漂移,建议 V2 先采用一个 workspace monorepo:
|
||||
本次重构不采用临时混放路线。V2 从第一天开始就按四个最终工程边界开发。当前 `main` 分支只是一条统一开发线,根目录直接体现最终架构边界:
|
||||
|
||||
```text
|
||||
yuqei-platform-v2/
|
||||
apps/
|
||||
contract-web/ # 合同平台 Web 前端
|
||||
admin-web/ # 可选,若管理区需要独立部署
|
||||
ai-contract-platform/
|
||||
yuqei-contract-platform/
|
||||
apps/
|
||||
contract-web/ # 合同平台 Web 前端
|
||||
admin-web/ # 可选,若管理区需要独立部署
|
||||
|
||||
services/
|
||||
contract-api/ # 合同业务后端
|
||||
ai-platform-api/ # 统一 AI 中台
|
||||
worker/ # 文档解析、索引、AI 长任务、通知任务
|
||||
services/
|
||||
contract-api/ # 合同业务后端
|
||||
|
||||
packages/
|
||||
design-system/ # V2 自研设计系统
|
||||
contract-openapi/ # 合同业务 OpenAPI 契约
|
||||
ai-openapi/ # AI 中台 OpenAPI 契约
|
||||
packages/
|
||||
design-system/ # V2 自研设计系统
|
||||
contract-openapi/ # 合同业务 OpenAPI 契约
|
||||
|
||||
sdks/
|
||||
python/ # yuqei-ai-sdk-python
|
||||
typescript/ # 可选,前端或其他 Node 服务调用
|
||||
yuqei-ai-platform/
|
||||
services/
|
||||
ai-platform-api/ # 统一 AI 中台
|
||||
worker/ # 文档解析、索引、AI 长任务、通知任务
|
||||
|
||||
infra/
|
||||
packages/
|
||||
ai-openapi/ # AI 中台 OpenAPI 契约
|
||||
|
||||
yuqei-ai-sdk-python/ # 合同系统调用 AI 中台的正式 Python SDK
|
||||
|
||||
yuqei-infra/
|
||||
docker/
|
||||
compose/
|
||||
nginx/
|
||||
@@ -151,20 +155,21 @@ yuqei-platform-v2/
|
||||
|
||||
说明:
|
||||
|
||||
- 代码在一个 workspace 中统一开发,部署时仍然是独立服务。
|
||||
- 合同系统和 AI 中台边界通过 OpenAPI 和 SDK 固化。
|
||||
- 后续团队规模扩大后,可以再按 `contract-platform`、`ai-platform`、`infra` 拆成独立仓库。
|
||||
- 四个顶层工程从现在开始就是最终边界,不再留下二次拆分的技术债。
|
||||
- 统一 Git 分支只负责降低当前协作成本,不改变工程边界。
|
||||
- 合同系统和 AI 中台通过 OpenAPI 和 SDK 固化边界,部署时仍然是独立服务。
|
||||
- 如果未来因为组织治理必须变成多个物理 Git 仓库,也只是迁移仓库存放方式,不再改变代码结构和系统边界。
|
||||
|
||||
### 4.2 最终逻辑边界与未来仓库命名
|
||||
### 4.2 最终工程边界
|
||||
|
||||
V2 当前采用 monorepo 是为了避免重构初期多仓库版本漂移,但产品和工程边界必须按下面四块执行。未来如果拆成独立仓库,仓库名直接采用下表,避免重新出现旧 `shared-*` 大杂烩结构。
|
||||
V2 产品和工程边界必须按下面四块执行,避免重新出现旧 `shared-*` 大杂烩结构。
|
||||
|
||||
| 最终逻辑仓库/产品线 | 当前 V2 workspace 承载 | 负责内容 | 不负责内容 |
|
||||
| 最终工程 | 当前代码位置 | 负责内容 | 不负责内容 |
|
||||
|---|---|---|---|
|
||||
| `yuqei-contract-platform` | `apps/contract-web`、`services/contract-api`、`packages/contract-openapi`、合同侧 worker 任务 | 企业合同系统:前端、后端、审批、台账、合同仓库、合同房间、权限、合同审计、业务通知 | 模型 provider、Prompt 拼装、RAG 检索、知识库内部表、AI 运行审计 |
|
||||
| `yuqei-ai-platform` | `services/ai-platform-api`、`packages/ai-openapi`、AI 侧 worker 任务 | 统一 AI 中台:模型网关、知识库、RAG、Prompt、法律审查、法条引用、文档智能、AI 审计、质量评测 | 合同审批流、合同台账、合同房间业务状态 |
|
||||
| `yuqei-ai-sdk-python` | `sdks/python` | 合同系统调用 AI 中台的正式 Python SDK,由 OpenAPI 生成基础客户端,再手写业务友好封装 | 业务数据库访问、模型 provider 直连、旧 vendored SDK 兼容层 |
|
||||
| `yuqei-infra` | `infra/*` | 部署、环境变量、监控、日志、备份、发布脚本、安全基线 | 业务功能、AI 业务能力、前端产品体验 |
|
||||
| `yuqei-contract-platform` | `yuqei-contract-platform/apps/contract-web`、`yuqei-contract-platform/services/contract-api`、`yuqei-contract-platform/packages/contract-openapi`、合同侧 worker 任务 | 企业合同系统:前端、后端、审批、台账、合同仓库、合同房间、权限、合同审计、业务通知 | 模型 provider、Prompt 拼装、RAG 检索、知识库内部表、AI 运行审计 |
|
||||
| `yuqei-ai-platform` | `yuqei-ai-platform/services/ai-platform-api`、`yuqei-ai-platform/packages/ai-openapi`、AI 侧 worker 任务 | 统一 AI 中台:模型网关、知识库、RAG、Prompt、法律审查、法条引用、文档智能、AI 审计、质量评测 | 合同审批流、合同台账、合同房间业务状态 |
|
||||
| `yuqei-ai-sdk-python` | `yuqei-ai-sdk-python` | 合同系统调用 AI 中台的正式 Python SDK,由 OpenAPI 生成基础客户端,再手写业务友好封装 | 业务数据库访问、模型 provider 直连、旧 vendored SDK 兼容层 |
|
||||
| `yuqei-infra` | `yuqei-infra/*` | 部署、环境变量、监控、日志、备份、发布脚本、安全基线 | 业务功能、AI 业务能力、前端产品体验 |
|
||||
|
||||
旧模块最终处理方式:
|
||||
|
||||
@@ -172,7 +177,7 @@ V2 当前采用 monorepo 是为了避免重构初期多仓库版本漂移,但
|
||||
|---|---|
|
||||
| `shared-ai-platform-java` | 不作为未来主线;本项目未正式上线前不需要继续做线上兼容,只冻结为旧服务行为对照和接口参考;新 AI 能力不得再写入该模块。 |
|
||||
| `shared-ai-platform` | 保留历史文档、原型和数据处理经验;不再承接生产功能。 |
|
||||
| `shared-ai-python-sdk` | 保留 SDK 定位和测试思想;正式 SDK 在 `sdks/python` 重做,建议包名继续向 `yuqei-ai-sdk-python` 收敛。 |
|
||||
| `shared-ai-python-sdk` | 保留 SDK 定位和测试思想;正式 SDK 在 `yuqei-ai-sdk-python` 重做,建议包名继续向 `yuqei-ai-sdk-python` 收敛。 |
|
||||
| `shared-java-libs` | 如果 V2 不采用 Java 主线,归档为参考,不再扩展。 |
|
||||
| `ai-contract-platform/backend/vendor/shared-ai-platform-sdk` | 最终删除;合同系统内不得再塞一份 SDK 副本。 |
|
||||
|
||||
@@ -188,18 +193,17 @@ AI 中台必须承接模型、Prompt、知识库、RAG、引用依据、运行
|
||||
|
||||
关键技术原则:
|
||||
|
||||
- API 先行:`packages/ai-openapi` 和 `packages/contract-openapi` 是跨边界契约真相源。
|
||||
- API 先行:`yuqei-ai-platform/packages/ai-openapi` 和 `yuqei-contract-platform/packages/contract-openapi` 是跨边界契约真相源。
|
||||
- 长流程可靠:合同审查、文档解析、知识库索引、批量导入等长流程后续接入 durable workflow 方案,例如 Temporal 或同类能力。
|
||||
- 全链路可观测:AI 调用、RAG 命中、Prompt 版本、模型耗时、错误和费用后续纳入 OpenTelemetry 体系。
|
||||
|
||||
防跑偏检查清单:
|
||||
|
||||
- 新 AI 能力先看是否属于 `yuqei-ai-platform`,不要直接写进 `services/contract-api`。
|
||||
- `services/contract-api` 调 AI 只能使用 `yuqei_sdk` 或 OpenAPI 生成客户端。
|
||||
- 新 SDK 代码只能进入 `sdks/python` 或 `sdks/typescript`,不得恢复 `backend/vendor/shared-ai-platform-sdk`。
|
||||
- 新部署、环境变量、监控、备份、发布脚本进入 `infra`。
|
||||
- 新 AI 能力先看是否属于 `yuqei-ai-platform`,不要直接写进 `yuqei-contract-platform/services/contract-api`。
|
||||
- `yuqei-contract-platform/services/contract-api` 调 AI 只能使用 `yuqei_sdk` 或 OpenAPI 生成客户端。
|
||||
- 新 SDK 代码只能进入 `yuqei-ai-sdk-python`;如确需 TypeScript SDK,另建 `yuqei-ai-sdk-typescript`,不得恢复 `backend/vendor/shared-ai-platform-sdk`。
|
||||
- 新部署、环境变量、监控、备份、发布脚本进入 `yuqei-infra`。
|
||||
- 旧 `shared-*` 仓库只能只读参考,不新增功能、不新增依赖。
|
||||
|
||||
### 4.3 为什么不继续多个 shared 仓库
|
||||
|
||||
旧 shared 结构的问题:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# V2 shared 路线防跑偏核查
|
||||
# V2 shared 路线防跑偏核查
|
||||
|
||||
日期:2026-06-22
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
- 正式 SDK
|
||||
- 统一基础设施
|
||||
|
||||
本次补强了主方案中的最终逻辑命名,明确未来拆仓时对应:
|
||||
本次补强了主方案中的最终工程命名,并已把当前代码目录调整为:
|
||||
|
||||
- `yuqei-contract-platform`
|
||||
- `yuqei-ai-platform`
|
||||
- `yuqei-ai-sdk-python`
|
||||
- `yuqei-infra`
|
||||
|
||||
V2 当前保留 monorepo 只是开发阶段的工程组织方式,不代表把边界混在一起。
|
||||
V2 不再采用临时混放路线。当前根目录已经按这四个最终工程组织。
|
||||
|
||||
## 2. 已核查文档
|
||||
|
||||
@@ -35,10 +35,10 @@ V2 当前保留 monorepo 只是开发阶段的工程组织方式,不代表把
|
||||
|
||||
| 目标边界 | 当前代码位置 | 当前状态 |
|
||||
|---|---|---|
|
||||
| `yuqei-contract-platform` | `apps/contract-web`、`services/contract-api`、`packages/contract-openapi` | 已建立 V2 前端壳、合同 API、合同 OpenAPI;合同 API 通过 SDK 调 AI。 |
|
||||
| `yuqei-ai-platform` | `services/ai-platform-api`、`packages/ai-openapi` | 已建立模型配置、知识文档检索、法律问答、AI run audit 的 MVP。 |
|
||||
| `yuqei-ai-sdk-python` | `sdks/python` | 已有 `AiPlatformClient` 和法律问答调用闭环;后续扩展合同审查、生成、改写、履约义务提取。 |
|
||||
| `yuqei-infra` | `infra/compose`、`infra/docker`、`infra/nginx`、`infra/observability`、`infra/backup`、`infra/deploy` | 已建立基础目录和本地 compose 底座;后续补 OpenTelemetry、备份、发布脚本和生产环境模板。 |
|
||||
| `yuqei-contract-platform` | `yuqei-contract-platform/apps/contract-web`、`yuqei-contract-platform/services/contract-api`、`yuqei-contract-platform/packages/contract-openapi` | 已建立 V2 前端壳、合同 API、合同 OpenAPI;合同 API 通过 SDK 调 AI。 |
|
||||
| `yuqei-ai-platform` | `yuqei-ai-platform/services/ai-platform-api`、`yuqei-ai-platform/packages/ai-openapi` | 已建立模型配置、知识文档检索、法律问答、AI run audit 的 MVP。 |
|
||||
| `yuqei-ai-sdk-python` | `yuqei-ai-sdk-python` | 已有 `AiPlatformClient` 和法律问答调用闭环;后续扩展合同审查、生成、改写、履约义务提取。 |
|
||||
| `yuqei-infra` | `yuqei-infra/compose`、`yuqei-infra/docker`、`yuqei-infra/nginx`、`yuqei-infra/observability`、`yuqei-infra/backup`、`yuqei-infra/deploy` | 已建立基础目录和本地 compose 底座;后续补 OpenTelemetry、备份、发布脚本和生产环境模板。 |
|
||||
|
||||
## 4. 旧 shared 处理状态
|
||||
|
||||
@@ -46,7 +46,7 @@ V2 当前保留 monorepo 只是开发阶段的工程组织方式,不代表把
|
||||
|---|---|---|
|
||||
| `shared-ai-platform-java` | 不作为未来主线 | 冻结为行为对照和接口参考;不新增 V2 功能。 |
|
||||
| `shared-ai-platform` | 不作为生产 AI 中台 | 只保留文档、原型和数据处理经验。 |
|
||||
| `shared-ai-python-sdk` | SDK 定位有价值,但实现重做 | 以 `sdks/python` 为正式 SDK 主线。 |
|
||||
| `shared-ai-python-sdk` | SDK 定位有价值,但实现重做 | 以 `yuqei-ai-sdk-python` 为正式 SDK 主线。 |
|
||||
| `shared-java-libs` | V2 不采用 Java 主线 | 归档参考。 |
|
||||
| `backend/vendor/shared-ai-platform-sdk` | 不应恢复 | 合同系统不得再内置 SDK 副本。 |
|
||||
|
||||
@@ -55,15 +55,15 @@ V2 当前保留 monorepo 只是开发阶段的工程组织方式,不代表把
|
||||
- 当前 `main` 分支已经是 V2 主线。
|
||||
- 当前目录没有发现 `backend/vendor/shared-ai-platform-sdk`。
|
||||
- 当前代码没有发现旧 `shared-ai-platform`、`shared-ai-platform-java`、`shared-java-libs` 的生产依赖。
|
||||
- `services/contract-api` 通过 `yuqei_sdk.AiPlatformClient` 调用 AI 中台,没有直接写模型 provider 适配。
|
||||
- `services/ai-platform-api` 正在承接模型配置、知识库检索、法律问答、AI 审计能力。
|
||||
- `packages/ai-openapi` 已描述 AI 中台 API 边界。
|
||||
- `packages/contract-openapi` 已声明 Contract API 只能通过 SDK/OpenAPI client 调 AI Platform。
|
||||
- `yuqei-contract-platform/services/contract-api` 通过 `yuqei_sdk.AiPlatformClient` 调用 AI 中台,没有直接写模型 provider 适配。
|
||||
- `yuqei-ai-platform/services/ai-platform-api` 正在承接模型配置、知识库检索、法律问答、AI 审计能力。
|
||||
- `yuqei-ai-platform/packages/ai-openapi` 已描述 AI 中台 API 边界。
|
||||
- `yuqei-contract-platform/packages/contract-openapi` 已声明 Contract API 只能通过 SDK/OpenAPI client 调 AI Platform。
|
||||
|
||||
## 6. 仍需注意的风险
|
||||
|
||||
1. `sdks/typescript` 还没有正式实现,后续如果前端或 Node 服务要直接调用 AI 中台,需要补契约生成和封装。
|
||||
2. `services/ai-platform-api` 目前还是 MVP,知识库和审计主要是内存实现,后续必须落数据库、迁移脚本和权限。
|
||||
1. TypeScript SDK 还没有正式实现;后续如果前端或 Node 服务确实需要直接调用 AI 中台,应新建 `yuqei-ai-sdk-typescript`,不要恢复 `sdks/*` 旧式结构。
|
||||
2. `yuqei-ai-platform/services/ai-platform-api` 目前还是 MVP,知识库和审计主要是内存实现,后续必须落数据库、迁移脚本和权限。
|
||||
3. OpenTelemetry、费用统计、模型耗时拆解还没有完成,不能把当前 MVP 当成最终可观测能力。
|
||||
4. Temporal 或同类 durable workflow 还未接入,长流程任务需要先用清晰接口预留边界。
|
||||
5. 后续开发中只要出现“为了方便在合同 API 里直接拼 Prompt 或查知识库”的需求,必须回退到 AI 中台边界重新设计。
|
||||
@@ -75,7 +75,7 @@ V2 当前保留 monorepo 只是开发阶段的工程组织方式,不代表把
|
||||
优先顺序:
|
||||
|
||||
1. AI Platform 数据持久化:provider config、prompt template、knowledge document、ai run audit。
|
||||
2. OpenAPI 生成和 SDK 契约测试,让 `sdks/python` 真正成为稳定调用边界。
|
||||
2. OpenAPI 生成和 SDK 契约测试,让 `yuqei-ai-sdk-python` 真正成为稳定调用边界。
|
||||
3. 法律审查、合同生成、条款改写、履约义务提取进入 AI 中台,而不是合同 API。
|
||||
4. 合同系统继续做企业合同主流程:工作台、合同房间、审批、台账、仓库、审计。
|
||||
5. `infra` 补环境模板、健康检查、监控日志、备份和发布脚本。
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# V2 前端基础工程与轻量化体验底座记录
|
||||
# V2 前端基础工程与轻量化体验底座记录
|
||||
|
||||
日期:2026-06-22
|
||||
|
||||
@@ -26,7 +26,7 @@ npm run web:build
|
||||
|
||||
### Design System
|
||||
|
||||
目录:`packages/design-system`
|
||||
目录:`yuqei-contract-platform/packages/design-system`
|
||||
|
||||
已建立:
|
||||
|
||||
@@ -36,7 +36,7 @@ npm run web:build
|
||||
|
||||
### Contract Web
|
||||
|
||||
目录:`apps/contract-web`
|
||||
目录:`yuqei-contract-platform/apps/contract-web`
|
||||
|
||||
已建立:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# V2 后端基础工程与本地开发底座记录
|
||||
# V2 后端基础工程与本地开发底座记录
|
||||
|
||||
日期:2026-06-22
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
### Contract API
|
||||
|
||||
目录:`services/contract-api`
|
||||
目录:`yuqei-contract-platform/services/contract-api`
|
||||
|
||||
已建立:
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
### AI Platform API
|
||||
|
||||
目录:`services/ai-platform-api`
|
||||
目录:`yuqei-ai-platform/services/ai-platform-api`
|
||||
|
||||
已建立:
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
### Worker
|
||||
|
||||
目录:`services/worker`
|
||||
目录:`yuqei-ai-platform/services/worker`
|
||||
|
||||
已建立:
|
||||
|
||||
@@ -54,8 +54,8 @@
|
||||
已建立:
|
||||
|
||||
- 根目录 `pyproject.toml`,统一 pytest 入口。
|
||||
- `infra/compose/docker-compose.yml`。
|
||||
- `infra/compose/.env.example`。
|
||||
- `yuqei-infra/compose/docker-compose.yml`。
|
||||
- `yuqei-infra/compose/.env.example`。
|
||||
- 三个服务 Dockerfile。
|
||||
- `docs/architecture/local-development.md`。
|
||||
- V2 目录相关 `.gitignore` 规则。
|
||||
@@ -101,8 +101,8 @@ git diff --check
|
||||
|
||||
优先顺序:
|
||||
|
||||
1. `apps/contract-web` 初始化 Next.js/React/TypeScript。
|
||||
2. `packages/design-system` 建立 tokens、主导航、页面壳、工作台布局规范。
|
||||
1. `yuqei-contract-platform/apps/contract-web` 初始化 Next.js/React/TypeScript。
|
||||
2. `yuqei-contract-platform/packages/design-system` 建立 tokens、主导航、页面壳、工作台布局规范。
|
||||
3. 建立前端本地启动、lint、typecheck、build 命令。
|
||||
4. 前端健康页对接 `contract-api` 的 `/health`。
|
||||
5. 再进入 S2/S3:AI Platform MVP 和 SDK MVP。
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# V2 旧 shared 资产盘点与迁移清单
|
||||
# V2 旧 shared 资产盘点与迁移清单
|
||||
|
||||
日期:2026-06-22
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
旧 `shared-*` 仓库不再作为 V2 的继续开发主线。
|
||||
|
||||
V2 采用当前仓库 `D:\yuqei-project\ai-contract-platform` 的 monorepo workspace,把 shared 能力重新落到:
|
||||
V2 采用当前仓库 `D:\yuqei-project\ai-contract-platform` 的四个最终工程边界,把 shared 能力重新落到:
|
||||
|
||||
- `services/ai-platform-api`
|
||||
- `packages/ai-openapi`
|
||||
- `sdks/python`
|
||||
- `sdks/typescript`
|
||||
- `services/worker`
|
||||
- `packages/design-system`
|
||||
- `yuqei-ai-platform/services/ai-platform-api`
|
||||
- `yuqei-ai-platform/packages/ai-openapi`
|
||||
- `yuqei-ai-sdk-python`
|
||||
- 如确需 TypeScript SDK,另建 `yuqei-ai-sdk-typescript`
|
||||
- `yuqei-ai-platform/services/worker`
|
||||
- `yuqei-contract-platform/packages/design-system`
|
||||
|
||||
旧 shared 仓库只作为历史参考、行为对照、迁移素材和测试样例来源。
|
||||
|
||||
@@ -23,7 +23,7 @@ V2 采用当前仓库 `D:\yuqei-project\ai-contract-platform` 的 monorepo works
|
||||
|---|---|---:|---|
|
||||
| `shared-ai-platform` | Python 原型平台,含知识库、会话、任务、OCR、RAG、SDK 原型和大量文档 | 有 | 参考实现和数据处理经验,不继续扩展 |
|
||||
| `shared-ai-platform-java` | Java 版共享 AI 平台,含 v0.2 contract、legal-review、knowledge、chat、prompt、provider-router | 有 | 参考模块边界、契约和测试,不迁移 Java 技术栈 |
|
||||
| `shared-ai-python-sdk` | 形式化 Python SDK,默认 `/api/v0.2`,含 SSE、错误处理、legal-review、document extraction 测试 | 无 | 迁移 API 设计和测试思想,V2 在 `sdks/python` 重做 |
|
||||
| `shared-ai-python-sdk` | 形式化 Python SDK,默认 `/api/v0.2`,含 SSE、错误处理、legal-review、document extraction 测试 | 无 | 迁移 API 设计和测试思想,V2 在 `yuqei-ai-sdk-python` 重做 |
|
||||
| `shared-java-libs` | Java 公共库,含 shared-ai-sdk、shared-web、shared-storage、shared-notify、shared-core | 有 | V2 不采用 Java 主线,仅参考公共能力边界 |
|
||||
|
||||
## 3. `shared-ai-platform` 盘点
|
||||
@@ -83,7 +83,7 @@ V2 采用当前仓库 `D:\yuqei-project\ai-contract-platform` 的 monorepo works
|
||||
V2 处理建议:
|
||||
|
||||
- 不在旧仓库继续提交该功能。
|
||||
- 将“可配置 OCR 引擎、OCR 质量门禁、OCR 失败结构化返回”作为 `services/worker` 的文档解析需求。
|
||||
- 将“可配置 OCR 引擎、OCR 质量门禁、OCR 失败结构化返回”作为 `yuqei-ai-platform/services/worker` 的文档解析需求。
|
||||
- PaddleOCR 是否启用作为 V2 技术栈 ADR 的可选项,默认不阻塞基础工程。
|
||||
|
||||
## 4. `shared-ai-platform-java` 盘点
|
||||
@@ -144,7 +144,7 @@ V2 处理建议:
|
||||
V2 处理建议:
|
||||
|
||||
- 不在旧 Java 仓库继续扩展。
|
||||
- 把 v0.2 contract 的思想迁移到 `packages/ai-openapi/openapi.yaml`。
|
||||
- 把 v0.2 contract 的思想迁移到 `yuqei-ai-platform/packages/ai-openapi/openapi.yaml`。
|
||||
- 把 legal-review v0.2 路径设计迁移为 V2 新接口,但路径统一为 `/api/v1/legal/review`,避免继续沿用 domain-pack 历史命名。
|
||||
|
||||
## 5. `shared-ai-python-sdk` 盘点
|
||||
@@ -178,11 +178,11 @@ V2 处理建议:
|
||||
|
||||
### 5.3 V2 迁移策略
|
||||
|
||||
V2 在 `sdks/python` 重新实现正式 SDK:
|
||||
V2 在 `yuqei-ai-sdk-python` 重新实现正式 SDK:
|
||||
|
||||
- 包名建议:`yuqei-ai-sdk-python`。
|
||||
- Python import 建议:`yuqei_ai_sdk`。
|
||||
- 由 `packages/ai-openapi/openapi.yaml` 生成基础类型。
|
||||
- 由 `yuqei-ai-platform/packages/ai-openapi/openapi.yaml` 生成基础类型。
|
||||
- 手写业务友好封装。
|
||||
- 默认调用 `/api/v1`。
|
||||
- 必须支持:
|
||||
@@ -225,7 +225,7 @@ V2 使用 Python/TypeScript 主线,因此只吸收“能力边界”和“默
|
||||
|
||||
对应落地:
|
||||
|
||||
- `services/contract-api` 和 `services/ai-platform-api` 的 middleware 必须可配置。
|
||||
- `yuqei-contract-platform/services/contract-api` 和 `yuqei-ai-platform/services/ai-platform-api` 的 middleware 必须可配置。
|
||||
- 错误响应必须标准化,但不能让 SDK 与 HTTP 状态混淆。
|
||||
- storage/notify 作为应用内可替换 adapter,不做跨仓库 Java shared。
|
||||
|
||||
@@ -270,9 +270,9 @@ V2 不再保留:
|
||||
## 9. 后续执行项
|
||||
|
||||
1. 建立 V2 技术栈 ADR。
|
||||
2. 建立 `packages/ai-openapi/openapi.yaml`。
|
||||
3. 建立 `packages/contract-openapi/openapi.yaml`。
|
||||
4. 初始化 `services/ai-platform-api`。
|
||||
5. 初始化 `sdks/python`。
|
||||
2. 建立 `yuqei-ai-platform/packages/ai-openapi/openapi.yaml`。
|
||||
3. 建立 `yuqei-contract-platform/packages/contract-openapi/openapi.yaml`。
|
||||
4. 初始化 `yuqei-ai-platform/services/ai-platform-api`。
|
||||
5. 初始化 `yuqei-ai-sdk-python`。
|
||||
6. 迁移 SSE、错误处理、RequestContext 的测试思想。
|
||||
7. 初始化合同系统只通过 SDK 调用 AI 中台的边界。
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# V2 法律问答 AI 平台与 SDK 最小闭环记录
|
||||
# V2 法律问答 AI 平台与 SDK 最小闭环记录
|
||||
|
||||
日期:2026-06-22
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
把法律问答能力放到正确的 V2 架构边界里:
|
||||
|
||||
- AI 能力归属 `services/ai-platform-api`。
|
||||
- AI 能力归属 `yuqei-ai-platform/services/ai-platform-api`。
|
||||
- 合同系统不直接写模型 provider 或 AI 规则。
|
||||
- 合同系统通过 `sdks/python` 调用 AI Platform。
|
||||
- 合同系统通过 `yuqei-ai-sdk-python` 调用 AI Platform。
|
||||
- OpenAPI 契约同步记录这个边界。
|
||||
|
||||
## 2. 已完成内容
|
||||
|
||||
### AI Platform
|
||||
|
||||
目录:`services/ai-platform-api`
|
||||
目录:`yuqei-ai-platform/services/ai-platform-api`
|
||||
|
||||
新增:
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
### Python SDK
|
||||
|
||||
目录:`sdks/python`
|
||||
目录:`yuqei-ai-sdk-python`
|
||||
|
||||
新增:
|
||||
|
||||
@@ -53,7 +53,7 @@ SDK 负责:
|
||||
|
||||
### Contract API
|
||||
|
||||
目录:`services/contract-api`
|
||||
目录:`yuqei-contract-platform/services/contract-api`
|
||||
|
||||
新增:
|
||||
|
||||
@@ -65,7 +65,7 @@ SDK 负责:
|
||||
|
||||
已更新:
|
||||
|
||||
- `packages/contract-openapi/openapi.yaml`
|
||||
- `yuqei-contract-platform/packages/contract-openapi/openapi.yaml`
|
||||
|
||||
新增合同系统法律问答代理契约:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user