8.1 KiB
8.1 KiB
V2 旧 shared 资产盘点与迁移清单
日期:2026-06-22
1. 结论
旧 shared-* 仓库不再作为 V2 的继续开发主线。
V2 采用当前仓库 D:\yuqei-project\ai-contract-platform 的四个最终工程边界,把 shared 能力重新落到:
yuqei-ai-platform/services/ai-platform-apiyuqei-ai-platform/packages/ai-openapiyuqei-ai-sdk-python- 如确需 TypeScript SDK,另建
yuqei-ai-sdk-typescript yuqei-ai-platform/services/workeryuqei-contract-platform/packages/design-system
旧 shared 仓库只作为历史参考、行为对照、迁移素材和测试样例来源。
2. 旧仓库当前状态
| 仓库 | 当前状态 | 未提交改动 | V2 处理策略 |
|---|---|---|---|
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 在 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 盘点
3.1 可迁移资产
- OCR/文档解析经验:
- Tesseract 与 PaddleOCR 双引擎思路。
- 扫描件 PDF OCR 质量门禁。
- OCR 失败原因结构化返回。
- RAG/知识库经验:
- knowledge-bases。
- documents upload/retry。
- retrieval service。
- sync content。
- Chat/SSE 经验:
- conversations stream。
- conversations history。
- SSE 事件格式。
- 平台治理经验:
- apps。
- tasks/jobs。
- usage/costs。
- evals。
- ops/system。
- 测试样例:
tests/test_v0_2_conversations_api.pytests/test_v0_2_knowledge_api.pytests/test_v0_2_document_extraction_api.pytests/test_legal_review_domain_pack.pytests/test_python_sdk.py
3.2 只参考不迁移
- 旧 Python 原型的目录结构。
- 旧
app/api/v0_2具体路由实现。 - 本地
_runtime、storage、local-knowledge。 - 旧部署脚本。
- 旧文档归档结构。
3.3 废弃
- 作为生产 AI 中台主线的定位。
- 与 V2 重复的 SDK 原型。
- 旧
/api/v0.1兼容包袱。
3.4 当前未提交改动处理建议
当前未提交改动集中在:
app/core/config.pyapp/services/document_extraction_service.pyrequirements.txt
内容是 PaddleOCR 支持和 OCR 引擎配置。
V2 处理建议:
- 不在旧仓库继续提交该功能。
- 将“可配置 OCR 引擎、OCR 质量门禁、OCR 失败结构化返回”作为
yuqei-ai-platform/services/worker的文档解析需求。 - PaddleOCR 是否启用作为 V2 技术栈 ADR 的可选项,默认不阻塞基础工程。
4. shared-ai-platform-java 盘点
4.1 可迁移资产
- v0.2 contract 文档思路:
shared-ai-platform-contract/docs/shared-ai-v0.2-contract.md- 统一请求头。
- 响应 envelope。
- 分页规范。
- snake_case 约定。
- legal-review v0.2 兼容思路:
- 同时支持
/api/v0.1/domain-packs/legal-review - 和
/api/v0.2/domain-packs/legal-review
- 同时支持
- legal-review 结构化审查经验:
- 风险摘要。
- 风险项。
- 审查意见。
- 建议动作。
- confidence summary。
- 模块边界:
- provider-router。
- prompts。
- knowledge。
- chat。
- tasks。
- usage。
- domain-legal-review。
- API smoke test 思路:
- 同一测试覆盖 v0.1/v0.2 legal-review。
- SDK/服务端契约一致性。
4.2 只参考不迁移
- Spring Boot 多模块结构。
- Maven BOM/dependencies。
- Java DTO、Controller 和 Repository 实现。
- Java provider-router 具体代码。
4.3 废弃
- 作为 V2 生产 AI 中台主技术栈。
- 继续新增 V2 能力到旧 Java shared。
- 继续维护多套 shared 主线。
4.4 当前未提交改动处理建议
当前未提交改动集中在:
README.mdPlatformLegalReviewController.javaSharedAiPlatformApiSmokeTest.javashared-ai-platform-contract/docs/
内容是 v0.2 contract 和 legal-review v0.2 兼容入口。
V2 处理建议:
- 不在旧 Java 仓库继续扩展。
- 把 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 盘点
5.1 可迁移资产
SharedAIPlatformClient的基础结构。RequestContext。- SSE 解析:
parse_sse_payloaditer_sse_events
- 错误映射:
- transport error。
- envelope error。
- API prefix 归一化。
- 文件上传。
- knowledge sync。
- legal review client。
- tests:
test_sse.pytest_legal_review.pytest_errors.pytest_client_paths.pytest_document_extraction.py
5.2 只参考不迁移
- 包名
shared-ai-platform-sdk。 - 旧
/api/v0.2路径命名。 - 与 Java shared contract 绑定的 DTO 命名。
5.3 V2 迁移策略
V2 在 yuqei-ai-sdk-python 重新实现正式 SDK:
- 包名建议:
yuqei-ai-sdk-python。 - Python import 建议:
yuqei_ai_sdk。 - 由
yuqei-ai-platform/packages/ai-openapi/openapi.yaml生成基础类型。 - 手写业务友好封装。
- 默认调用
/api/v1。 - 必须支持:
- timeout。
- retry。
- trace id。
- SSE。
- typed errors。
- contract tests。
6. shared-java-libs 盘点
6.1 可参考资产
- shared-web 的条件装配思路:
- trace id filter 可开关。
- request log filter 可开关。
- global exception handler 可开关。
- shared-storage 的抽象:
- local。
- MinIO。
- noop。
- shared-notify 的抽象:
- noop。
- logging。
- Aliyun SMS sandbox。
- shared-ai-sdk 的 Java 客户端边界。
- shared-core 的分页、错误码、响应模型思想。
6.2 不迁移内容
- Java 代码。
- Spring Boot starter。
- Maven 多模块结构。
- Java SDK。
6.3 V2 处理策略
V2 使用 Python/TypeScript 主线,因此只吸收“能力边界”和“默认不改变业务项目行为”的原则。
对应落地:
yuqei-contract-platform/services/contract-api和yuqei-ai-platform/services/ai-platform-api的 middleware 必须可配置。- 错误响应必须标准化,但不能让 SDK 与 HTTP 状态混淆。
- storage/notify 作为应用内可替换 adapter,不做跨仓库 Java shared。
7. V2 迁移优先级
P0:必须迁移
- AI 中台 OpenAPI 契约。
- 法律问答与法律审查接口边界。
- SDK 请求上下文和错误处理。
- SSE 事件格式。
- 知识库文档上传、解析、检索、同步的核心流程。
- AI 调用审计。
P1:第二批迁移
- OCR 引擎配置与文档解析质量门禁。
- Prompt 模板版本管理。
- 任务/Job 状态机。
- 使用量和成本记录。
- 基础评测样本。
P2:后续再做
- 多 domain-pack 插件体系。
- 复杂 provider-router。
- 复杂预算/限流/成本治理。
- 前端组件库抽象。
- Java SDK。
8. V2 废弃清单
V2 不再保留:
shared-ai-platform-java作为生产主线。shared-ai-platform作为生产主线。- V1 vendored SDK。
- 多套
/api/v0.1、/api/v0.2历史路径。 domain-packs作为对外 API 路径。- 未经第二个真实项目验证的业务流程 shared 化。
9. 后续执行项
- 建立 V2 技术栈 ADR。
- 建立
yuqei-ai-platform/packages/ai-openapi/openapi.yaml。 - 建立
yuqei-contract-platform/packages/contract-openapi/openapi.yaml。 - 初始化
yuqei-ai-platform/services/ai-platform-api。 - 初始化
yuqei-ai-sdk-python。 - 迁移 SSE、错误处理、RequestContext 的测试思想。
- 初始化合同系统只通过 SDK 调用 AI 中台的边界。