Files
AIclinicalresearch/docs/09-架构实施/后端代码分层-迁移计划.md
HaHafeng 1b53ab9d52 feat(aia): Complete AIA V2.0 with universal streaming capabilities
Major Changes:
- Add StreamingService with OpenAI Compatible format
- Upgrade Chat component V2 with Ant Design X integration
- Implement AIA module with 12 intelligent agents
- Update API routes to unified /api/v1 prefix
- Update system documentation

Backend (~1300 lines):
- common/streaming: OpenAI Compatible adapter
- modules/aia: 12 agents, conversation service, streaming integration
- Update route versions (RVW, PKB to v1)

Frontend (~3500 lines):
- modules/aia: AgentHub + ChatWorkspace (100% prototype restoration)
- shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook
- Update API endpoints to v1

Documentation:
- AIA module status guide
- Universal capabilities catalog
- System overview updates
- All module documentation sync

Tested: Stream response verified, authentication working
Status: AIA V2.0 core completed (85%)
2026-01-14 19:15:01 +08:00

13 KiB
Raw Blame History

鍚庣<EFBFBD>爜鍒嗗眰 - 璇︾粏杩佺Щ璁″垝

*鏂囨。鐗堟湰锛? v1.0
*鍒涘缓鏃ユ湡锛? 2025-11-13
*浠诲姟缂栧彿锛? 浠诲姟19锛圵eek 2 Day 8-9锛? *<EFBFBD>爣锛? 灏嗙幇鏈夋墎骞冲寲鍚庣<E98D9A>爜閲嶇粍涓?platform/common/modules 涓夊眰鏋舵瀯


馃搵 鎬讳綋鐩<E7B68B>

璁捐<EFBFBD>鍘熷垯

  1. 鉁?绋冲Ε<EFBFBD> - 涓€姝ヤ竴姝ヨ縼绉伙紝姣忔<E5A7A3>楠岃瘉
  2. 鉁?<EFBFBD>仛閲嶇粍 - 涓嶅<E6B693>鍔犳柊鍔熻兘锛屼笉淇<E7AC89>敼涓氬姟閫昏緫
  3. 鉁?淇濇寔鍏煎<EFBFBD> - API璺<49>緞涓嶅彉锛屽姛鑳戒笉鍙?
  4. 鉁?<EFBFBD>洖閫€ - Git commit璁板綍姣忎竴姝ワ紝鍙<E7B49D>殢鏃跺洖閫€

<EFBFBD>爣鏋舵瀯

backend/src/
鈹溾攢鈹€ platform/          # 馃彌锔?骞冲彴灞傦紙鏈<E7B499><E98F88><EFBFBD>垱寤虹洰褰曪紝鏆備笉瀹炵幇锛?
鈹?  鈹溾攢鈹€ auth/
鈹?  鈹斺攢鈹€ users/
鈹?
鈹溾攢鈹€ common/            # 馃敡 閫氱敤鑳藉姏灞?
鈹?  鈹溾攢鈹€ llm/           # LLM閫傞厤鍣ㄥ拰Gateway
鈹?  鈹溾攢鈹€ document/      # 鏂囨。澶勭悊瀹㈡埛绔?
鈹?  鈹溾攢鈹€ rag/           # RAG/Dify瀹㈡埛绔?
鈹?  鈹溾攢鈹€ middleware/    # 涓<>棿浠?
鈹?  鈹溾攢鈹€ utils/         # 宸ュ叿鍑芥暟
鈹?  鈹斺攢鈹€ types/         # 閫氱敤绫诲瀷
鈹?
鈹溾攢鈹€ modules/           # 馃摝 涓氬姟妯″潡灞?
鈹?  鈹溾攢鈹€ aia/           # AI鏅鸿兘闂<E58598>瓟妯″潡
鈹?  鈹溾攢鈹€ pkb/           # 涓<>汉鐭ヨ瘑搴撴ā鍧?
鈹?  鈹斺攢鈹€ rvw/           # 绋夸欢瀹℃煡妯″潡
鈹?
鈹溾攢鈹€ config/            # 閰嶇疆锛堜繚鐣欙級
鈹斺攢鈹€ index.ts           # 涓诲叆鍙o紙閲嶅啓锛?

馃搳 鐜版湁浠g爜娓呭崟

1. adapters/ - LLM閫傞厤鍣<E58EA4>紙4涓<34>枃浠讹級

  • 鉁?DeepSeekAdapter.ts - DeepSeek-V3閫傞厤鍣?
  • 鉁?QwenAdapter.ts - Qwen3/Qwen-Long閫傞厤鍣?
  • 鉁?LLMFactory.ts - LLM宸ュ巶绫?
  • 鉁?types.ts - 閫傞厤鍣ㄦ帴鍙e畾涔?

2. clients/ - 澶栭儴鏈嶅姟瀹㈡埛绔<E59F9B>紙3涓<33>枃浠讹級

  • 鉁?DifyClient.ts - Dify RAG瀹㈡埛绔?
  • 鉁?ExtractionClient.ts - Python鏂囨。鎻愬彇鏈嶅姟瀹㈡埛绔?
  • 鉁?types.ts - 瀹㈡埛绔<E59F9B>被鍨嬪畾涔?

3. controllers/ - 鎺у埗鍣<E59F97>紙8涓<38>枃浠讹級

  • 鉁?projectController.ts - 椤圭洰绠$悊
  • 鉁?agentController.ts - 鏅鸿兘浣撶<E6B5A3>鐞?
  • 鉁?conversationController.ts - 瀵硅瘽绠$悊
  • 鉁?chatController.ts - 閫氱敤瀵硅瘽
  • 鉁?knowledgeBaseController.ts - 鐭ヨ瘑搴撶<E690B4>鐞?
  • 鉁?documentController.ts - 鏂囨。绠$悊
  • 鉁?batchController.ts - 鎵瑰<E98EB5>鐞?
  • 鉁?reviewController.ts - 绋夸欢瀹℃煡

4. services/ - 鏈嶅姟锛?涓<>枃浠讹級

  • 鉁?projectService.ts - 椤圭洰鏈嶅姟
  • 鉁?agentService.ts - 鏅鸿兘浣撴湇鍔?
  • 鉁?conversationService.ts - 瀵硅瘽鏈嶅姟
  • 鉁?knowledgeBaseService.ts - 鐭ヨ瘑搴撴湇鍔?
  • 鉁?documentService.ts - 鏂囨。鏈嶅姟
  • 鉁?batchService.ts - 鎵瑰<E98EB5>鐞嗘湇鍔?
  • 鉁?tokenService.ts - Token璁℃暟鏈嶅姟
  • 鉁?reviewService.ts - 瀹℃煡鏈嶅姟

5. routes/ - 璺<>敱锛?涓<>枃浠讹級

  • 鉁?projects.ts - 椤圭洰璺<E6B4B0>
  • 鉁?agents.ts - 鏅鸿兘浣撹矾鐢?
  • 鉁?conversations.ts - 瀵硅瘽璺<E798BD>
  • 鉁?chatRoutes.ts - 閫氱敤瀵硅瘽璺<E798BD>
  • 鉁?knowledgeBases.ts - 鐭ヨ瘑搴撹矾鐢?
  • 鉁?batchRoutes.ts - 鎵瑰<E98EB5>鐞嗚矾鐢?
  • 鉁?reviewRoutes.ts - 瀹℃煡璺<E785A1>

6. middleware/ - 涓<>棿浠讹紙1涓<31>枃浠讹級

  • 鉁?validateProject.ts - 椤圭洰楠岃瘉涓<E79889>棿浠?

7. utils/ - 宸ュ叿鍑芥暟锛?涓<>枃浠讹級

  • 鉁?jsonParser.ts - JSON瑙瀽宸ュ叿

8. templates/ - 妯℃澘锛?涓<>枃浠讹級

  • 鉁?clinicalResearch.ts - 涓村簥鐮旂┒妯℃澘

9. config/ - 閰嶇疆锛?涓<>枃浠讹級

  • 鉁?database.ts - 鏁版嵁搴撻厤缃?
  • 鉁?env.ts - 鐜<><E9909C>鍙橀噺閰嶇疆

10. types/ - 绫诲瀷锛堢┖鐩<E29496>綍锛?

11. scripts/ - 鑴氭湰锛?涓<>枃浠讹級

  • 鉁?create-mock-user.ts - 鍒涘缓妯℃嫙鐢ㄦ埛
  • 鉁?test-dify-client.ts - 娴嬭瘯Dify瀹㈡埛绔?

馃椇锔?璇︾粏杩佺Щ鏄犲皠琛?

闃舵<EFBFBD>1锛氳縼绉?common/ 閫氱敤鑳藉姏灞?

1.1 common/llm/ - LLM閫傞厤鍣?

鍘熻矾寰? 鏂拌矾寰? 璇存槑
src/adapters/types.ts src/common/llm/adapters/types.ts 閫傞厤鍣ㄦ帴鍙?
src/adapters/DeepSeekAdapter.ts src/common/llm/adapters/DeepSeekAdapter.ts DeepSeek閫傞厤鍣?
src/adapters/QwenAdapter.ts src/common/llm/adapters/QwenAdapter.ts Qwen閫傞厤鍣?
src/adapters/LLMFactory.ts src/common/llm/adapters/LLMFactory.ts LLM宸ュ巶

1.2 common/document/ - 鏂囨。澶勭悊

鍘熻矾寰? 鏂拌矾寰? 璇存槑
src/clients/ExtractionClient.ts src/common/document/ExtractionClient.ts 鏂囨。鎻愬彇瀹㈡埛绔?
src/services/tokenService.ts src/common/document/TokenService.ts Token璁℃暟鏈嶅姟
src/clients/types.ts src/common/document/types.ts 鏂囨。鐩稿叧绫诲瀷

1.3 common/rag/ - RAG寮曟搸

鍘熻矾寰? 鏂拌矾寰? 璇存槑
src/clients/DifyClient.ts src/common/rag/DifyClient.ts Dify瀹㈡埛绔?

1.4 common/middleware/ - 涓<>棿浠?

鍘熻矾寰? 鏂拌矾寰? 璇存槑
src/middleware/validateProject.ts src/common/middleware/validateProject.ts 椤圭洰楠岃瘉涓<EFBFBD>棿浠?

1.5 common/utils/ - 宸ュ叿鍑芥暟

鍘熻矾寰? 鏂拌矾寰? 璇存槑
src/utils/jsonParser.ts src/common/utils/jsonParser.ts JSON瑙瀽宸ュ叿

1.6 common/types/ - 閫氱敤绫诲瀷

鍘熻矾寰? 鏂拌矾寰? 璇存槑
src/types/ src/common/types/ 锛堢洰鍓嶄负绌猴紝棰勭暀锛?

闃舵<EFBFBD>2锛氳縼绉?modules/ 涓氬姟妯″潡灞?

2.1 modules/aia/ - AI鏅鸿兘闂<E58598>瓟妯″潡

Controllers:

鍘熻矾寰? 鏂拌矾寰?
src/controllers/projectController.ts src/modules/aia/controllers/projectController.ts
src/controllers/agentController.ts src/modules/aia/controllers/agentController.ts
src/controllers/conversationController.ts src/modules/aia/controllers/conversationController.ts
src/controllers/chatController.ts src/modules/aia/controllers/chatController.ts

Services:

鍘熻矾寰? 鏂拌矾寰?
src/services/projectService.ts src/modules/aia/services/projectService.ts
src/services/agentService.ts src/modules/aia/services/agentService.ts
src/services/conversationService.ts src/modules/aia/services/conversationService.ts

Routes:

鍘熻矾寰? 鏂拌矾寰?
src/routes/projects.ts src/modules/aia/routes/projects.ts
src/routes/agents.ts src/modules/aia/routes/agents.ts
src/routes/conversations.ts src/modules/aia/routes/conversations.ts
src/routes/chatRoutes.ts src/modules/aia/routes/chatRoutes.ts

*鍏朵粬锛?

鍘熻矾寰? 鏂拌矾寰? 璇存槑
src/templates/clinicalResearch.ts src/modules/aia/templates/clinicalResearch.ts 鎵瑰<EFBFBD>鐞嗘ā鏉?

*鏂板<EFBFBD>鏂囦欢锛?

  • src/modules/aia/routes/index.ts - 妯″潡璺<E6BDA1>敱缁熶竴瀵煎嚭

2.2 modules/pkb/ - 涓<>汉鐭ヨ瘑搴撴ā鍧?

Controllers:

鍘熻矾寰? 鏂拌矾寰?
src/controllers/knowledgeBaseController.ts src/modules/pkb/controllers/knowledgeBaseController.ts
src/controllers/documentController.ts src/modules/pkb/controllers/documentController.ts
src/controllers/batchController.ts src/modules/pkb/controllers/batchController.ts

Services:

鍘熻矾寰? 鏂拌矾寰?
src/services/knowledgeBaseService.ts src/modules/pkb/services/knowledgeBaseService.ts
src/services/documentService.ts src/modules/pkb/services/documentService.ts
src/services/batchService.ts src/modules/pkb/services/batchService.ts

Routes:

鍘熻矾寰? 鏂拌矾寰?
src/routes/knowledgeBases.ts src/modules/pkb/routes/knowledgeBases.ts
src/routes/batchRoutes.ts src/modules/pkb/routes/batchRoutes.ts

*鏂板<EFBFBD>鏂囦欢锛?

  • src/modules/pkb/routes/index.ts - 妯″潡璺<E6BDA1>敱缁熶竴瀵煎嚭

2.3 modules/rvw/ - 绋夸欢瀹℃煡妯″潡

Controllers:

鍘熻矾寰? 鏂拌矾寰?
src/controllers/reviewController.ts src/modules/rvw/controllers/reviewController.ts

Services:

鍘熻矾寰? 鏂拌矾寰?
src/services/reviewService.ts src/modules/rvw/services/reviewService.ts

Routes:

鍘熻矾寰? 鏂拌矾寰?
src/routes/reviewRoutes.ts src/modules/rvw/routes/reviewRoutes.ts

*鏂板<EFBFBD>鏂囦欢锛?

  • src/modules/rvw/routes/index.ts - 妯″潡璺<E6BDA1>敱缁熶竴瀵煎嚭

闃舵<EFBFBD>3锛氬垱寤?platform/ 骞冲彴灞傦紙浠呴<E6B5A0>鏋讹級

*<EFBFBD>綍缁撴瀯锛?

src/platform/
鈹溾攢鈹€ auth/
鈹?  鈹斺攢鈹€ README.md          # 璇存槑锛歐eek 3瀹炵幇
鈹斺攢鈹€ users/
    鈹斺攢鈹€ README.md          # 璇存槑锛歐eek 3瀹炵幇

闃舵<EFBFBD>4锛氫繚鐣欏師浣嶇疆鐨勬枃浠?

<EFBFBD> 璇存槑
src/config/ 閰嶇疆鏂囦欢淇濇寔鍘熶綅
src/index.ts 涓诲叆鍙枃浠讹紙闇€瑕侀噸鍐欏<EFBFBD>鍏ヨ矾寰勶級
src/scripts/ 宸ュ叿鑴氭湰淇濇寔鍘熶綅

馃敡 TypeScript璺<74>緞鍒<E7B79E>悕閰嶇疆

tsconfig.json 鏂板<E98F82>閰嶇疆

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@platform/*": ["src/platform/*"],
      "@common/*": ["src/common/*"],
      "@modules/*": ["src/modules/*"],
      "@config/*": ["src/config/*"]
    }
  }
}

馃摑 瀵煎叆璺<E58F86>緞鏇存柊瑙勫垯

1. common灞傚唴閮ㄥ<E996AE>鍏?

// 鏃э細
import { LLMFactory } from '../adapters/LLMFactory.js'

// 鏂帮細
import { LLMFactory } from '@common/llm/adapters/LLMFactory.js'

2. modules灞傚<E7819E><EFBFBD>ommon灞?

// 鏃э細
import { LLMFactory } from '../../adapters/LLMFactory.js'

// 鏂帮細
import { LLMFactory } from '@common/llm/adapters/LLMFactory.js'

3. 妯″潡鍐呴儴瀵煎叆

// 鏃э細
import { projectService } from '../services/projectService.js'

// 鏂帮細
import { projectService } from '@modules/aia/services/projectService.js'
// 鎴栬€呯浉瀵硅矾寰勶紙濡傛灉鍦ㄥ悓涓€妯″潡鍐咃級锛?
import { projectService } from '../services/projectService.js'

鈿狅笍 鍏抽敭娉ㄦ剰浜嬮」

1. 淇濇寔 .js 鎵╁睍鍚?

  • 鉁?TypeScript ES妯″潡闇€瑕佷繚鐣?.js 鎵╁睍鍚?
  • 鉁?鎵€鏈夊<E98F88>鍏ヨ矾寰勬湯灏惧繀椤诲姞 .js

2. Prisma Client 瀵煎叆

// 淇濇寔涓嶅彉锛?
import { prisma } from '@config/database.js'

3. 澶栭儴渚濊禆瀵煎叆

// Fastify銆丳risma绛夊<E7BB9B>閮ㄥ寘瀵煎叆涓嶅彉
import Fastify from 'fastify'
import { PrismaClient } from '@prisma/client'

4. 绫诲瀷瀵煎叆

// 浣跨敤 type 鍏抽敭瀛楀<E7809B>鍏ョ被鍨?
import type { FastifyRequest, FastifyReply } from 'fastify'

馃殌 鎵ц<E98EB5>姝ラ<E5A79D>锛堝垎11涓<31>樁娈碉級

鉁?闃舵<E99783>1锛氫唬鐮佽皟鐮斾笌瑙勫垝锛堝凡瀹屾垚锛?

  • 浜嗚В鐜版湁浠g爜缁撴瀯
  • 鍒涘缓杩佺Щ鏄犲皠琛?
  • 鍒跺畾璇︾粏璁″垝

鈴?闃舵<E99783>2锛氬<E9949B>浠戒笌瀹夊叏

  • Git status 妫€鏌ュ伐浣滃尯鐘舵€?
  • Git commit 褰撳墠浠g爜锛堜綔涓哄洖閫€鐐癸級
  • 鍒涘缓鏂板垎鏀?feature/backend-layering

鈴?闃舵<E99783>3锛氬垱寤烘柊鐩<E69F8A>綍缁撴瀯

  • 鍒涘缓 src/platform/锛堢┖锛?
  • 鍒涘缓 src/common/ 鍙婂瓙鐩<E79399>
  • 鍒涘缓 src/modules/ 鍙婂瓙鐩<E79399>

鈴?闃舵<E99783>4锛氶厤缃甌ypeScript璺<74>緞鍒<E7B79E>

  • 鏇存柊 tsconfig.json
  • 娴嬭瘯缂栬瘧

鈴?闃舵<E99783>5锛氳縼绉籧ommon灞?

  • 杩佺Щ common/llm/
  • 杩佺Щ common/document/
  • 杩佺Щ common/rag/
  • 杩佺Щ common/middleware/
  • 杩佺Щ common/utils/
  • 鏇存柊鎵€鏈夊<EFBFBD>鍏ヨ矾寰?

鈴?闃舵<E99783>6锛氳縼绉籱odules灞?

  • 杩佺Щ modules/aia/
  • 杩佺Щ modules/pkb/
  • 杩佺Щ modules/rvw/
  • 鍒涘缓鍚勬ā鍧楃殑 routes/index.ts
  • 鏇存柊鎵€鏈夊<EFBFBD>鍏ヨ矾寰?

鈴?闃舵<E99783>7锛氬垱寤簆latform灞傞<E7819E>鏋?

  • 鍒涘缓 platform/auth/README.md
  • 鍒涘缓 platform/users/README.md

鈴?闃舵<E99783>8锛氭洿鏂颁富鍏ュ彛鏂囦欢

  • 閲嶅啓 src/index.ts
  • 鏇存柊璺<EFBFBD>敱娉ㄥ唽閫昏緫

鈴?闃舵<E99783>9锛氱紪璇戞祴璇曚笌楠岃瘉

  • 杩愯<EFBFBD> npm run build
  • 妫€鏌ョ紪璇戦敊璇?
  • <EFBFBD><EFBFBD>绫诲瀷閿欒<EFBFBD>

鈴?闃舵<E99783>10锛氬姛鑳芥祴璇曪紙API鍐掔儫娴嬭瘯锛?

  • <EFBFBD>姩鍚庣<EFBFBD>鏈嶅姟 npm run dev
  • 娴嬭瘯鍋ュ悍妫€鏌?/health
  • 娴嬭瘯AIA妯″潡API锛堣嚦灏?涓<><E6B693>鐐癸級
  • 娴嬭瘯PKB妯″潡API锛堣嚦灏?涓<><E6B693>鐐癸級
  • 娴嬭瘯RVW妯″潡API锛堣嚦灏?涓<><E6B693>鐐癸級

鈴?闃舵<E99783>11锛氭枃妗洿鏂颁笌鎬荤粨

  • 鏇存柊 鍓嶅悗绔<EFBFBD>ā鍧楀寲鏋舵瀯璁捐<EFBFBD>-V2.md
  • 鍒涘缓 鍚庣<EFBFBD>爜鍒嗗眰瀹炴柦鎶ュ憡.md
  • 鏇存柊 涓嬩竴闃舵<EFBFBD>琛屽姩璁″垝-V2.2-瀹屾暣鐗?md
  • Git commit 鏈€缁堜唬鐮?
  • 鏍囪<EFBFBD>浠诲姟19瀹屾垚

馃搳 椋庨櫓璇勪及涓庡簲瀵?

椋庨櫓1锛氬<EFBFBD>鍏ヨ矾寰勯敊璇<EFBFBD><EFBFBD>鑷寸紪璇戝け璐?

*搴斿<EFBFBD>锛?

  • 鉁?姣忚縼绉讳竴涓<E7ABB4>枃浠讹紝绔嬪嵆鏇存柊鍏跺<E98D8F>鍏ヨ矾寰?
  • 鉁?闃舵<E99783>х紪璇戦獙璇侊紙姣忓畬鎴愪竴灞傚氨缂栬瘧涓€娆★級

椋庨櫓2锛氳繍琛屾椂閿欒<EFBFBD>锛堣矾寰勮В鏋愰棶棰橈級

*搴斿<EFBFBD>锛?

  • 鉁?淇濈暀 .js 鎵╁睍鍚?
  • 鉁?閰嶇疆 tsconfig.json 鐨?paths 鏄犲皠
  • 鉁?鍚<>姩娴嬭瘯楠岃瘉

椋庨櫓3锛氬惊鐜<EFBFBD>緷璧?

*搴斿<EFBFBD>锛?

  • 鉁?閬靛惊渚濊禆鏂瑰悜锛歮odules 鈫?common 鈫?platform
  • 鉁?涓嶅厑璁稿弽鍚戜緷璧?

椋庨櫓4锛氬姛鑳藉洖褰?

*搴斿<EFBFBD>锛?

  • 鉁?淇濇寔涓氬姟閫昏緫瀹屽叏涓嶅彉
  • 鉁?API鍐掔儫娴嬭瘯楠岃瘉鏍稿績鍔熻兘
  • 鉁?Git璁板綍姣忔<E5A7A3>锛屽彲闅忔椂鍥為€€

馃幆 鎴愬姛鏍囧噯

缂栬瘧鎴愬姛

  • 鉁?npm run build 鏃犻敊璇?
  • 鉁?鏃燭ypeScript绫诲瀷閿欒<E996BF>
  • 鉁?鏃燛SLint閿欒<E996BF>

杩愯<EFBFBD>鎴愬姛

  • 鉁?npm run dev父鍚<E788B6>
  • 鉁?鍋ュ悍妫€鏌ヨ繑鍥炴<E98DA5>甯?
  • 鉁?鏁版嵁搴撹繛鎺ユ<E98EBA>甯?

鍔熻兘姝e父

  • 鉁?AIA妯″潡API姝父鍝嶅簲
  • 鉁?PKB妯″潡API姝父鍝嶅簲
  • 鉁?RVW妯″潡API姝父鍝嶅簲
  • 鉁?娴佸紡杈撳嚭姝e父
  • 鉁?鏂囦欢涓婁紶姝e父

鏋舵瀯娓呮櫚

  • 鉁?涓夊眰鏋舵瀯鐩<E780AF>綍娓呮櫚
  • 鉁?妯″潡杈圭晫鏄庣‘
  • 鉁?瀵煎叆璺<E58F86>緞涓€鑷?

鍒涘缓浜猴細 AI鍔╂墜
瀹℃牳浜猴細 寰呭<E5AFB0>鏍? 寮€濮嬫椂闂达細 2025-11-13
*棰勮<EFBFBD>瀹屾垚鏃堕棿锛? 1-2澶?