How laion-ai/open-assistant works
Open-Assistant combines a crowdsourced data-collection platform with an assistant chat and model-inference system. Contributors submit prompts and replies, rank completions, and label examples; the backend manages these tasks and conversation trees. Chat requests are served by a separate inference server and model workers, while data and shared schemas support the broader model-training workflow. The README documents the product capabilities; several subsystem links are dashed where the sampled sources do not show runtime wiring.
Main entry points: server/main.py Inference Server · backend/main.py Backend API · tasks.py Task API · prompt_repository.py Conversation Data
Components 22
User Interfaces
- Web App
website/src/pages - API Clients
website/src/lib/oasst_api_client.ts - Inference Client
website/src/lib/oasst_inference_client.ts
Data Collection
- Backend API
backend/main.py - Task API
backend/oasst_backend/api/v1/tasks.py - Task Orchestration
backend/oasst_backend/tree_manager.py - Conversation Data
backend/oasst_backend/prompt_repository.py - Task Records
backend/oasst_backend/task_repository.py - User Records
backend/oasst_backend/user_repository.py - Backend Database
backend/oasst_backend/database.py
Chat Inference
- Inference Server
inference/server/main.py - Chat Routes
inference/server/oasst_inference_server/routes/chats.py - Chat Records
inference/server/oasst_inference_server/user_chat_repository.py - Inference Database
inference/server/oasst_inference_server/database.py - Chat Plugins
inference/server/oasst_inference_server/plugins - Model Worker
inference/worker/work.py
Data And Models
- Training Data
data/datasets - Model Training
model/model_training - Model Evaluation
model/model_eval
Shared Contracts
- Data Protocol
oasst-shared/oasst_shared/schemas/protocol.py - Inference Schemas
oasst-shared/oasst_shared/schemas/inference.py
Other components
- Contributors
Connections 23
- Contributors → Web App: uses
README.md - Web App → API Clients: uses
- API Clients → Backend API: calls API
- Backend API → Task API: mounts routes
backend/main.py - Task API → Task Orchestration: requests tasks
backend/oasst_backend/api/v1/tasks.py - Task API → Conversation Data: uses
backend/oasst_backend/api/v1/tasks.py - Task API → Task Records: uses
backend/oasst_backend/api/v1/tasks.py - Task Orchestration → Conversation Data: uses
backend/oasst_backend/tree_manager.py - Conversation Data → Task Records: uses
backend/oasst_backend/prompt_repository.py - Conversation Data → User Records: uses
backend/oasst_backend/prompt_repository.py - Backend API → Backend Database: configures
backend/main.py - Contributors → Inference Client: chats
README.md - Inference Client → Inference Server: requests inference
- Inference Server → Chat Routes: mounts routes
inference/server/main.py - Inference Server → Chat Plugins: registers plugins
inference/server/main.py - Chat Routes → Chat Records: uses
- Chat Records → Inference Database: uses
inference/server/oasst_inference_server/user_chat_repository.py - Inference Server → Inference Database: initializes
inference/server/main.py - Inference Server → Model Worker: dispatches work
- Training Data → Model Training: supplies data
- Model Training → Model Evaluation: evaluated by
- Backend API → Data Protocol: uses schemas
backend/main.py - Inference Server → Inference Schemas: uses schemas
inference/server/main.py