Files
AIclinicalresearch/docs/00-系统总体设计/10-核心业务规则总览.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

620 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 鏍稿績涓氬姟瑙勫垯鎬昏<E98EAC>
> **鐗堟湰锛?* v1.0
> **鍒涘缓鏃ユ湡锛?* 2025-10-10
> **閫傜敤鑼冨洿锛?* 鏁翠釜绯荤粺
---
## 馃搵 鐩<>
1. [鐢ㄦ埛绠$悊瑙勫垯](#鐢ㄦ埛绠$悊瑙勫垯)
2. [椤圭洰绠$悊瑙勫垯](#椤圭洰绠$悊瑙勫垯)
3. [鏅鸿兘浣撶<E6B5A3>鐞嗚<E9909E>鍒橾(#鏅鸿兘浣撶<EFBFBD>鐞嗚<EFBFBD>鍒?
4. [瀵硅瘽绠$悊瑙勫垯](#瀵硅瘽绠$悊瑙勫垯)
5. [鐭ヨ瘑搴撶<E690B4>鐞嗚<E9909E>鍒橾(#鐭ヨ瘑搴撶<EFBFBD>鐞嗚<EFBFBD>鍒?
6. [鏉冮檺鎺у埗瑙勫垯](#鏉冮檺鎺у埗瑙勫垯)
7. [閰嶉<EFBFBD>闄愬埗瑙勫垯](#閰嶉<E996B0>闄愬埗瑙勫垯)
---
## 鐢ㄦ埛绠$悊瑙勫垯
### 娉ㄥ唽瑙勫垯
**BR-U001: 閭<><E996AD><EFBFBD>竴鎬?*
- 瑙勫垯锛氭瘡涓<E798A1>偖绠卞彧鑳芥敞鍐屼竴涓<E7ABB4>处鍙?
- 楠岃瘉鏃舵満锛氭敞鍐屾椂
- 閿欒<E996BF>鎻愮ず锛?璇ラ偖绠卞凡琚<E587A1>敞鍐?
**BR-U002: 閭<><E996AD>鏍煎紡楠岃瘉**
- 瑙勫垯锛氬繀椤绘槸鏈夋晥鐨勯偖绠辨牸寮?
- 姝e垯锛歚^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}$`
- 閿欒<E996BF>鎻愮ず锛?閭<><E996AD>鏍煎紡涓嶆<E6B693>纭?
**BR-U003: 瀵嗙爜寮哄害**
- 瑙勫垯锛氬瘑鐮佽嚦灏?浣嶏紝鍖呭惈瀛楁瘝鍜屾暟瀛?
- 姝e垯锛歚^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d@$!%*#?&]{8,}$`
- 閿欒<E996BF>鎻愮ず锛?瀵嗙爜鑷冲皯8浣嶏紝闇€鍖呭惈瀛楁瘝鍜屾暟瀛?
**BR-U004: 榛樿<E6A69B>璇曠敤鏈?*
- 瑙勫垯锛氭柊鐢ㄦ埛榛樿<E6A69B>鑾峰緱30澶╄瘯鐢ㄦ湡
- 瀹炵幇锛歚trial_ends_at = now() + 30澶ー
### 鐧诲綍瑙勫垯
**BR-U005: 璐︽埛鐘舵€佹<E282AC>鏌?*
- 瑙勫垯锛氬彧鏈塻tatus=active鐨勭敤鎴峰彲浠ョ櫥褰?
- 鐘舵€侊細
- `active` - 鍙<>櫥褰?
- `inactive` - 鏈<>縺娲伙紝涓嶅彲鐧诲綍
- `suspended` - 宸叉殏鍋滐紝涓嶅彲鐧诲綍
**BR-U006: 瀵嗙爜閿欒<E996BF>娆℃暟闄愬埗**
- 瑙勫垯锛?鍒嗛挓鍐呮渶澶?娆¢敊璇<E6958A>皾璇?
- 瓒呰繃娆℃暟锛氫复鏃堕攣瀹氳处鎴?5鍒嗛挓
- 瀹炵幇锛氫娇鐢≧edis璁板綍澶辫触娆℃暟
**BR-U007: JWT Token鏈夋晥鏈?*
- Access Token锛?澶?
- Refresh Token锛?0澶?
- 杩囨湡鍚庨渶瑕侀噸鏂扮櫥褰?
---
## 椤圭洰绠$悊瑙勫垯
### 鍒涘缓瑙勫垯
**BR-P001: 椤圭洰鏁伴噺鏃犻檺鍒?*
- 瑙勫垯锛氱敤鎴峰彲浠ュ垱寤轰换鎰忔暟閲忕殑椤圭洰
- 鐞嗙敱锛氶」鐩<E3808D>槸鏍稿績鍔熻兘锛屼笉搴旈檺鍒?
**BR-P002: 椤圭洰鍚嶇О蹇呭~**
- 瑙勫垯锛氶」鐩<E3808D>悕绉颁笉鑳戒负绌?
- 闀垮害锛?-200瀛楃<E7809B>
- 閿欒<E996BF>鎻愮ず锛?椤圭洰鍚嶇О涓嶈兘涓虹┖"
**BR-P003: 椤圭洰鎻忚堪蹇呭~**
- 瑙勫垯锛氶」鐩<E3808D>弿杩颁笉鑳戒负绌猴紙鐢ㄤ簬涓婁笅鏂囨敞鍏ワ級
- 鏈€灏忛暱搴︼細10瀛楃<E7809B>
- 閿欒<E996BF>鎻愮ず锛?璇疯緭鍏ラ」鐩<E3808D>儗鏅<E58497>俊鎭<E4BF8A>紝鑷冲皯10涓<30>瓧绗?
### 鏇存柊瑙勫垯
**BR-P004: 椤圭洰鑳屾櫙鍔ㄦ€佹洿鏂?*
- 瑙勫垯锛氱敤鎴峰彲浠ラ殢鏃剁紪杈戦」鐩<E3808D>弿杩?
- 瑙勫垯锛氬彲浠?鍥哄畾"AI鍥炲<E98DA5>鍒伴」鐩<E3808D>弿杩颁腑
- 瀹炵幇锛氳拷鍔犲埌description瀛楁<E7809B><EFBFBD>
**BR-P005: 椤圭洰鎵€鏈夋潈楠岃瘉**
- 瑙勫垯锛氬彧鑳戒慨鏀?鍒犻櫎鑷<E6AB8E>繁鐨勯」鐩?
- 楠岃瘉锛歚project.userId === currentUser.id`
- 閿欒<E996BF>鎻愮ず锛?鏃犳潈闄愭搷浣滆<E6B5A3>椤圭洰"
### 鍒犻櫎瑙勫垯
**BR-P006: 绾ц仈鍒犻櫎**
- 瑙勫垯锛氬垹闄ら」鐩<E3808D>椂锛岀骇鑱斿垹闄ゅ叾鎵€鏈夊<E98F88>璇濆拰娑堟伅
- 瀹炵幇锛氭暟鎹<E69A9F>簱ON DELETE CASCADE
-<><E7BAAD>锛氬墠绔<E5A2A0>渶瑕佷簩娆璁?
**BR-P007: 杞<>垹闄わ紙鍙<E7B499>€夛級**
- 瑙勫垯锛氶噸瑕侀」鐩<E3808D>彲浠ュ厛杞<E58E9B>垹闄わ紝淇濈暀30澶?
- 瀹炵幇锛氭坊鍔燿eleted_at瀛楁<E7809B>
- 澶囨敞锛氬綋鍓嶇増鏈<E5A297>殏涓嶅疄鐜?
---
## 鏅鸿兘浣撶<E6B5A3>鐞嗚<E9909E>鍒?
### 鏅鸿兘浣撻厤缃?
**BR-A001: 鏅鸿兘浣撻厤缃<E58EA4>寲绠**
- 瑙勫垯锛氭櫤鑳戒綋閰嶇疆瀛樺偍鍦╜config/agents.yaml`
- 瑙勫垯锛氫笉閫氳繃鏁版嵁搴撶<E690B4>鐞?
- 瑙勫垯锛氫慨鏀归厤缃<E58EA4>悗闇€瑕侀噸鍚<E599B8>湇鍔?
**BR-A002: 鏅鸿兘浣撶姸鎬?*
- `active` - 鍙<>敤锛岀敤鎴峰彲浠ラ€夋嫨
- `inactive` - 涓嶅彲鐢<E5BDB2>紝闅愯棌
- `testing` - 娴嬭瘯涓<E798AF>紝浠呯<E6B5A0>鐞嗗憳鍙<E686B3><E98D99>
**BR-A003: 鏅鸿兘浣撳垎绫?*
- 閫夐<E996AB>闃舵<E99783>锛氶€夐<E282AC>璇勪环銆佺<E98A86>瀛﹂棶棰樻⒊鐞?
- 鐮旂┒璁捐<E79281>锛歅ICOS鏋勫缓銆佽<E98A86>瀵熸寚鏍囪<E98F8D>璁°€丆RF鍒跺畾銆佹牱鏈<E789B1>噺璁畻銆佷复搴婄爺绌舵柟妗堟挵鍐?
- 璁烘枃闃舵<E99783>锛氳<E9949B>鏂囨鼎鑹层€佽<E282AC>鏂囩炕璇戙€佹柟娉曞<E5A889>璇勫<E79287>銆佹湡鍒婃柟娉曞<E5A889>璇勫<E79287>銆佹湡鍒婄ǹ绾﹁瘎瀹?
### Prompt绠
**BR-A004: Prompt鏂囦欢绠**
- 瑙勫垯锛歅rompt瀛樺偍鍦╜backend/prompts/`鐩<>
- 鍛藉悕锛歚{agent_id}_system.txt` 鍜?`{agent_id}_user.txt`
- 鐗堟湰锛氶€氳繃Git绠悊鐗堟湰
**BR-A005: Prompt鍙橀噺娉ㄥ叆**
- 瑙勫垯锛歅rompt涓<74>彲浠ヤ娇鐢ㄥ彉閲?
- 鏍煎紡锛歚{variable_name}`
- 绀轰緥锛歚{project_description}`, `{user_question}`
### 妯″瀷閰嶇疆
**BR-A006: 妯″瀷鍙傛暟閰嶇疆**
- 瑙勫垯锛氭瘡涓<E798A1>櫤鑳戒綋鍙<E7B68B>互閰嶇疆涓嶅悓妯″瀷鐨勫弬鏁?
- 鍙傛暟锛?
- `temperature`: 0.0-1.0
- `max_tokens`: 鏈€澶ц緭鍑簍oken鏁?
- `top_p`: 0.0-1.0
**BR-A007: 妯″瀷鍒囨崲**
- 瑙勫垯锛氱敤鎴峰彲浠ュ湪瀵硅瘽涓<E798BD>垏鎹㈡ā鍨?
-<>€夋ā鍨嬶細
- `deepseek-v3` (榛樿<E6A69B>)
- `qwen3-72b`
- `gemini-2.0-flash` (鍙<>€?
---
## 瀵硅瘽绠$悊瑙勫垯
### 鍒涘缓瀵硅瘽
**BR-C001: 瀵硅瘽褰掑睘**
- 瑙勫垯锛氬<E9949B>璇濆彲浠ュ睘浜庨」鐩<E3808D>紝涔熷彲浠ユ槸鍏ㄥ眬蹇<E79CAC>€熼棶绛?
- 椤圭洰瀵硅瘽锛歚projectId` 涓嶄负null
- 鍏ㄥ眬蹇<E79CAC>€熼棶绛旓細`projectId` 涓簄ull
**BR-C002: 瀵硅瘽鏍囬<E98F8D><EFBFBD>姩鐢熸垚**
- 瑙勫垯锛氶<E9949B>娆″垱寤哄<E5AFA4>璇濇椂锛屾爣棰樹负"涓巤鏅鸿兘浣撳悕绉皚鐨勫<E990A8>璇?
- 瑙勫垯锛氬彲浠ユ墜鍔ㄤ慨鏀规爣棰?
### 涓婁笅鏂囩<E98F82>鐞?
**BR-C003: 椤圭洰鑳屾櫙鑷<E6AB99>姩娉ㄥ叆**
- 瑙勫垯锛氬<E9949B>鏋滃<E98F8B>璇濆睘浜庨」鐩<E3808D>紝鑷<E7B49D>姩灏嗛」鐩甦escription娉ㄥ叆涓婁笅鏂?
- 娉ㄥ叆浣嶇疆锛歋ystem prompt涔嬪悗
- 鏍煎紡锛歚# 椤圭洰鑳屾櫙\n{project.description}`
**BR-C004: 鍘嗗彶瀵硅瘽绠$悊**
- 瑙勫垯锛氫繚鐣欐渶杩?0杞<30><E69D9E>璇濅綔涓轰笂涓嬫枃
- 瑙勫垯锛氳秴杩?0杞<30>殑瀵硅瘽锛岃繘琛屾憳瑕佸帇缂?
- Token闄愬埗锛氫笂涓嬫枃鎬籺oken鏁颁笉瓒呰繃6000
**BR-C005: 鐭ヨ瘑搴撳紩鐢?*
- 瑙勫垯锛氱敤鎴峰彲浠ラ€氳繃`@鐭ヨ瘑搴撳悕绉癭寮曠敤鐭ヨ瘑搴?
- 瑙勫垯锛氭渶澶氬悓鏃跺紩鐢?涓<>煡璇嗗簱
- 妫€绱㈡暟閲忥細姣忎釜鐭ヨ瘑搴撴<E690B4><EFBFBD>op 5缁撴灉
### 娑堟伅鍥哄畾
**BR-C006: 鍥哄畾娑堟伅鍒伴」鐩<E3808D>儗鏅?*
- 瑙勫垯锛氬彧鏈堿I鍥炲<E98DA5><EFBFBD>互琚<E4BA92>浐瀹?
- 瑙勫垯锛氬彧鏈夐」鐩<E3808D>唴瀵硅瘽鍙<E798BD>互鍥哄畾锛堝叏灞€瀵硅瘽涓嶅彲锛?
- 瀹炵幇锛氳拷鍔犲埌project.description鏈<6E>
- 鏍煎紡锛?
```
--- 鏉ヨ嚜瀵硅瘽鐨勮ˉ鍏?---
{message.content}
```
**BR-C007: 鍥哄畾娑堟伅鏍囪<E98F8D>**
- 瑙勫垯锛氳<E9949B>鍥哄畾鐨勬秷鎭<E7A7B7>紝isPinned瀛楁<E7809B>璁句负true
- 瑙勫垯锛氬浐瀹氬悗涓嶅彲鍙栨秷锛堢畝鍖栧疄鐜帮級
### 娴佸紡杈撳嚭
**BR-C008: Server-Sent Events**
- 瑙勫垯锛氫娇鐢⊿SE瀹炵幇娴佸紡杈撳嚭
- 浜嬩欢绫诲瀷锛?
- `start`: 寮€濮嬬敓鎴?
- `token`: 姣忎釜token
- `done`: 瀹屾垚
- `error`: 閿欒<E996BF>
**BR-C009: 娴佸紡杈撳嚭瓒呮椂**
- 瑙勫垯锛氬崟涓<E5B49F><E6B693>姹傛渶闀?0绉?
- 瓒呮椂鍚庯細杩斿洖宸茬敓鎴愮殑鍐呭<E98D90>
- 閿欒<E996BF>鎻愮ず锛?鐢熸垚瓒呮椂锛岃<E9949B>閲嶈瘯"
---
## 鐭ヨ瘑搴撶<E690B4>鐞嗚<E9909E>鍒?
### 鏁伴噺闄愬埗
**BR-K001: 鐭ヨ瘑搴撴暟閲忛檺鍒?*
- 瑙勫垯锛氭瘡涓<E798A1>敤鎴锋渶澶氬垱寤?涓<>煡璇嗗簱
- 楠岃瘉鏃舵満锛氬垱寤虹煡璇嗗簱鏃?
- 閿欒<E996BF>鎻愮ず锛?宸茶揪鍒扮煡璇嗗簱鏁伴噺涓婇檺锛?涓<>級"
**BR-K002: 鏂囨。鏁伴噺闄愬埗**
- 瑙勫垯锛氭瘡涓<E798A1>煡璇嗗簱鏈€澶氫笂浼?0涓<30>枃妗?
- 楠岃瘉鏃舵満锛氫笂浼犳枃妗f椂
- 閿欒<E996BF>鎻愮ず锛?璇ョ煡璇嗗簱鏂囨。鏁伴噺宸茶揪涓婇檺锛?0涓<30>級"
### 鏂囨。涓婁紶
**BR-K003: 鏂囦欢鏍煎紡闄愬埗**
- 瑙勫垯锛氬彧鏀<E5BDA7>寔PDF鍜孌OCX鏍煎紡
- MIME绫诲瀷锛?
- `application/pdf`
- `application/vnd.openxmlformats-officedocument.wordprocessingml.document`
- 閿欒<E996BF>鎻愮ず锛?浠呮敮鎸丳DF鍜孌OCX鏍煎紡"
**BR-K004: 鏂囦欢澶у皬闄愬埗**
- 瑙勫垯锛氬崟涓<E5B49F>枃浠舵渶澶?0MB
- 楠岃瘉鏃舵満锛氫笂浼犲墠锛堝墠绔<E5A2A0>級鍜屼笂浼犲悗锛堝悗绔<E68297>
- 閿欒<E996BF>鎻愮ず锛?鏂囦欢澶у皬瓒呰繃闄愬埗锛堟渶澶?0MB锛?
**BR-K005: 鏂囦欢鍚嶅敮涓€鎬?*
- 瑙勫垯锛氬悓涓€鐭ヨ瘑搴撳唴锛屾枃浠跺悕涓嶈兘閲嶅<E996B2>
- 楠岃瘉锛氭<E9949B>鏌ユ槸鍚﹀凡瀛樺湪鍚屽悕鏂囦欢
- 澶勭悊锛氳嚜鍔ㄩ噸鍛藉悕锛堟坊鍔犳椂闂存埑锛?
### 鏂囨。澶勭悊
**BR-K006: 鏂囨。澶勭悊鐘舵€?*
- 鐘舵€佹祦杞<E7A5A6>
1. `uploading` - 涓婁紶涓?
2. `processing` - Dify澶勭悊涓?
3. `completed` - 澶勭悊瀹屾垚
4. `failed` - 澶勭悊澶辫触
**BR-K007: 澶勭悊澶辫触閲嶈瘯**
- 瑙勫垯锛氬<E9949B>鐞嗗け璐ョ殑鏂囨。涓嶈嚜鍔ㄩ噸璇?
- 瑙勫垯锛氱敤鎴峰彲浠ュ垹闄ゅ悗閲嶆柊涓婁紶
- 閿欒<E996BF>淇℃伅锛氳<E9949B>褰曞湪error_message瀛楁<E7809B>
**BR-K008: 寮傛<E5AFAE>澶勭悊**
- 瑙勫垯锛氭枃妗d笂浼犲悗绔嬪嵆杩斿洖
- 瑙勫垯锛氬悗鍙板紓姝ユ彁浜ゅ埌Dify澶勭悊
- 瑙勫垯锛氬墠绔<E5A2A0>疆璇㈣幏鍙栧<E98D99>鐞嗙姸鎬?
### 鐭ヨ瘑搴撴<E690B4>绱?
**BR-K009: 娣峰悎妫€绱?*
- 瑙勫垯锛氫娇鐢ㄥ叧閿<E58FA7>瘝妫€绱?+ 璇<>箟妫€绱?
- 瑙勫垯锛氬惎鐢≧eranking閲嶆帓搴?
- Top K锛?涓<>粨鏋?
- 鐩镐技搴﹂槇鍊硷細0.5
**BR-K010: 妫€绱㈢粨鏋滃紩鐢?*
- 瑙勫垯锛欰I鍥炵瓟蹇呴』娉ㄦ槑寮曠敤鏉ユ簮
- 鏍煎紡锛歚[鏂囨。鍚峕 鍐呭<E98D90>...`
- 瑙勫垯锛氬墠绔<E5A2A0>樉绀哄彲鐐瑰嚮鐨勫紩鐢ㄦ爣璁?
---
## 鏉冮檺鎺у埗瑙勫垯
### 鐢ㄦ埛鏉冮檺
**BR-P001: 瑙掕壊瀹氫箟**
- `user` - 鏅<>€氱敤鎴?
-<>互浣跨敤鎵€鏈夊姛鑳?
- 鍙楅厤棰濋檺鍒?
- `admin` - 绠$悊鍛?
- 鎵€鏈塽ser鏉冮檺
-<>互璁块棶杩愯惀鍚庡彴
-<>互鏌ョ湅鎵€鏈夌敤鎴锋暟鎹?
### 鏁版嵁闅旂<E99785>
**BR-P002: 鐢ㄦ埛鏁版嵁闅旂<E99785>**
- 瑙勫垯锛氱敤鎴峰彧鑳借<E991B3><EFBFBD>嚜宸卞垱寤虹殑鏁版嵁
- 楠岃瘉锛氭墍鏈夋煡璇㈠繀椤诲寘鍚玼serId杩囨护
- 瀹炵幇锛?
```sql
WHERE user_id = currentUser.id
```
**BR-P003: 椤圭洰鏉冮檺楠岃瘉**
- 瑙勫垯锛氫慨鏀?鍒犻櫎椤圭洰鍓嶏紝楠岃瘉鎵€鏈夋潈
- 瀹炵幇锛?
```typescript
const project = await prisma.project.findFirst({
where: { id: projectId, userId: currentUser.id }
})
if (!project) throw new UnauthorizedError()
```
### 绠$悊鍛樻潈闄?
**BR-P004: 鐢ㄦ埛绠$悊鏉冮檺**
- 瑙勫垯锛氬彧鏈塧dmin鍙<6E>互鏌ョ湅鐢ㄦ埛鍒楄〃
- 瑙勫垯锛氬彧鏈塧dmin鍙<6E>互淇<E4BA92>敼鐢ㄦ埛鐘舵€?
- 瑙勫垯锛歛dmin涓嶈兘鍒犻櫎鐢ㄦ埛锛堝彧鑳芥殏鍋滐級
**BR-P005: 瀵硅瘽鏌ョ湅鏉冮檺**
- 瑙勫垯锛氬彧鏈塧dmin鍙<6E>互鏌ョ湅鐢ㄦ埛瀵硅瘽
- 瑙勫垯锛氬繀椤昏<E6A4A4>褰曞<E8A4B0>璁℃棩蹇?
- 瑙勫垯锛氭晱鎰熶俊鎭<E4BF8A>渶瑕佽劚鏁忥紙濡傞偖绠便€佹墜鏈哄彿锛?
---
## 閰嶉<E996B0>闄愬埗瑙勫垯
### 鐭ヨ瘑搴撻厤棰?
**BR-Q001: 鐭ヨ瘑搴撴暟閲忛厤棰?*
- 榛樿<E6A69B>閰嶉<E996B0>锛?涓<>煡璇嗗簱
- 璁板綍瀛楁<E7809B>锛歚users.kb_quota`, `users.kb_used`
- 鏇存柊鏃舵満锛氬垱寤?鍒犻櫎鐭ヨ瘑搴撴椂
**BR-Q002: 鏂囨。鏁伴噺閰嶉<E996B0>**
- 榛樿<E6A69B>閰嶉<E996B0>锛?0涓<30>枃妗?鐭ヨ瘑搴?
- 妫€鏌ユ椂鏈猴細涓婁紶鏂囨。鍓?
- 瀹炵幇锛?
```sql
SELECT COUNT(*) FROM documents
WHERE kb_id = ? AND status != 'failed'
```
### 瀛樺偍閰嶉<E996B0>锛堥<E9949B>鐣欙級
**BR-Q003: 瀛樺偍绌洪棿閰嶉<E996B0>**
- 榛樿<E6A69B>閰嶉<E996B0>锛?GB/鐢ㄦ埛
- 褰撳墠鐗堟湰锛氫笉寮哄埗闄愬埗
- 鏈<>潵锛氬彲浠ユ牴鎹<E789B4>疄闄呴渶姹傚惎鐢?
### API闄愭祦
**BR-Q004: API璇锋眰棰戠巼闄愬埗**
- 鏅<>€氱敤鎴凤細100娆?鍒嗛挓
- 绠悊鍛橈細500娆?鍒嗛挓
- 瀹炵幇锛氫娇鐢≧edis + 婊戝姩绐楀彛绠楁硶
**BR-Q005: 鐧诲綍鎺ュ彛闄愭祦**
- 瑙勫垯锛?娆?鍒嗛挓
- 瑙勫垯锛欼P鍜岃处鎴峰弻閲嶉檺鍒?
- 瓒呰繃鍚庯細涓存椂灏佺<E7818F>15鍒嗛挓
---
## 涓氬姟娴佺▼
### 瀹屾暣鐨勫<E990A8>璇濇祦绋?
```
1. 鐢ㄦ埛閫夋嫨鏅鸿兘浣?
鈫?
2. 鍒涘缓瀵硅瘽锛堝彲閫夊叧鑱旈」鐩<E3808D>
鈫?
3. 鐢ㄦ埛鍙戦€佹秷鎭<E7A7B7>紙鍙<E7B499>€夊紩鐢ㄧ煡璇嗗簱锛?
鈫?
4. 鍚庣<E98D9A>缁勮<E7BC81>涓婁笅鏂囷細
- 椤圭洰鑳屾櫙锛堝<E9949B>鏈夛級
- 鏅鸿兘浣揝ystem Prompt
- 鍘嗗彶瀵硅瘽锛堟渶杩?0杞<30>
- 鐭ヨ瘑搴撴<E690B4>绱㈢粨鏋滐紙濡傛湁锛?
- 褰撳墠鐢ㄦ埛闂<E59F9B><E99782>
鈫?
5. 璋冪敤LLM锛堟祦寮忚緭鍑猴級
鈫?
6. 淇濆瓨娑堟伅鍒版暟鎹<E69A9F>
鈫?
7. 鐢ㄦ埛鍙<E59F9B>€夛細鍥哄畾娑堟伅鍒伴」鐩<E3808D>儗鏅?
```
### 鐭ヨ瘑搴撴枃妗<E5A697>鐞嗘祦绋?
```
1. 鐢ㄦ埛涓婁紶鏂囨。
鈫?
2. 楠岃瘉锛?
- 鏂囦欢鏍煎紡
- 鏂囦欢澶у皬
- 鏁伴噺闄愬埗
鈫?
3. 涓婁紶鍒板<E98D92>璞″瓨鍌<E793A8>紙OSS锛?
鈫?
4. 鍒涘缓document璁板綍锛坰tatus: uploading锛?
鈫?
5. 寮傛<E5AFAE>鎻愪氦鍒癉ify锛?
- 璋冪敤Dify涓婁紶API
- 鑾峰彇dify_document_id
鈫?
6. 杞<><E69D9E>澶勭悊鐘舵€侊紙姣?绉掞級锛?
- processing 鈫?鏇存柊progress
- completed 鈫?鏇存柊status, segments_count, tokens_count
- failed 鈫?鏇存柊status, error_message
鈫?
7. 鏇存柊鐭ヨ瘑搴撶粺璁★細
- file_count
- total_size_bytes
```
---
## 鏁版嵁涓€鑷存€ц<E282AC>鍒?
### 缁熻<E7BC81>瀛楁<E7809B>鏇存柊
**BR-D001: 椤圭洰瀵硅瘽鏁扮粺璁?*
- 瀛楁<E7809B>锛歚projects.conversation_count`
- 鏇存柊鏃舵満锛氬垱寤?鍒犻櫎瀵硅瘽鏃?
- 瀹炵幇锛氫娇鐢ㄤ簨鍔′繚璇佷竴鑷存€?
**BR-D002: 鐭ヨ瘑搴撴枃妗暟缁熻<E7BC81>**
- 瀛楁<E7809B>锛歚knowledge_bases.file_count`
- 鏇存柊鏃舵満锛氭枃妗姸鎬佸彉涓篶ompleted鎴栧垹闄ゆ椂
-畻锛氬彧缁熻<E7BC81>status='completed'鐨勬枃妗?
**BR-D003: 鐢ㄦ埛鐭ヨ瘑搴撴暟缁熻<E7BC81>**
- 瀛楁<E7809B>锛歚users.kb_used`
- 鏇存柊鏃舵満锛氬垱寤?鍒犻櫎鐭ヨ瘑搴撴椂
- 楠岃瘉锛氬垱寤哄墠妫€鏌ユ槸鍚﹁秴杩噏uota
### 绾ц仈鍒犻櫎
**BR-D004: 鐢ㄦ埛鍒犻櫎绾ц仈**
- 瑙勫垯锛氬垹闄ょ敤鎴锋椂锛岀骇鑱斿垹闄ゆ墍鏈夊叧鑱旀暟鎹?
- 鍖呮嫭锛歱rojects, conversations, messages, knowledge_bases, documents
- 瀹炵幇锛氭暟鎹<E69A9F>簱ON DELETE CASCADE
**BR-D005: 椤圭洰鍒犻櫎绾ц仈**
- 瑙勫垯锛氬垹闄ら」鐩<E3808D>椂锛岀骇鑱斿垹闄ゆ墍鏈夊<E98F88>璇濆拰娑堟伅
- 瀹炵幇锛氭暟鎹<E69A9F>簱ON DELETE CASCADE
**BR-D006: 鐭ヨ瘑搴撳垹闄ょ骇鑱?*
- 瑙勫垯锛氬垹闄ょ煡璇嗗簱鏃讹細
1. 绾ц仈鍒犻櫎鏁版嵁搴撲腑鐨刣ocuments
2. 璋冪敤Dify API鍒犻櫎dataset
3. 鍒犻櫎瀵硅薄瀛樺偍涓<E5818D>殑鏂囦欢
---
## 寮傚父澶勭悊瑙勫垯
### 閿欒<E996BF>绫诲瀷
**BR-E001: 涓氬姟閿欒<E996BF>**
- 楠岃瘉澶辫触锛欻TTP 422
- 璧勬簮涓嶅瓨鍦<E793A8>細HTTP 404
- 鏉冮檺涓嶈冻锛欻TTP 403
- 閰嶉<E996B0>瓒呴檺锛欻TTP 403
**BR-E002: 绯荤粺閿欒<E996BF>**
- 鏁版嵁搴撻敊璇<E6958A>細HTTP 500
- 缃戠粶閿欒<E996BF>锛欻TTP 503
- Dify鏈嶅姟閿欒<E996BF>锛欻TTP 503
### 閿欒<E996BF>鍝嶅簲
**BR-E003: 缁熶竴閿欒<E996BF>鏍煎紡**
```json
{
"success": false,
"error": {
"code": "QUOTA_EXCEEDED",
"message": "鐭ヨ瘑搴撴暟閲忓凡杈句笂闄?,
"details": {
"resource": "knowledge_base",
"quota": 3,
"used": 3
}
},
"timestamp": "2025-10-10T10:00:00.000Z"
}
```
---
## 瀹夊叏瑙勫垯
### 瀵嗙爜瀹夊叏
**BR-S001: 瀵嗙爜鍔犲瘑**
- 绠楁硶锛歜crypt
- 鎴愭湰鍥犲瓙锛?2
- 瑙勫垯锛氭案涓嶅瓨鍌ㄦ槑鏂囧瘑鐮?
**BR-S002: Token瀹夊叏**
- 瑙勫垯锛歍oken鍖呭惈鐢ㄦ埛ID鍜岃<E98D9C>鑹?
- 瑙勫垯锛歍oken绛惧悕浣跨敤JWT_SECRET
- 瑙勫垯锛氳繃鏈烼oken鑷<6E>姩澶辨晥
### SQL娉ㄥ叆闃叉姢
**BR-S003: 浣跨敤ORM**
- 瑙勫垯锛氭墍鏈夋暟鎹<E69A9F>簱鎿嶄綔浣跨敤Prisma ORM
- 瑙勫垯锛氱<E9949B>姝㈡嫾鎺<E5ABBE>QL璇<4C>
- 瑙勫垯锛氫娇鐢ㄥ弬鏁板寲鏌ヨ<E98F8C>
### XSS闃叉姢
**BR-S004: 杈撳叆杞<E58F86>**
- 瑙勫垯锛氭墍鏈夌敤鎴疯緭鍏ュ湪鏄剧ず鍓嶈浆涔?
- 瑙勫垯锛氫娇鐢≧eact榛樿<E6A69B><EFBFBD>
- 瑙勫垯锛氱<E9949B><EFBFBD>娇鐢╠angerouslySetInnerHTML锛堥櫎闈炲繀瑕侊級
---
## 鎬ц兘浼樺寲瑙勫垯
### 缂撳瓨瑙勫垯
**BR-O001: 鏅鸿兘浣撳垪琛ㄧ紦瀛?*
- 瑙勫垯锛氭櫤鑳戒綋鍒楄〃缂撳瓨1灏忔椂
- 瀹炵幇锛歊edis缂撳瓨
- 澶辨晥锛氫慨鏀筧gents.yaml鍚庨渶娓呴櫎缂撳瓨
**BR-O002: 鐢ㄦ埛淇℃伅缂撳瓨**
- 瑙勫垯锛氱敤鎴蜂俊鎭<E4BF8A>紦瀛?鍒嗛挓
- Key锛歚user:{userId}`
- 澶辨晥锛氱敤鎴蜂俊鎭<E4BF8A>洿鏂版椂
### 鏌ヨ<E98F8C>浼樺寲
**BR-O003: 鍒嗛〉鏌ヨ<E98F8C>**
- 瑙勫垯锛氬垪琛ㄦ煡璇㈠繀椤诲垎椤?
- 榛樿<E6A69B>锛?0鏉?椤?
- 鏈€澶э細100鏉?椤?
**BR-O004: 绱㈠紩浣跨敤**
- 瑙勫垯锛氶<E9949B>绻佹煡璇㈢殑瀛楁<E7809B>蹇呴』寤虹珛绱㈠紩
- 鍖呮嫭锛歟mail, userId, projectId, conversationId
- 瀹氭湡锛氭<E9949B>鏌ユ參鏌ヨ<E98F8C>鏃ュ織
---
## 鏁版嵁淇濈暀瑙勫垯
### 鏁版嵁褰掓。
**BR-R001: 瀵硅瘽褰掓。锛堟湭鏉ワ級**
- 瑙勫垯锛氳秴杩?涓<>湀鐨勫<E990A8>璇濊嚜鍔ㄥ綊妗?
- 褰掓。琛<E38082>細conversations_archive
- 鏌ヨ<E98F8C>锛氶粯璁や笉鏌ヨ<E98F8C>褰掓。鏁版嵁
**BR-R002: 鏃ュ織娓呯悊**
- 瑙勫垯锛歛dmin_logs淇濈暀3涓<33>
- 鎵ц<E98EB5>锛氬畾鏃朵换鍔℃瘡鏈堟竻鐞?
---
## 涓氬姟瑙勫垯鍙樻洿娴佺▼
1. **鎻愬嚭鍙樻洿**锛氬~鍐欏彉鏇寸敵璇?
2. **褰卞搷璇勪及**锛氳瘎浼板<E6B5BC>绯荤粺鐨勫奖鍝?
3. **Review**锛氭妧鏈<E5A6A7>洟闃烺eview
4. **鏇存柊鏂囨。**锛氬悓姝ユ洿鏂版湰鏂囨。
5. **瀹炴柦鍙樻洿**锛氫慨鏀逛唬鐮?
6. **娴嬭瘯楠岃瘉**锛氭祴璇曟柊瑙勫垯
7. **涓婄嚎鍙戝竷**锛氬彂甯冨埌鐢熶骇
---
**鏂囨。缁存姢锛?* 涓氬姟瑙勫垯鍙樻洿闇€鍚屾<E98D9A>鏇存柊
**Review棰戠巼锛?* 姣忎釜閲岀▼纰慠eview涓€娆?
**鏈€鍚庢洿鏂帮細** 2025-10-10
**缁存姢鑰咃細** 浜у搧缁忕悊 + 鎶€鏈<E282AC>礋璐