Files
AIclinicalresearch/docs/03-业务模块/ASL-AI智能文献/00-新AI交接文档.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

16 KiB
Raw Blame History

ASL璅<EFBFBD><EFBFBD><EFBFBD>?- <20>蚊I鈭斗𦻖<E69697><F0A6BB96>

<EFBFBD><EFBFBD>: 2025-11-18
敶枏<EFBFBD><EFBFBD>嗆挾: Week 2 - <20>滨垢UI撘<49><E69298>? <EFBFBD><EFBFBD><EFBFBD>園𡢿: 5<><35><EFBFBD>


<EFBFBD>㴓 憿寧𤌍璁<F0A48C8D>

餈蹱糓隞<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

AIclinicalresearch - <20>餃郎銝游<E98A9D><E6B8B8>𠉛弦AI撟喳蝱

<EFBFBD>銝芾<EFBFBD><EFBFBD>硋龫摮衣<EFBFBD>蝛嗅<EFBFBD><EFBFBD>笔𦶢<EFBFBD><EFBFBD><EFBFBD><EFBFBD>I颲<EFBFBD>𨭌撟喳蝱嚗<EFBFBD><EFBFBD><EFBFBD>?憭找<E686AD><E689BE>⊥芋<E28AA5>𨰜<EFBFBD>?*敶枏<E695B6><EFBFBD>銁撘<E98A81><E69298>飊SL璅<E79285>**嚗㇁I<E38781><EFBFBD><E7AE84><EFBFBD>讃蝑偦<E89D91><EFBFBD><E39A81>?


蝟餌<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<0A>? 銝𡁜𦛚璅<E79285>撅?(Business Layer)              <20>?
<0A>? - ASL (AI<41><EFBFBD><E7AE84><EFBFBD>讃) <20>?敶枏<E695B6><EFBFBD><E69298>睲葉          <20>?
<0A>? - AIA, PKB, DC, SSA, ST, RVW           <20>?
<0A><EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
           <20>?靘肽<E99D98>
<0A>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<0A>? <20><EFBFBD>撅?(Capability Layer)                <20>?
<0A>? - LLM Gateway (5銝芣芋<E88AA3>见歇<E8A781><E6AD87><EFBFBD>) <20>?         <20>?
<0A>? - Document Processing Engine            <20>?
<0A>? - RAG Engine, ETL, Medical NLP          <20>?
<0A><EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
           <20>?靘肽<E99D98>
<0A>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<0A>? 撟喳蝱<E596B3><EFBFBD>霈暹鴌撅?(Platform Layer)           <20>?
<0A>? 8銝芣瓲敹<E793B2><EFBFBD>?- 撌脣<E6928C><E884A3>?<3F>?                  <20>?
<0A>? Storage, Logging, Caching, Jobs, etc.  <20>?
<0A><EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

**<2A>喲睸<E596B2><EFBFBD>?*:

  • Schema<EFBFBD>𠉛氖: 10銝芰𡠺蝡閪ostgreSQL Schema
  • **璅<E79285><E288AA>?*: 瘥譍葵銝𡁜𦛚璅<E79285><E288AA><EFBFBD><EFBFBD><E69298><EFBFBD><E3BBAB><EFBFBD>蝵脯<E89DB5><E884AF><EFBFBD><EFBFBD>?
  • **鈭穃<E988AD><E7A983>?*: 隡睃<E99AA1>Alibaba Cloud SAE<41>函蔡

<EFBFBD><EFBFBD> 敶枏<E695B6><E69E8F><EFBFBD><E59786><EFBFBD>2025-11-18嚗?

<EFBFBD>?Week 1 撌脣<E6928C><E884A3><EFBFBD><E7909C>𣂼<EFBFBD>4憭抬<E686AD>

*<EFBFBD>𡒊垢撘<EFBFBD><EFBFBD>? (100%):

  • <EFBFBD>?<3F>唳旿摨廍chema霈曇恣嚗?銝芾”嚗蘏sl_schema嚗?
  • <EFBFBD>?<3F>𡒊垢API獢<49>沲嚗?0銝芣𦻖<E88AA3><F0A6BB96><EFBFBD>
  • <EFBFBD>?LLM<4C>峕芋<E5B395><EFBFBD><E8AEA0><EFBFBD><E39787>?
  • <EFBFBD>?銝厩<E98A9D>蝑偦<E89D91><EFBFBD><E58EB0><EFBFBD>摰賣𠹭/<2F><><EFBFBD>/銝交聢嚗?
  • <EFBFBD>?JSON閫<4E><E996AB><EFBFBD>其耨憭㵪<E686AD><E3B5AA><EFBFBD>銝剜<E98A9D>撘訫噡嚗?
  • <EFBFBD>?API瘚贝<E7989A>摰峕<E691B0>嚗?/7<><EFBFBD>嚗?

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:

  1. **<2A>峕芋<E5B395><EFBFBD><E8AEA0>?*: DeepSeek-V3 + Qwen-Max撟嗉<E6929F>
  2. 銝厩<EFBFBD>Prompt: 摰賣𠹭/<2F><><EFBFBD>/銝交聢璅<E79285>
  3. <EFBFBD><EFBFBD>眏撅閧內: 靽嘥<E99DBD>銝支葵璅<E79285><E288AA><EFBFBD><EFBFBD><EFBFBD>游ế<E6B8B8><EFBFBD><E58994>?
  4. **<2A><EFBFBD><EFBFBD>瘚?*: <20><EFBFBD>瘚醶onclusion<6F><EFBFBD>嚗䔶<E59A97><EFBFBD>瘚閪ICO撌桀<E6928C>

漎?Week 2 敺<><E695BA>憪页<E686AA>敶枏<E695B6>隞餃𦛚嚗?

*<EFBFBD>滨垢UI撘<EFBFBD><EFBFBD>? (0%):

  • 漎?Day 1-2: 憿寧𤌍蝞∠<E89D9E><E288A0>屸𢒰
  • 漎?Day 3-4: <20><>讃撖澆<E69296><E6BE86>屸𢒰
  • 漎?Day 5: 蝑偦<E89D91><EFBFBD><E58EA9>𨅯<EFBFBD>蝷?

<EFBFBD><20><><EFBFBD><EFBFBD>

<EFBFBD>滨垢

  • <EFBFBD>: React 18 + TypeScript
  • **UI摨?*: Ant Design 5
  • 頝舐眏: React Router v6
  • **<2A><EFBFBD>?*: React Query + Zustand
  • <EFBFBD><EFBFBD>: Frontend-v2嚗<32><EFBFBD><EFBFBD>瘜典<E7989C>嚗?

<EFBFBD>𡒊垢

  • <EFBFBD>: Fastify + TypeScript
  • ORM: Prisma
  • **<2A>唳旿摨?*: PostgreSQL (asl_schema)
  • LLM: DeepSeek-V3, Qwen-Max, GPT-4o, Claude-4.5

撌脣<EFBFBD><EFBFBD><EFBFBD>撟喳蝱<EFBFBD>滚𦛚嚗<EFBFBD><EFBFBD>湔𦻖雿輻鍂嚗?

import { logger } from '@/common/logging';        // <20><EFBFBD>
import { storage } from '@/common/storage';       // 摮睃<E691AE>
import { cache } from '@/common/cache';           // 蝻枏<E89DBB>
import { jobQueue } from '@/common/jobs';         // 撘<>郊隞餃𦛚
import { prisma } from '@/config/database';       // <20>唳旿摨?

<EFBFBD><EFBFBD> <20>喲睸<E596B2><EFBFBD>蝏𤘪<E89D8F>

<EFBFBD>滨垢嚗<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𡢅<EFBFBD>

frontend-v2/src/modules/asl/
<0A><EFBFBD><E98EBF><EFBFBD> pages/                    # 憿菟𢒰蝏<F0A292B0><0A>?  <20><EFBFBD><E98EBF><EFBFBD> ProjectList/         # 憿寧𤌍<E5AFA7>𡑒”憿?<3F>?Week 2 Day 1
<0A>?  <20><EFBFBD><E98EBF><EFBFBD> ProjectDetail/       # 憿寧𤌍霂行<E99C82>憿?<3F>?Week 2 Day 2
<0A>?  <20><EFBFBD><E98EBF><EFBFBD> LiteratureImport/    # <20><>讃撖澆<E69296>憿?<3F>?Week 2 Day 3-4
<0A>?  <20><EFBFBD><E5A999><EFBFBD> ScreeningResults/    # 蝑偦<E89D91><EFBFBD><E58EA9>𣈯△ <20>?Week 2 Day 5
<0A><EFBFBD><E98EBF><EFBFBD> components/               # <20>𡁶鍂蝏<E98D82><0A><EFBFBD><E98EBF><EFBFBD> hooks/                    # <20><EFBFBD>銋鵎ooks
<0A><EFBFBD><E98EBF><EFBFBD> services/                 # API靚<49><0A><EFBFBD><E98EBF><EFBFBD> types/                    # TypeScript蝐餃<E89D90>
<0A><EFBFBD><E5A999><EFBFBD> index.tsx                 # 璅<E79285><E288AA>亙藁

<EFBFBD>𡒊垢嚗<EFBFBD>歇摰峕<EFBFBD>嚗争<EFBFBD>

backend/src/modules/asl/
<0A><EFBFBD><E98EBF><EFBFBD> controllers/              # <20><EFBFBD><E689B9>?<3F>?
<0A><EFBFBD><E98EBF><EFBFBD> services/                 # 銝𡁜𦛚<F0A1819C><EFBFBD> <20>?
<0A>?  <20><EFBFBD><E5A999><EFBFBD> llmScreeningService.ts  # <20><EFBFBD>蝑偦<E89D91><EFBFBD><E39787>?
<0A><EFBFBD><E98EBF><EFBFBD> routes/                   # 頝舐眏 <20>?
<0A><EFBFBD><E98EBF><EFBFBD> schemas/                  # JSON Schema + Prompt<70><74><EFBFBD> <20>?
<0A><EFBFBD><E98EBF><EFBFBD> types/                    # 蝐餃<E89D90>摰帋<E691B0> <20>?
<0A><EFBFBD><E5A999><EFBFBD> prompts/                  # 銝厩<E98A9D>Prompt璅⊥踎 <20>?
    <20><EFBFBD><E98EBF><EFBFBD> v1.1.0-lenient.txt   # 摰賣𠹭璅<E79285>
    <20><EFBFBD><E98EBF><EFBFBD> v1.1.0-standard.txt  # <20><><EFBFBD><E79285>
    <20><EFBFBD><E5A999><EFBFBD> v1.1.0-strict.txt    # 銝交聢璅<E79285>

<EFBFBD><EFBFBD> <20><EFBFBD><E8A9A8><EFBFBD>霂湔<E99C82>

1. <20>峕芋<E5B395><EFBFBD><E8AEA0>㗇㦤<E39787>?

撌乩<EFBFBD><EFBFBD><EFBFBD>:

1. <20><EFBFBD>銝𠹺<E98A9D><F0A0B9BA><EFBFBD>讃嚗𠄌xcel嚗?
2. 蝟餌<E89D9F><EFBFBD><E996AB><EFBFBD><EFBFBD>讃嚗<E8AE83><E59A97>憸?<3F><EFBFBD>嚗?
3. 撟嗉<E6929F><EFBFBD>鍂銝支葵LLM璅<E79285>嚗?
   - DeepSeek-V3
   - Qwen-Max
4. 銝支葵璅<E79285><E288AA><EFBFBD><E7A589>斗鱏嚗ǎnclude/exclude嚗?
5. 蝟餌<E89D9F><EFBFBD>瘚见<E7989A><EFBFBD><E89D92>conclusion<6F>臬炏銝<E7828F><E98A9D><EFBFBD>
6. 餈𥪜<E9A488>蝏𤘪<E89D8F>嚗?
   - 銝<><E98A9D>?<3F>?finalDecision = 璅<E79285>蝏栞捏
   - <20><EFBFBD> <20>?finalDecision = pending嚗<67><E59A97>鈭箏極憭齿瓲嚗?

<EFBFBD><EFBFBD>: 靽嘥<E99DBD>銝支葵璅<E79285><E288AA>?*摰峕㟲<E5B395><E39FB2>眏**靘𤤿鍂<F0A4A4BF>瑟䰻<E7919F>?


2. 銝厩<E98A9D>蝑偦<E89D91><EFBFBD><E58EB0>?

憌擧聢 <EFBFBD><EFBFBD> 雿輻鍂<EFBFBD>箸艶
摰賣𠹭璅<EFBFBD> <EFBFBD>虾憭𡁶熙<EFBFBD><EFBFBD>銝漤<EFBFBD>餈? <EFBFBD><EFBFBD><EFBFBD>嗆挾
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 撟唾﹛<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? 撣貉<EFBFBD>雿輻鍂
銝交聢璅<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>嚗䔶<EFBFBD><EFBFBD><EFBFBD>? 蝎曄<EFBFBD><EFBFBD>嗆挾

摰䂿緵: 撌脣銁<E884A3>𡒊垢摰䂿緵嚗<E7B7B5><E59A97>蝡舫<E89DA1>瘛餃<E7989B><E9A483>㗇𥋘<E39787>?


3. <20>唳旿璅<E79285>嚗Òsl_schema嚗?

4銝芣瓲敹<EFBFBD>:

screening_projects    -- 蝑偦<E89D91>厰★<E58EB0><EFBFBD>摮婱ICOS<4F><53><EFBFBD><EFBFBD><E59F9D><EFBFBD><EFBFBD>
literatures          -- <20><><EFBFBD>∠𤌍嚗<F0A48C8D><E59A97>憸塩<E686B8><E5A1A9><EFBFBD><EFBFBD><E996AC><EFBFBD>DF<44>暹𦻖嚗?
screening_results    -- 蝑偦<E89D91><EFBFBD><E58EA9><EFBFBD>銝支葵璅<E79285><E288AA><EFBFBD>ế<EFBFBD>?<3F><>眏嚗?
screening_tasks      -- 蝑偦<E89D91>劐遙<E58A90><EFBFBD><E288B4><EFBFBD>隞餃𦛚餈𥕦漲頝蠘葵嚗?

<EFBFBD>綫 UI<55><EFBFBD><E7AC94><EFBFBD><EFBFBD>?

雿滨蔭: docs/03-銝𡁜𦛚璅<E79285>/ASL-AI<41><EFBFBD><E7AE84><EFBFBD>讃/03-UI霈曇恣/AI<41><EFBFBD><E7AE84><EFBFBD>讃-<2D><><EFBFBD><EFBFBD><EFBFBD><E48185><EFBFBD><E89098><EFBFBD>.html

<EFBFBD><EFBFBD>憿菟𢒰:

  1. 憿寧𤌍<EFBFBD>𡑒” - <20>曄內<E69B84><E585A7><EFBFBD><EFBFBD><E58EA9>厰★<E58EB0>?
  2. 憿寧𤌍霂行<EFBFBD> - PICOS<4F><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E59F9D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銵?
  3. <EFBFBD><EFBFBD>讃撖澆<EFBFBD> - Excel銝𠹺<E98A9D><F0A0B9BA><EFBFBD><EFBFBD><EFBFBD><E996AB><EFBFBD><EFBFBD>?
  4. *蝑偦<EFBFBD><EFBFBD><EFBFBD>? - <20>曄內蝑偦<E89D91><EFBFBD><E58EA9><EFBFBD><E6A0B6>舅銝芣芋<E88AA3><EFBFBD><E8AEA0><EFBFBD><EFBFBD><E79C8F><EFBFBD><EFBFBD><E89D92>霈?

<EFBFBD><EFBFBD> Week 2 撘<><E69298>睲遙<E79DB2><EFBFBD>霂衣<E99C82><EFBFBD><E79A9C>嚗?

Day 1-2: 憿寧𤌍蝞∠<E89D9E><E288A0>屸𢒰

隞餃𦛚:

  • <EFBFBD>𥕦遣憿寧𤌍<EFBFBD>𡑒”憿蛛<EFBFBD>/asl/projects嚗?
  • <EFBFBD>𥕦遣憿寧𤌍<EFBFBD>厰僼 + <20>𥕦遣憿寧𤌍銵典<E98AB5>
    • 憿寧𤌍<EFBFBD>滨妍
    • PICOS<EFBFBD><EFBFBD><EFBFBD>嚗?銝芸<E98A9D>畾蛛<E795BE>
    • 蝥喳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?
    • <EFBFBD>㘾膄<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?
    • 蝑偦<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㗇𥋘嚗㇌adio: 摰賣𠹭/<2F><><EFBFBD>/銝交聢嚗争<E59A97>
  • 憿寧𤌍<EFBFBD>𡑒”撅閧內嚗㇍able嚗?
  • 憿寧𤌍霂行<EFBFBD>憿蛛<EFBFBD>/asl/projects/:id嚗?

API<EFBFBD>亙藁<EFBFBD>歇摰峕<EFBFBD>嚗?

  • POST /api/v1/asl/projects - <20>𥕦遣憿寧𤌍
  • GET /api/v1/asl/projects - <20><EFBFBD>憿寧𤌍<E5AFA7>𡑒”
  • GET /api/v1/asl/projects/:id - <20><EFBFBD>憿寧𤌍霂行<E99C82>

Day 3-4: <20><>讃撖澆<E69296><E6BE86>屸𢒰

隞餃𦛚:

  • <EFBFBD><EFBFBD>讃撖澆<EFBFBD>憿蛛<EFBFBD>/asl/projects/:id/import嚗?
  • Excel<EFBFBD><EFBFBD>辣銝𠹺<EFBFBD>嚗㇄ragger嚗?
  • <EFBFBD><EFBFBD>讃憸<EFBFBD><EFBFBD>嚗㇍able嚗?
  • <EFBFBD><EFBFBD>撉諹<EFBFBD><EFBFBD>鞟內
  • 蝖株恕撖澆<EFBFBD><EFBFBD>厰僼
  • 撖澆<EFBFBD>餈𥕦漲<EFBFBD>鞟內

API<EFBFBD>亙藁<EFBFBD>歇摰峕<EFBFBD>嚗?

  • POST /api/v1/asl/projects/:id/literatures/import-json - 撖澆<E69296><E6BE86><EFBFBD>
  • GET /api/v1/asl/projects/:id/literatures - <20><EFBFBD><E79195><EFBFBD><EFBFBD>𡑒”

Excel<EFBFBD><EFBFBD>:

<EFBFBD>◆摮埈挾: title, abstract
<0A><EFBFBD><EFBFBD>畾? pmid, authors, journal, publicationYear, doi

Day 5: 蝑偦<E89D91><EFBFBD><E58EA9>𨅯<EFBFBD>蝷?潃?<EFBFBD><EFBFBD>

隞餃𦛚:

  • 蝑偦<EFBFBD><EFBFBD><EFBFBD>𨅯<EFBFBD>銵券△嚗Ǒ/asl/projects/:id/results`嚗?
  • 蝏𤘪<EFBFBD>蝑偦<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/蝥喳<E89DA5>/<2F>㘾膄/敺<><E695BA><EFBFBD><EFBFBD>
  • 蝏𤘪<EFBFBD>霂行<EFBFBD>撘寧<EFBFBD> 潃?<EFBFBD>喲睸
    • <EFBFBD><EFBFBD>讃靽⊥<EFBFBD><EFBFBD><EFBFBD>憸塩<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
    • <EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝑吔<EFBFBD>include/exclude/pending嚗?
    • **銝支葵璅<E79285><E288AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B8A1>?*嚗?
      • DeepSeek-V3嚗𡁶<E59A97>霈?+ <20><>眏 + 蝵桐縑摨?
      • Qwen-Max嚗𡁶<E59A97>霈?+ <20><>眏 + 蝵桐縑摨?
    • <EFBFBD><EFBFBD><EFBFBD>鞟內嚗<EFBFBD><EFBFBD><EFBFBD>靝舅銝芣芋<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
    • 鈭箏極憭齿瓲<EFBFBD>厰僼

API<EFBFBD>亙藁<EFBFBD>歇摰峕<EFBFBD>嚗?

  • GET /api/v1/asl/projects/:id/results - <20><EFBFBD>蝑偦<E89D91><EFBFBD><E58EA9>?

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:

{
  literatureId: string;
  title: string;
  abstract: string;
  finalDecision: 'include' | 'exclude' | 'pending';
  
  // 潃?銝支葵璅<E79285><E288AA><EFBFBD>祕蝏<E7A595><E89D8F><EFBFBD>?
  model1Result: {
    modelName: 'DeepSeek-V3';
    conclusion: 'exclude';
    confidence: 0.92;
    reason: '摰峕㟲<E5B395><E39FB2><EFBFBD><EFBFBD><EFBFBD><E696A4>?..';  // <20>?<3F>滨垢<E6BBA8><E59EA2><EFBFBD>曄內
    judgment: { P: 'match', I: 'match', C: 'mismatch', S: 'match' };
  },
  model2Result: {
    modelName: 'Qwen-Max';
    conclusion: 'include';
    confidence: 0.85;
    reason: '摰峕㟲<E5B395><E39FB2><EFBFBD><EFBFBD><E4BAA6>?..';  // <20>?<3F>滨垢<E6BBA8><E59EA2><EFBFBD>曄內
    judgment: { ... };
  },
  
  hasConflict: true;  // 銝支葵璅<E79285>銝滢<E98A9D><E6BBA2>?
  conflictFields: ['conclusion'];
}

<EFBFBD>𤣳 Week 2 撘<><E69298><EFBFBD><E785BE>?

1. 蝑偦<E89D91><EFBFBD><E58EB0><EFBFBD>㗇𥋘<E39787>?潃?

雿滨蔭: <20>𥕦遣憿寧𤌍銵典<E98AB5>

<Form.Item label="蝑偦<E89D91><EFBFBD><E58EB0>? name="screeningStyle">
  <Radio.Group defaultValue="standard">
    <Radio.Button value="lenient">
      <EFBFBD><EFBFBD> 摰賣𠹭璅<EFBFBD>
      <Tooltip title="<22><EFBFBD><E89098><EFBFBD><EFBFBD><E59A97><EFBFBD><EFBFBD>蝥喳<E89DA5>">
        <QuestionCircleOutlined />
      </Tooltip>
    </Radio.Button>
    <Radio.Button value="standard">
      <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
    </Radio.Button>
    <Radio.Button value="strict">
      <EFBFBD><EFBFBD> 銝交聢璅<EFBFBD>
    </Radio.Button>
  </Radio.Group>
</Form.Item>

2. 銝支葵璅<E79285><E288AA><EFBFBD>眏撅閧內 潃鐥<E6BD83>潃?<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

雿滨蔭: 蝑偦<E89D91><EFBFBD><E58EA9>𡏭祕<F0A18FAD><E7A595>撕蝒?

<Modal title="蝑偦<E89D91>㕑祕<E39591>? width={1000}>
  {/* <20><><EFBFBD><E89D8F>蝑?*/}
  <Alert type={finalDecision === 'pending' ? 'warning' : 'success'}>
    <strong><3E><><EFBFBD><E89D8F>蝑?</strong> {finalDecision}
  </Alert>
  
  {/* <20><EFBFBD><E884A9>鞟內 */}
  {hasConflict && (
    <Alert type="warning" showIcon style={{marginTop: 16}}>
      <EFBFBD>𩤃<EFBFBD> 銝支葵璅<EFBFBD><EFBFBD>斗鱏銝滢<EFBFBD><EFBFBD><EFBFBD>撱箄悅鈭箏極憭齿瓲
    </Alert>
  )}
  
  <Divider />
  
  {/* 潃?銝支葵璅<E79285><E288AA><EFBFBD>祕蝏<E7A595><E89D8F><EFBFBD><EFBFBD>撟嗆<E6929F><E59786>曄內嚗?/}
  <Row gutter={16}>
    <Col span={12}>
      <Card title="<22><> DeepSeek-V3" size="small">
        <Descriptions column={1} size="small">
          <Descriptions.Item label="蝏栞捏">
            <Tag color={model1.conclusion === 'include' ? 'green' : 'red'}>
              {model1.conclusion}
            </Tag>
          </Descriptions.Item>
          <Descriptions.Item label="蝵桐縑摨?>
            {(model1.confidence * 100).toFixed(0)}%
          </Descriptions.Item>
        </Descriptions>
        
        <Divider style={{margin: '12px 0'}} />
        
        <div>
          <strong><3E>斗鱏<E69697><E9B18F>眏:</strong>
          <p style={{marginTop: 8, whiteSpace: 'pre-wrap'}}>
            {model1.reason}  {/* 潃?<3F>曄內摰峕㟲<E5B395><E39FB2>眏 */}
          </p>
        </div>
        
        <Divider style={{margin: '12px 0'}} />
        
        <Collapse ghost size="small">
          <Panel header="PICO蝏游漲霂行<E99C82>" key="1">
            <Descriptions column={2} size="small">
              <Descriptions.Item label="P">{model1.judgment.P}</Descriptions.Item>
              <Descriptions.Item label="I">{model1.judgment.I}</Descriptions.Item>
              <Descriptions.Item label="C">{model1.judgment.C}</Descriptions.Item>
              <Descriptions.Item label="S">{model1.judgment.S}</Descriptions.Item>
            </Descriptions>
          </Panel>
        </Collapse>
      </Card>
    </Col>
    
    <Col span={12}>
      <Card title="<22><> Qwen-Max" size="small">
        {/* <20><EFBFBD>嚗峕遬蝷榦odel2<6C><32><EFBFBD><EFBFBD>?*/}
      </Card>
    </Col>
  </Row>
  
  {/* 鈭箏極憭齿瓲<E9BDBF>厰僼 */}
  <div style={{marginTop: 16, textAlign: 'center'}}>
    <Button type="primary" onClick={handleManualReview}>
      鈭箏極憭齿瓲甇斗<EFBFBD><EFBFBD>?
    </Button>
  </div>
</Modal>

銝箔<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蚊I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝔?
  • 敶㮖舅銝芣芋<EFBFBD><EFBFBD><EFBFBD>𧒄嚗𣬚鍂<EFBFBD><EFBFBD><EFBFBD>笆瘥𠉛<EFBFBD><EFBFBD>望䔉<EFBFBD>𡁜<EFBFBD>蝑?
  • <EFBFBD>喃蝙鈭箇掩銝枏振銋笔虾<EFBFBD>賜塳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>眏撣桀𨭌撉諹<EFBFBD>

<EFBFBD><EFBFBD> <20><EFBFBD><E6BBA9><EFBFBD>﹝蝝<E89D9D>

<EFBFBD><EFBFBD><EFBFBD>﹝嚗<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?

  1. 隞餃𦛚<EFBFBD><EFBFBD>: docs/03-銝𡁜𦛚璅<E79285>/ASL-AI<41><EFBFBD><E7AE84><EFBFBD>讃/04-撘<><E69298>𤏸恣<F0A48FB8>?03-隞餃𦛚<E9A483><F0A69B9A>圾.md

    • Week 2霂衣<E99C82>隞餃𦛚皜<F0A69B9A><E79A9C>
  2. UI<EFBFBD><EFBFBD>: docs/03-銝𡁜𦛚璅<E79285>/ASL-AI<41><EFBFBD><E7AE84><EFBFBD>讃/03-UI霈曇恣/AI<41><EFBFBD><E7AE84><EFBFBD>讃-<2D><><EFBFBD><EFBFBD><EFBFBD><E48185><EFBFBD><E89098><EFBFBD>.html

    • <EFBFBD>屸𢒰<EFBFBD><EFBFBD><EFBFBD>?
  3. API霈曇恣: docs/03-銝𡁜𦛚璅<E79285>/ASL-AI<41><EFBFBD><E7AE84><EFBFBD>讃/02-<2D><><EFBFBD>航挽霈?02-API霈曇恣閫<E681A3><E996AB>.md

    • API<EFBFBD>亙藁<EFBFBD><EFBFBD>

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧒄<EFBFBD>仿<EFBFBD>嚗?

  1. 蝟餌<EFBFBD><EFBFBD><EFBFBD>: docs/00-蝟餌<E89D9F><E9A48C><EFBFBD>霈曇恣/00-蝟餌<E89D9F>敶枏<E695B6><E69E8F><EFBFBD><E59786><EFBFBD><EFBFBD><E69298><EFBFBD><E78390>?md
  2. **<2A>滨垢璅<E79285><E288AA>?*: docs/00-蝟餌<E89D9F><E9A48C><EFBFBD>霈曇恣/<2F><EFBFBD>蝡舀芋<E88880><EFBFBD><E5A092><EFBFBD>霈曇恣-V2.md
  3. **<2A>唳旿摨栞挽霈?*: docs/03-銝𡁜𦛚璅<E79285>/ASL-AI<41><EFBFBD><E7AE84><EFBFBD>讃/02-<2D><><EFBFBD>航挽霈?01-<2D>唳旿摨栞挽霈?md

<EFBFBD><EFBFBD> 敹恍<E695B9>笔鍳<E7AC94>?

1. <20>臬𢆡<E887AC>𡒊垢嚗<E59EA2>歇摰峕<E691B0>嚗?

cd backend
npm run dev
# <20>𡒊垢餈鞱<E9A488><E99EB1>?http://localhost:3001
# API<50><EFBFBD>: /api/v1/asl

2. <20>臬𢆡<E887AC>滨垢嚗<E59EA2><E59A97><EFBFBD><E69298>𡢅<EFBFBD>

cd frontend-v2
npm run dev
# <20>滨垢餈鞱<E9A488><E99EB1>?http://localhost:5173

3. 瘚贝<E7989A>API

# <20>亙熒璉<E78692><E79289>?
curl http://localhost:3001/api/v1/asl/health

# <20><EFBFBD>憿寧𤌍<E5AFA7>𡑒”
curl http://localhost:3001/api/v1/asl/projects

<EFBFBD>𩤃<EFBFBD> <20><EFBFBD>瘜冽<E7989C>鈭钅★

1. 銝湔𧒄瘚贝<E7989A><E79285>

**JWT霈方<E99C88><E696B9><EFBFBD>𧒄蝏閗<E89D8F>**嚗䔶蝙<E494B6><EFBFBD>霈斗<E99C88>霂閧鍂<E996A7><EFBFBD>

const userId = requestBody.userId || 'asl-test-user-001';

**<2A>煺漣<E785BA><EFBFBD><E887AC><EFBFBD>閬?*: 摰䂿緵<E482BF><EFBFBD><E7AC94><EFBFBD>WT霈方<E99C88>


2. 蝑偦<E89D91><EFBFBD><E58EB0><EFBFBD><E6BE86>?

<EFBFBD>𥕦遣憿寧𤌍<EFBFBD><EFBFBD>霈啣<EFBFBD>隡𣳇<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

const projectData = {
  projectName: '...',
  picoCriteria: { ... },
  inclusionCriteria: '...',
  exclusionCriteria: '...',
  screeningConfig: {
    style: 'lenient',  // <20>?蝑偦<E89D91><EFBFBD><E58EB0>?
    models: ['deepseek-chat', 'qwen-max']
  }
};

3. 銝支葵璅<E79285><E288AA><EFBFBD><EFBFBD>舀瓲敹<E793B2><E695B9><EFBFBD>?

**敹<><EFBFBD><EFBFBD>蝡舀遬蝷?*嚗䔶<E59A97><E494B6><EFBFBD><E8B39C><EFBFBD>

餈蹱糓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撣桀𨭌隞碶賑<EFBFBD><EFBFBD>圾AI<EFBFBD><EFBFBD>ế<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?


<EFBFBD>㴓 Week 2 <20>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD>摰峕㟲<EFBFBD>?

  • <EFBFBD><EFBFBD><EFBFBD>臭誑<EFBFBD>𥕦遣憿寧𤌍嚗<EFBFBD><EFBFBD><EFBFBD>促ICOS<EFBFBD>𣬚<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㗇𥋘嚗?
  • <EFBFBD><EFBFBD><EFBFBD>臭誑銝𠹺<EFBFBD>Excel<EFBFBD><EFBFBD>辣撖澆<EFBFBD><EFBFBD><EFBFBD>
  • <EFBFBD><EFBFBD><EFBFBD>臭誑<EFBFBD><EFBFBD>蝑偦<EFBFBD><EFBFBD><EFBFBD>𨅯<EFBFBD>銵?
  • <EFBFBD><EFBFBD><EFBFBD>臭誑<EFBFBD><EFBFBD>*銝支葵璅<EFBFBD><EFBFBD><EFBFBD>祕蝏<EFBFBD><EFBFBD><EFBFBD>? 潃?
  • <EFBFBD><EFBFBD><EFBFBD>臭誑霂<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

<EFBFBD>屸𢒰韐券<EFBFBD>

  • UI蝚血<EFBFBD>Ant Design閫<6E><E996AB>
  • <EFBFBD><EFBFBD>撘誩<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝滚<EFBFBD>撅誩<EFBFBD>嚗?
  • <EFBFBD>㰘蝸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝷?
  • <EFBFBD>躰秤憭<EFBFBD><EFBFBD><EFBFBD>见末

<EFBFBD><EFBFBD>韐券<EFBFBD>

  • TypeScript蝐餃<EFBFBD>摰峕㟲
  • <EFBFBD><EFBFBD>諹提皜<EFBFBD>
  • API靚<EFBFBD>鍂撠<EFBFBD><EFBFBD>憟?
  • <EFBFBD><EFBFBD>蝚血<EFBFBD>ESLint閫<EFBFBD><EFBFBD>

<EFBFBD>働 撘<><E69298>穃遣霈?

1. <20><><EFBFBD><EFBFBD>沲嚗<E6B2B2><E59A97>憛怠<E6869B>摰?

Day 1: <20>剖遣憿菟𢒰獢<F0A292B0>沲 + 頝舐眏
Day 2: 摰䂿緵銵典<E98AB5><E585B8><EFBFBD><EFBFBD>銵?
Day 3-4: <20><>讃撖澆<E69296><E6BE86><EFBFBD>
Day 5: 蝑偦<E89D91><EFBFBD><E58EA9>𨅯<EFBFBD>蝷綽<E89DB7><E7B6BD><EFBFBD>嚗?

2. 蝏<>辣憭滨鍂

- ProjectForm.tsx嚗<78><E59A97>撱?蝻𤥁<E89DBB>憿寧𤌍銵典<E98AB5>嚗?
- LiteratureTable.tsx嚗<78><E59A97><EFBFBD><EFBFBD>銵刻”<E588BB><EFBFBD>
- ScreeningResultCard.tsx嚗<78><E59A97><EFBFBD><EFBFBD><E58EA9>𨅯㨃<F0A885AF><E3A883><EFBFBD>
- ModelComparisonPanel.tsx嚗<78><EFBFBD>见笆瘥娪𢒰<E5A8AA><EFBFBD>潃?

3. <20><EFBFBD><E59786><EFBFBD>?

// 雿輻鍂React Query蝞∠<E89D9E><E288A0>滚𦛚蝡舐𠶖<E88890>?
const { data: projects } = useQuery(['projects'], fetchProjects);

// 雿輻鍂Zustand蝞∠<E89D9E><E691B0>蝡舐𠶖<E88890>?
const useAslStore = create((set) => ({
  currentProject: null,
  setCurrentProject: (project) => set({ currentProject: project }),
}));

<EFBFBD><EFBFBD> <20>𡒊賒霈<E99C88>

Week 3-4: MVP摰峕<E691B0>

  • <EFBFBD><EFBFBD>蝑偦<EFBFBD>?
  • 蝏𤘪<EFBFBD>撖澆枂
  • 瘚贝<EFBFBD>銝羓瑪

Week 5-7: Phase 2嚗<32><EFBFBD><EFBFBD>

  • <EFBFBD><EFBFBD>Prompt<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD>銋侨ICOS
  • AI<EFBFBD><EFBFBD><EFBFBD>颲寧<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

霂西<EFBFBD>: docs/03-銝𡁜𦛚璅<E79285>/ASL-AI<41><EFBFBD><E7AE84><EFBFBD>讃/02-<2D><><EFBFBD>航挽霈?07-<2D><EFBFBD>Prompt<70><74><EFBFBD><E79285><EFBFBD><E69298>𤏸恣<F0A48FB8>?md


<EFBFBD><EFBFBD> <20>喲睸<E596B2>𠉛頂靽⊥<E99DBD>

  • 憿寧𤌍<EFBFBD><EFBFBD>: AIclinicalresearch/docs/
  • <EFBFBD><EFBFBD>隞枏<EFBFBD>: AIclinicalresearch/
  • <EFBFBD>滨垢隞<EFBFBD><EFBFBD>: frontend-v2/src/modules/asl/
  • <EFBFBD>𡒊垢隞<EFBFBD><EFBFBD>: backend/src/modules/asl/

<EFBFBD>?鈭斗𦻖璉<F0A6BB96><E79289><EFBFBD><E4BAA4>?

<EFBFBD>蚊I摨磰砲蝖株恕<EFBFBD><EFBFBD>圾嚗?

  • 憿寧𤌍<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>餃郎<EFBFBD><EFBFBD>讃AI蝑偦<EFBFBD><EFBFBD>
  • 敶枏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Week 1摰峕<E691B0>嚗𡦀eek 2敺<32><E695BA>憪页<E686AA>
  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗㇌eact + Ant Design + Fastify + Prisma嚗?
  • Week 2隞餃𦛚嚗?銝芷△<E88AB7><EFBFBD>憿寧𤌍蝞∠<E89D9E><E288A0><EFBFBD><EFBFBD><EFBFBD>桀紡<E6A180><EFBFBD><E4B993><EFBFBD><EFBFBD>𨅯<EFBFBD>蝷綽<E89DB7>
  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝑偦<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝘漤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>遬蝷箇<EFBFBD><EFBFBD><EFBFBD>
  • <EFBFBD><EFBFBD>隞餃𦛚嚗<EFBFBD>遬蝷箔舅銝芣芋<EFBFBD><EFBFBD>摰峕㟲<EFBFBD><EFBFBD>眏嚗争<EFBFBD>

蟡脲鰵AI撘<EFBFBD><EFBFBD>煾◇<EFBFBD><EFBFBD> <20><>

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦: v1.0
<EFBFBD>𥕦遣<EFBFBD><EFBFBD>: 2025-11-18
**蝏湔擪鈭?: Previous AI Assistant
**<2A><EFBFBD>?
: <20>蚊I敹恍<E695B9><EFBFBD><E785BA>𧢲<EFBFBD><F0A7A2B2>?