Skip to content

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:

  1. Select conversation (or create new)
  2. Select participants (NPCs/users)
  3. Set topic
  4. Configure turn count
  5. Execute simulation
  6. 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:

  1. Select NPC
  2. Enter text
  3. Click "Ingest Text"
  4. Text saved as memory

API: POST /api/training/ingest-text

Payload:

json
{
  "npcUserId": 1,
  "text": "Training text..."
}

2. File Ingestion (Learn by Heart)

Process:

  1. Select NPC
  2. Upload file
  3. Click "Learn by Heart"
  4. File processed and synthesized
  5. Core beliefs saved

API: POST /api/training/ingest-file

Payload: Multipart form data

  • npcUserId - NPC user ID
  • file - File to upload

3. Image OCR

Process:

  1. Select NPC
  2. Upload image
  3. Click "Extract Text"
  4. OCR extracts text
  5. Text saved as memory

API: POST /api/training/ingest-screenshot

Payload: Multipart form data

  • npcUserId - NPC user ID
  • file - Image file

4. Direct NPC Chat

Process:

  1. Select NPC
  2. Enter message
  3. Send message
  4. Receive NPC response
  5. Continue conversation

Socket Event: directNpcMessage

Data:

json
{
  "npcUserId": 1,
  "message": "Hello!"
}

Response Event: directNpcResponse

5. Conversation Simulation

Process:

  1. Select/create conversation
  2. Select participants
  3. Set topic
  4. Configure turns
  5. Start simulation
  6. View results

API: POST /api/training/simulation

Payload:

json
{
  "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 memory
  • POST /api/training/ingest-screenshot - Ingest image via OCR
  • POST /api/training/ingest-file - Ingest file by heart
  • POST /api/training/ingest-text-by-heart - Ingest text by heart
  • POST /api/training/simulation - Run conversation simulation

Socket.IO Events

Direct NPC Chat

Client → Server:

  • directNpcMessage - Send message to NPC

Server → Client:

  • npcThinking - NPC is processing
  • directNpcResponse - NPC response
  • chatError - Error occurred

Source Files

Primary Sources:

  • aso-portal/src/pages/TrainingCenterPage.tsx - Training center page
  • aso-portal/src/components/training/ManualTrainingPanel.tsx - Manual training
  • aso-portal/src/components/training/SimulationPanel.tsx - Simulation panel
  • aso-portal/src/components/training/ConversationList.tsx - Conversation list
  • aso-portal/src/components/training/TrainingPanel.tsx - Training panel wrapper

Related Files:

  • backend/src/services/training.service.ts - Training service
  • backend/src/socket/trainingHandler.ts - Training socket handler
  • backend/src/controllers/training.controller.ts - Training controller

ASO Universal Consciousness System Documentation