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%)
4.5 KiB
4.5 KiB
[璅∪<E79285><E288AA>滨妍] - <20>唳旿摨栞挽霈?
*Schema嚗?
xxx_schema
銵冽㺭<EFBFBD>𧶏<EFBFBD> X銝? *靘肽<EFBFBD>嚗? platform_schema.users嚗<73><E59A97><EFBFBD>㚁<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD>堆<EFBFBD> YYYY-MM-DD
<EFBFBD><EFBFBD> Schema霂湔<E99C82>
*Schema<EFBFBD>𥕦遣嚗?
CREATE SCHEMA IF NOT EXISTS xxx_schema;
*<EFBFBD>諹提<EFBFBD><EFBFBD>凒嚗?
- <EFBFBD>蠘<EFBFBD>1<EFBFBD>詨<EFBFBD><EFBFBD>唳旿
- <EFBFBD>蠘<EFBFBD>2<EFBFBD>詨<EFBFBD><EFBFBD>唳旿
- ...
*靘肽<EFBFBD><EFBFBD>喟頂嚗?
- 靘肽<EFBFBD>
platform_schema.users嚗<EFBFBD>鍂<EFBFBD>瑚縑<EFBFBD>荔<EFBFBD> - 靘肽<EFBFBD>
platform_schema.xxx嚗<EFBFBD><EFBFBD><EFBFBD>㚁<EFBFBD>
<EFBFBD><EFBFBD> ER<45>橘<EFBFBD><E6A998>舫<EFBFBD>㚁<EFBFBD>
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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>? users (憭㚚<E686AD>) <20>?
<0A>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>砂<EFBFBD><E7A082><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<20>?1:N
<20>?
<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>?
<0A>? 銝餉” <20>?
<0A>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>砂<EFBFBD><E7A082><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<20>?1:N
<20>?
<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>?
<0A>? 摮鞱” <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> 銵函<E98AB5><E587BD><EFBFBD>挽霈?
1. xxx_table_name嚗<65>”<EFBFBD>讛膩嚗?
<EFBFBD>券<EFBFBD>䈑<EFBFBD> 蝞<>閬<EFBFBD>秩<EFBFBD>舘”<E88898><E2809D>鍂<EFBFBD>?
*摮埈挾霂湔<EFBFBD>嚗?
CREATE TABLE xxx_schema.xxx_table_name (
-- 銝駁睸
id SERIAL PRIMARY KEY,
-- 憭㚚睸
user_id INTEGER REFERENCES platform_schema.users(id) ON DELETE CASCADE,
-- 銝𡁜𦛚摮埈挾
field_name VARCHAR(200) NOT NULL,
description TEXT,
status VARCHAR(20) DEFAULT 'active',
-- <20>園𡢿<E59C92>喉<EFBFBD>敹<EFBFBD>◆嚗?
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW(),
-- 蝝W<E89D9D>
INDEX idx_xxx_user_id (user_id),
INDEX idx_xxx_status (status)
);
*摮埈挾霂西圾嚗?
| 摮埈挾<EFBFBD>? | 蝐餃<EFBFBD> | 蝥行<EFBFBD> | 霂湔<EFBFBD> |
|---|---|---|---|
| id | SERIAL | PK | 銝駁睸 |
| user_id | INTEGER | FK, NOT NULL | <EFBFBD>冽<EFBFBD>ID |
| field_name | VARCHAR(200) | NOT NULL | 摮埈挾霂湔<EFBFBD> |
| description | TEXT | - | 霂衣<EFBFBD><EFBFBD>讛膩 |
| status | VARCHAR(20) | DEFAULT 'active' | <EFBFBD>嗆<EFBFBD><EFBFBD><EFBFBD>active/inactive/deleted |
| created_at | TIMESTAMP | NOT NULL | <EFBFBD>𥕦遣<EFBFBD>園𡢿 |
| updated_at | TIMESTAMP | NOT NULL | <EFBFBD>湔鰵<EFBFBD>園𡢿 |
*銝𡁜𦛚閫<EFBFBD><EFBFBD>嚗?
- 瘥譍葵<EFBFBD>冽<EFBFBD><EFBFBD><EFBFBD>憭𡁜<EFBFBD>撱旗銝芾扇敶?
- status摮埈挾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>潘<EFBFBD>active, inactive, deleted
- 頧臬<EFBFBD><EFBFBD>歹<EFBFBD>銝滨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>歹<EFBFBD><EFBFBD>芯耨<EFBFBD>零tatus銝榛eleted
2. xxx_table_name_2嚗<32>洵鈭䔶葵銵剁<E98AB5>
嚗<EFBFBD><EFBFBD>憭滢<EFBFBD><EFBFBD>Y<EFBFBD>蝏𤘪<EFBFBD>嚗?
<EFBFBD><EFBFBD> 蝝W<E89D9D>霈曇恣
<EFBFBD>訫<EFBFBD>蝝W<EFBFBD>
-- <20>冽<EFBFBD>ID蝝W<E89D9D>嚗<EFBFBD><E59A97><EFBFBD>桀<EFBFBD>憿餃<E686BF>蝝W<E89D9D>嚗?
CREATE INDEX idx_xxx_user_id ON xxx_schema.xxx_table_name(user_id);
-- <20>嗆<EFBFBD><E59786>揣撘𤏪<E69298>撣貊鍂蝑偦<E89D91>匧<EFBFBD>畾蛛<E795BE>
CREATE INDEX idx_xxx_status ON xxx_schema.xxx_table_name(status);
-- <20>𥕦遣<F0A595A6>園𡢿蝝W<E89D9D>嚗<EFBFBD>虜<EFBFBD>冽<EFBFBD>摨誩<E691A8>畾蛛<E795BE>
CREATE INDEX idx_xxx_created_at ON xxx_schema.xxx_table_name(created_at DESC);
憭滚<EFBFBD>蝝W<EFBFBD>
-- <20>冽<EFBFBD>+<2B>嗆<EFBFBD><E59786><EFBFBD><EFBFBD><EFBFBD>䰻霂?
CREATE INDEX idx_xxx_user_status ON xxx_schema.xxx_table_name(user_id, status);
<EFBFBD><EFBFBD> 憭㚚睸蝥行<E89DA5>
靘肽<EFBFBD><EFBFBD>喟頂
-- 靘肽<E99D98><E882BD>冽<EFBFBD>銵?
ALTER TABLE xxx_schema.xxx_table_name
ADD CONSTRAINT fk_xxx_users
FOREIGN KEY (user_id) REFERENCES platform_schema.users(id)
ON DELETE CASCADE; -- <20>冽<EFBFBD><E586BD>𣳇膄<F0A3B387>嗥漣<E597A5>𥪜<EFBFBD><F0A5AA9C>?
-- 璅∪<E79285><E288AA><EFBFBD><EFBFBD><EFBFBD>?
ALTER TABLE xxx_schema.child_table
ADD CONSTRAINT fk_child_parent
FOREIGN KEY (parent_id) REFERENCES xxx_schema.parent_table(id)
ON DELETE CASCADE;
憭㚚睸蝑𣇉裦
- <EFBFBD>?ON DELETE CASCADE嚗𡁶鍂<EFBFBD>瑕<EFBFBD><EFBFBD>斗𧒄嚗諹䌊<EFBFBD>典<EFBFBD><EFBFBD>斗<EFBFBD><EFBFBD>匧<EFBFBD><EFBFBD>娍㺭<EFBFBD>?
- <EFBFBD>𩤃<EFBFBD> 頝沒chema憭㚚睸嚗𡁜蘨<EFBFBD>賢<EFBFBD><EFBFBD>?platform_schema嚗䔶<E59A97><E494B6>賢<EFBFBD><E8B3A2>典<EFBFBD>隞碶<E99A9E><E7A2B6>⊥芋<E28AA5>?
<EFBFBD><EFBFBD> <20>唳旿餈<E697BF>宏嚗<E5AE8F>虾<EFBFBD>㚁<EFBFBD>
<EFBFBD>嘥<EFBFBD><EFBFBD>𡝗㺭<EFBFBD>?
-- 憒<><E68692><EFBFBD><EFBFBD>閬<EFBFBD><E996AC>憪见<E686AA><E8A781>唳旿
INSERT INTO xxx_schema.xxx_table_name (field_name, status) VALUES
('蝷箔<E89DB7>1', 'active'),
('蝷箔<E89DB7>2', 'active');
餈<EFBFBD>宏<EFBFBD>𡁏𧋦
-- 憒<><E68692><EFBFBD><EFBFBD>閬<EFBFBD><E996AC><EFBFBD>扯”餈<E2809D>宏<EFBFBD>唳旿
-- migrations/xxx_migration.sql
<EFBFBD><EFBFBD> <20>唳旿<E594B3>誯<EFBFBD>隡?
| 銵典<EFBFBD> | 憸<EFBFBD>摯霈啣<EFBFBD><EFBFBD>? | 憓鮋鵭<EFBFBD>笔漲 |
|---|---|---|
| xxx_table_name | 10銝?撟? | 銝剔<EFBFBD> |
| xxx_table_name_2 | 100銝?撟? | 擃? |
<EFBFBD>𩤃<EFBFBD> 瘜冽<E7989C>鈭钅★
*<EFBFBD>扯<EFBFBD>隡睃<EFBFBD>嚗?
- 憭扯”敹<EFBFBD>◆瘛餃<EFBFBD><EFBFBD><EFBFBD>△<EFBFBD>亥砭
- <EFBFBD>剔<EFBFBD>摮埈挾敹<EFBFBD>◆瘛餃<EFBFBD>蝝W<EFBFBD>
- 摰𡁏<EFBFBD>皜<EFBFBD><EFBFBD>頧臬<EFBFBD><EFBFBD>斤<EFBFBD><EFBFBD>唳旿
摰匧<EFBFBD><EFBFBD>改<EFBFBD>
- <EFBFBD>𤩺<EFBFBD>摮埈挾<EFBFBD><EFBFBD>閬<EFBFBD><EFBFBD>撖<EFBFBD><EFBFBD><EFBFBD>?
- <EFBFBD><EFBFBD><EFBFBD>匧<EFBFBD><EFBFBD>桀<EFBFBD>憿餅<EFBFBD> ON DELETE 蝑𣇉裦
- <EFBFBD>踹<EFBFBD>N+1<>亥砭<E4BAA5>桅<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><E8A9A8><EFBFBD>﹝
*閫<EFBFBD><EFBFBD>嚗?
- [<5B>唳旿摨栞挽霈∟<E99C88><E2889F><EFBFBD>(../../04-撘<><E69298>𤏸<EFBFBD><F0A48FB8>?01-<2D>唳旿摨栞挽霈∟<E99C88><E2889F>?md)
- <EFBFBD>唳旿摨枏<EFBFBD>撅<EFBFBD>閫<EFBFBD>㦛
*API霈曇恣嚗?
<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD>堆<EFBFBD> YYYY-MM-DD
蝏湔擪鈭綽<EFBFBD> <20><><EFBFBD>舀沲<E88880><E6B2B2><EFBFBD>