Training Center
Last Updated: 2025-01-16
Primary Source: docs/project_status.md
Page: aso-portal/src/pages/TrainingCenterPage.tsx
Components: aso-portal/src/components/training/
Overview
The Training Center provides a comprehensive interface for training NPCs (Yexian, Chinatsu, etc.) through manual text/image ingestion, direct NPC chat, and conversation simulation. It enables administrators to teach NPCs new knowledge, test responses, and simulate conversations between multiple NPCs.
Architecture
Training Center Flow
Core Components
1. Training Center Page
File: aso-portal/src/pages/TrainingCenterPage.tsx
Route: /training
Features:
- Tab navigation
- Manual training panel
- Simulation panel
- Conversation list
- NPC selection
2. Manual Training Panel
File: aso-portal/src/components/training/ManualTrainingPanel.tsx
Features:
- NPC selection dropdown
- Text input for direct ingestion
- File upload for "learn by heart"
- Image upload for OCR
- Direct NPC chat interface
- Training history
Training Methods:
Text Ingestion
- Direct text input
- Save as memory (source:
manual_ingestion_text) - No synthesis
File Ingestion (Learn by Heart)
- File upload (PDF, DOCX, TXT, etc.)
- Text extraction
- LLM synthesis into first-person core beliefs
- Save as memory (source:
core_belief)
Image OCR
- Image upload
- OCR text extraction
- Multi-language support
- Save as memory (source:
ingested_screenshot)
Direct NPC Chat
- 1-on-1 chat with NPC
- Bypasses group chat director
- Forces NPC response
- Real-time chat interface
3. Simulation Panel
File: aso-portal/src/components/training/SimulationPanel.tsx
Features:
- Conversation selection
- Participant selection
- Topic input
- Turn count configuration
- Simulation execution
- Simulation results
Simulation Process:
- Select conversation (or create new)
- Select participants (NPCs/users)
- Set topic
- Configure turn count
- Execute simulation
- View results
4. Conversation List
File: aso-portal/src/components/training/ConversationList.tsx
Features:
- Conversation list display
- Conversation filtering
- Conversation search
- Conversation details
- Create new conversation
5. Training Panel (Wrapper)
File: aso-portal/src/components/training/TrainingPanel.tsx
Purpose: Wrapper component for training panels
Features:
- Panel layout
- Common training UI elements
- Shared state management
Training Methods
1. Text Ingestion
Process:
- Select NPC
- Enter text
- Click "Ingest Text"
- Text saved as memory
API: POST /api/training/ingest-text
Payload:
{
"npcUserId": 1,
"text": "Training text..."
}2. File Ingestion (Learn by Heart)
Process:
- Select NPC
- Upload file
- Click "Learn by Heart"
- File processed and synthesized
- Core beliefs saved
API: POST /api/training/ingest-file
Payload: Multipart form data
npcUserId- NPC user IDfile- File to upload
3. Image OCR
Process:
- Select NPC
- Upload image
- Click "Extract Text"
- OCR extracts text
- Text saved as memory
API: POST /api/training/ingest-screenshot
Payload: Multipart form data
npcUserId- NPC user IDfile- Image file
4. Direct NPC Chat
Process:
- Select NPC
- Enter message
- Send message
- Receive NPC response
- Continue conversation
Socket Event: directNpcMessage
Data:
{
"npcUserId": 1,
"message": "Hello!"
}Response Event: directNpcResponse
5. Conversation Simulation
Process:
- Select/create conversation
- Select participants
- Set topic
- Configure turns
- Start simulation
- View results
API: POST /api/training/simulation
Payload:
{
"conversationId": 1,
"initiatorId": 1,
"topic": "Discussion topic",
"turns": 10,
"participantIds": [1, 2]
}Data Flow
API Endpoints
Training Endpoints
POST /api/training/ingest-text- Ingest text as memoryPOST /api/training/ingest-screenshot- Ingest image via OCRPOST /api/training/ingest-file- Ingest file by heartPOST /api/training/ingest-text-by-heart- Ingest text by heartPOST /api/training/simulation- Run conversation simulation
Socket.IO Events
Direct NPC Chat
Client → Server:
directNpcMessage- Send message to NPC
Server → Client:
npcThinking- NPC is processingdirectNpcResponse- NPC responsechatError- Error occurred
Source Files
Primary Sources:
aso-portal/src/pages/TrainingCenterPage.tsx- Training center pageaso-portal/src/components/training/ManualTrainingPanel.tsx- Manual trainingaso-portal/src/components/training/SimulationPanel.tsx- Simulation panelaso-portal/src/components/training/ConversationList.tsx- Conversation listaso-portal/src/components/training/TrainingPanel.tsx- Training panel wrapper
Related Files:
backend/src/services/training.service.ts- Training servicebackend/src/socket/trainingHandler.ts- Training socket handlerbackend/src/controllers/training.controller.ts- Training controller
Related Documentation
- Training System - Backend training system
- Memory System - Memory storage
- File Handling System - File processing
- 03-PLATFORMS/Web-Portal.md - Web portal overview