LAION-AI/Open-Assistant
44.6
Weak · 26 September 2026
58k
lines of production code
Python
with TypeScript
4
measurements over time
What this system is
This release delivers a comprehensive overhaul of the backend and inference architecture, introducing a modular v1 API, robust database migrations, and a new shared client library. It significantly expands the inference server with user authentication, chat management, and a plugin system, while introducing a new text-based client for local development. The frontend is modernized with a complete Chakra UI theme, new chat and task components, and extensive Cypress and Storybook test coverage. Additionally, the release adds numerous data augmentation notebooks, training scripts for RLHF and SFT, and deployment configurations for Docker, Ansible, and AWS Copilot.
Features
Add API endpoint to toggle tree halt status
A new API endpoint has been introduced to allow administrators and moderators to toggle the halted status of a specific tree. This change enables the system to update the tree's state via a dedicated route, supporting both halting and resuming (unhalting) operations.
_website/src/pages/api/admin/set\_tree\halted · high confidence
Add Anthropic red-teaming data augmentation notebook and trainer
A new notebook and Python script are introduced in the Anthropic data-augmentation directory to train a safety classifier on the ProsocialDialog dataset. The notebook demonstrates how to load red-teaming data, map rules of thumb to safety labels, and use embeddings to match task descriptions. The accompanying trainer script sets up a Hugging Face Trainer to classify conversations into safety labels such as \_\_needs\intervention\\_ or \_\_needs\caution\\_.
notebooks/data-augmentation/anthropic · high confidence
Add Closed Book QA Generator notebook and documentation
A new interactive notebook titled 'Closed Book QA Generator' has been added to the notebooks/closed-book-qa directory. This tool generates topics, questions, and answers from a given paragraph of text, supporting both open-book and closed-book answer generation. The accompanying README explains the output structure and requirements, noting the code is verified on 24GB VRAM GPUs like the RTX3090.
notebooks/closed-book-qa · high confidence
Add DIVERSE dataset conversion notebook
A new notebook has been added to the diverse directory that downloads the DIVERSE dataset and converts it into the OpenAssistant data scheme format. This allows users to easily transform the DIVERSE dataset for training purposes.
notebooks/diverse · high confidence
Add Discord bot integration for Open Assistant tasks and inference
Users can now interact with the Open Assistant system directly through Discord. This change introduces a new \open-assistant\ module that handles task workflows (such as replying as a user or assistant, and creating initial prompts) and manages user language preferences. Additionally, a new \inference\ module provides a client for communicating with the inference server, enabling features like streaming events, voting on messages, and retrieving chat history.
discord-bots/oa-bot-js/src/modules/open-assistant · high confidence
Add Dockerfiles for inference server, safety, and worker components
The docker/inference directory now contains dedicated Dockerfiles for each inference service: a server image (Dockerfile.server) that builds a production and development environment with Prometheus metrics support; a safety service image (Dockerfile.safety) for safety checks; and multiple worker images (Dockerfile.worker, .worker-full, .worker-hf, .worker-standalone) that handle different inference backends and configurations. These files define how each component is built, the dependencies installed, and the entrypoints used to run the services.
docker/inference · high confidence
Add Flash Attention support and PEFT integration for LLaMA, Falcon, and GPT-NeoX models
The model training module now supports Flash Attention for LLaMA, Falcon, and GPT-NeoX architectures, enabling faster and more memory-efficient training. Additionally, the codebase introduces support for Parameter-Efficient Fine-Tuning (PEFT) methods, specifically LoRA and Prefix-Tuning, allowing users to fine-tune large language models with reduced memory overhead. The update also includes a new GPT-NeoX-based Reward Model architecture and implements RoPE interpolation scaling for improved long-context handling.
_model/model\training/models · high confidence
Add Open Assistant Discord bots in JavaScript and Python
Users can now interact with Open Assistant via Discord bots written in JavaScript (oa-bot-js) and Python (oa-bot-py). The JavaScript bot supports chatting with the AI, selecting models, and voting on responses, while the Python bot facilitates data collection tasks for RLHF alignment. Both bots require environment variables for API keys and tokens, and the JS bot includes a default model option for users who do not specify one.
discord-bots, discord-bots/oa-bot-js · high confidence
Add OpenAssistant OASST1 dataset notebook
Users can now explore the OpenAssistant OASST1 dataset with a new 'getting-started' notebook. This resource provides a practical introduction to loading, inspecting, and analyzing the dataset using Python libraries like pandas and the Hugging Face datasets library.
notebooks/openassistant-oasst1 · high confidence
Add OpenBugger notebook example
Added a new notebook example for OpenBugger, a Python package that injects syntax and logic errors into code to test robustness or create debugging exercises. The notebook demonstrates how to install the OpenBugger package, import the SyntaxBug and LogicBug classes, and use them to inject errors into simple, medium, and hard scripts.
notebooks/openbugger · high confidence
Add Stats page with message tree state breakdowns
A new Stats page has been added to the website, displaying statistics about human messages and message tree states. The page features a table and charts that break down message tree states (such as 'growing', 'ranking', 'ready\_for\_export', etc.) by language, allowing users to filter and view data for specific languages. The component includes a dropdown to select a language and displays corresponding statistics in both tabular and chart formats.
website/src/components/Stats · high confidence
Add TaskHeader component for task labels and instructions
A new TaskHeader component has been introduced to display the task label, overview text, and a help link. The component uses next-i18next for localisation and Chakra UI for styling, rendering the task's label and overview from the provided TaskInfo object.
website/src/components/Tasks/TaskHeader · high confidence
Add TaskInfo component for displaying prompt and output metadata
A new TaskInfo component has been added to the website, providing a structured display for task metadata. It renders the prompt and output fields using Chakra UI components, with styling that adapts to the current color mode (light/dark) and supports localization for the 'prompt' and 'output' labels.
website/src/components/TaskInfo · high confidence
Add Twitter data collection scripts and documentation
Added new scripts and documentation for collecting and processing Twitter data. The \twitter\_process\_json.py\ script extracts and pre-processes compressed JSON tweet data into Parquet files, while \twitter\_create\_convs.py\ uses Polars to construct conversation trees from tweet replies and exports them as JSONL. A README.md provides context on data sources, current progress, and known issues regarding tweet quality and archive limitations.
scripts/data-collection · high confidence
Add TypeScript type definitions for environment variables, i18n resources, and Next-Auth session
New TypeScript declaration files are added to the website's types directory. env.d.ts defines the expected environment variables, including CLOUDFLare CAPTCHA keys, flags to enable/disable email sign-in and captcha, admin and moderator user lists, and feature toggles for chat and drafts. i18next.d.ts maps the JSON translation files (account, chat, common, dashboard, error, index, labelling, leaderboard, message, stats, tasks, tos) to the i18next CustomTypeOptions, enabling type-safe translation keys. next-auth.d.ts extends the Next-Auth Session and JWT interfaces to include user role, isNew status, terms of service acceptance date, and inference authentication status.
website/types · high confidence
Add WikiData Q&A generation notebook
A new notebook and README have been added to the \notebooks/data-augmentation/wikidata-qa\ directory. This tool allows users to automatically generate question and answer pairs from the WikiData graph. The notebook provides a \WikiGraph\ class that crawls WikiData, caches results to a CSV file, and generates plausible Q&A pairs based on the graph's information. The README documents the usage, including how to search for concepts, generate Q&A pairs, and handle specific cases like proper nouns or simulated messy input.
notebooks/data-augmentation/wikidata-qa · high confidence
Add admin API endpoint to undelete messages
A new API endpoint has been added at /api/admin/undelete\_message/\[id\] that allows administrators and moderators to restore previously deleted messages. The endpoint accepts a message ID, calls the underlying client's undelete\_message method, and returns a success or failure status.
_website/src/pages/api/admin/undelete\message · high confidence
Add admin status page to monitor backend API endpoints
A new admin status page has been added at /admin/status, providing a centralized view of the system's health by displaying the results of calls to /api/v1/tasks/availability, /api/v1/stats/, and /api/v1/stats/tree\_manager. The page uses Chakra UI components to display JSON responses or error states for each endpoint, allowing administrators to quickly assess the status of tasks, general statistics, and tree manager metrics.
website/src/pages/admin/status · high confidence
Add data augmentation notebooks for essay revision and UnifiedQA
Added two new notebooks to the data-augmentation directory: one for essay revision, which generates training data by introducing and correcting errors in essays, and another for UnifiedQA, which downloads and converts datasets from the UnifiedQA collection into the OpenAssistant data scheme. These additions expand the available tools for preparing instruction-response conversation data.
notebooks/data-augmentation/unified-qa · high confidence
Add data augmentation script for generating question-answer pairs
A new script, scripts/data\_augment/data\_augment.py, has been added to support various data augmentation techniques for generating question-answer pairs. The script includes classes for processing essays (EssayInstructor, EssayReviser) and Stack Exchange posts (StackExchangeBuilder), enabling users to create synthetic training data from existing text sources.
_scripts/data\augment · high confidence
Add default devcontainer configuration for local development
Developers can now use Visual Studio Code's devcontainers or GitHub Codespaces to run the project. The new \.devcontainer\ directory includes a \devcontainer.json\ that configures a generic development environment with Python, Prettier, and GitHub Copilot extensions, along with a \post\_create\_command.sh\ script to initialize the environment. A \README.md\ provides usage instructions for running pre-commit hooks and Docker Compose services within the container.
.devcontainer · high confidence
Add example notebook with Colab integration
A new example notebook has been added to the project, providing a reference structure for future notebooks. It includes a README with guidelines for organizing notebooks, a sample CSV dataset, and an IPython notebook that demonstrates loading and displaying sample data using pandas. The notebook also features an "Open in Colab" badge and a setup cell to configure the environment for Google Colab.
notebooks/example · high confidence
Add gale\_pleaser plugin for generating encouraging responses
A new 'gale\_pleaser' plugin has been added to the inference server, providing a demo capability to generate positive, verbose, and encouraging responses to user queries. The plugin is now registered in the plugin loader and exposes endpoints to deliver comforting and supportive messages, effectively adding a new interactive feature for users seeking uplifting interactions.
_inference/server/oasst\_inference\_server/plugins/gale\pleaser · high confidence
Add local text client for interactive chat
A new local text client is introduced, providing a simple REPL interface for interacting with the inference backend. Users can now run the client to log in, create chats, and send messages to receive streamed assistant responses. The client supports model configuration selection and handles streaming events, including pings and errors, while also allowing users to specify sampling parameters like temperature and top-p.
inference/text-client · high confidence
Add movie description data augmentation notebook
A new Jupyter notebook and README are added to the \notebooks/data-augmentation/movie-descriptions\ directory. The notebook provides a script to scrape popular film titles from Letterboxd and their descriptions from Wikipedia, generating instruction-response pairs for data augmentation. The README explains the data sources and the expected output format.
notebooks/data-augmentation/movie-descriptions · high confidence
Add movie-dialogs data augmentation notebook
Added a new notebook and README in the \notebooks/data-augmentation/movie-dialogs\ directory that demonstrates how to convert the Cornell Movies Dialog Corpus into instruction-format data for training. The entry includes a README explaining the dataset source and usage, and a Jupyter notebook that loads the corpus, extracts dialogues, and applies templates to generate training examples.
(repo-wide) · high confidence
Add new labeling task pages for assistant and prompter replies
Three new pages have been added to the labeling interface: label\_assistant\_reply, label\_initial\_prompt, and label\_prompter\_reply. Each page renders the generic TaskPage component with a specific TaskType, allowing users to perform these new labeling tasks through the standard dashboard layout.
website/src/pages/label · high confidence
Add new website pages for error states, site status, and site information
The website now includes dedicated pages for handling error conditions and site status. Users will see a styled 404 page for missing content and a 500 page for server errors, both featuring a link to report bugs on GitHub. A 'bye' page is added to display a maintenance message when the site is down, and a 'brb' (be right back) page for temporary unavailability. Additionally, new informational pages have been added for the About, Team, Contributors, Stats, and Leaderboard, as well as static policy pages for Privacy and Terms of Service. The app entry point (\_app.tsx) and document (\_document.tsx) have been updated to support these new routes and global state providers.
website/src/pages · high confidence
Add nginx and certbot configuration for dev and prod2 environments
New nginx configuration files and Docker Compose setups are added for the dev-node and prod2-node environments. These configurations establish reverse proxy routes for web, backend, and inference services on both dev and prod2, enabling HTTPS termination and SSL certificate management via Certbot. This allows the respective environments to properly route traffic to the correct internal services (e.g., web on port 3000/3100/3200, backend on 8080/8180/8280, inference on 8085/8185/8285) with appropriate headers and connection handling.
deploy/dev-node · high confidence
Add r/changemyview data conversion notebook
A new Jupyter notebook and README have been added to the data-augmentation/changemyview-builder directory. The notebook provides a workflow to convert raw data from the r/changemyview subreddit into a cleaner, structured format suitable for further processing. It includes logic to fetch, parse, and clean the data, outputting an Apache Parquet file with columns for instructions, responses, source links, and metadata (specifically detoxify labels).
notebooks/data-augmentation/changemyview-builder · high confidence
Add reward model evaluation and rejection sampling tools
The \model/model\_eval\ directory now includes scripts and utilities for evaluating models using a reward model. This includes \eval\_rm.py\ for standard dataset evaluation, \sampling\_score.py\ to score sampling reports, and \rejection\_sampling.py\ to perform rejection sampling. The \README.md\ provides instructions for generating sampling reports, evaluating them with a reward model, and performing rejection sampling, while \eval\_datasets.py\ defines the necessary dataset and collator classes.
_model/model\eval · high confidence
Add server-side rendered message detail page
A new server-side rendered page for individual message details has been added at website/src/pages/messages/\[id\]/index.tsx. This page fetches the message tree via the /api/messages/{id}/tree endpoint using SWR and renders the MessageTree component within a Chakra UI Card, supporting localization through next-i18next.
website/src/pages/messages/\[id\] · high confidence
Add writing prompt data augmentation notebook and documentation
A new notebook and README have been added to the \notebooks/data-augmentation/writing-prompt\ directory. The notebook provides a pipeline for auto-generating question/answer samples from the Kaggle 'Writing Prompts' dataset by applying various prompt templates (e.g., adding constraints for story beginnings, endings, or middle sections). The README explains the process of downloading data, pre-processing, and using a T5 model for summarization, with the final augmented dataset hosted on Hugging Face.
notebooks/TSSB-3M-bugs-dataset, notebooks/data-augmentation/writing-prompt · high confidence
Add xor-codec script for payload encoding and decoding
A new Python script, xor\_codec.py, has been added to the scripts/xor-codec directory. This utility provides functions to perform bitwise XOR operations on binary files, supporting both uncompressed and gzip-compressed outputs. It includes specific routines for encoding and decoding payloads against a base file, as well as a directory-level processing function that handles multiple files and copies metadata. The script is designed to be executed from the command line with arguments for destination, payload source, base source, and optional flags for encoding and compression.
scripts/xor-codec · high confidence
Added AWS Copilot deployment guide and configuration
The copilot directory now includes a .workspace file and a comprehensive README.md that documents how to deploy the Open Assistant web app on AWS using AWS Copilot. The guide covers initializing the application, deploying environments, managing secrets via AWS Secrets Manager, and performing manual updates, enabling users to run the application as an ECS Fargate service with a Serverless Aurora Postgres database.
copilot · high confidence
Added Alembic database migration configuration
The backend now includes the standard Alembic setup for managing database schema changes. This adds the core configuration file (env.py) which configures the migration environment to use SQLModel metadata, and a Mako template (script.py.mako) for generating new migration scripts. These files enable the use of Alembic to track and apply database migrations.
backend/alembic · high confidence
Added Detoxify evaluation notebook and documentation
A new \detoxify-evaluation\ directory has been added to the notebooks folder, containing a Jupyter notebook and a README file. The notebook evaluates the Detoxify model for identifying toxic prompts, providing performance metrics, memory usage, and inference times for different model variants (original, unbiased, multilingual). The README summarizes the evaluation results, noting that the 'unbiased' model appears to be the best performing, though it may require fine-tuning to be effective as a security layer.
notebooks/detoxify-evaluation · high confidence
Added Discord moderation scripts for lobby verification
Two new Python scripts, stats.py and verify-lobby.py, have been added to the scripts/discord directory. The verify-lobby script allows moderators to verify new users by assigning a 'verified' role to those who have previously held an 'unverified' role. The stats.py script collects message timestamps from the lobby channel. Both scripts require a BOT\_TOKEN environment variable.
scripts/discord · high confidence
Added Netdata monitoring configuration for Postgres, Prometheus, and Redis
Users can now monitor key services via Netdata. New configuration files have been added to collect metrics from Postgres databases, Prometheus endpoints for the backend and inference server, and a Redis instance, enabling visibility into their performance and health.
docker/netdata · high confidence
Added RL training utilities and loss functions
The model training utilities now include support for Reinforcement Learning (RL) training. This includes a new \ppo\_utils.py\ file that registers a custom PPO trainer and a Hydra-based model loader, alongside a \utils\_rl.py\ helper for tensor preparation. Additionally, \losses.py\ introduces new loss functions including \PolyLoss\ and \RMLoss\ (Reward Modeling Loss), while \utils.py\ adds a \PerDatasetSampler\ for controlled dataset sampling during training.
_model/model\training/utils · high confidence
Added S3 backup script and Dockerfile for PostgreSQL
The PostgreSQL container image now includes a new backup script (backup\_pg\_to\_s3.sh) and a Dockerfile that installs AWS CLI and unzip. The script performs a pg\_dump of the 'postgres' database, compresses it with gzip, and uploads the resulting .sql.gz file to an S3 bucket specified by the S3\_BUCKET\_NAME and S3\_PREFIX environment variables. This enables automated backups of the PostgreSQL database to S3.
docker/oasst-postgres · high confidence
Added backend utilities for message tree export, ranking, and topic modeling
The backend now includes new utility modules for exporting message trees and individual messages to JSONL files, supporting anonymization and event tracking. A new ranking algorithm (Ranked Pairs) has been added to process head-to-head vote tallies. Additionally, the codebase now supports topic modeling on exported message trees using BERTopic and sentence embeddings, and provides language classification and Discord notification utilities.
_backend/oasst\backend/utils · high confidence
Added local inference development environment
Developers can now run the full inference stack locally using a provided shell script that sets up Docker containers for Postgres, Redis, the text-generation-inference server, and the API/worker services in a tmux session. The setup includes a .gitignore for Python cache files and a README with instructions for building, running, and testing the inference services.
inference · high confidence
Added manual evaluation and sampling report generation tools
Added three new Python scripts in the model evaluation manual directory to support model testing and data processing workflows. The \sampling\_report.py\ module provides a \SamplingReport\ Pydantic model and utilities to load, parse, and merge sampling configurations for generating model outputs. The \create\_synth\_import.py\ script processes these sampling reports to generate synthetic message trees with multiple continuations, filtering and formatting model responses for evaluation. Additionally, \subsample\_dataset.py\ was added to randomly sample a subset of message trees from a dataset, allowing users to create smaller, representative datasets for testing or analysis.
_model/model\eval/manual · high confidence
Added message voting capability to the chat interface
Users can now vote on chat messages. A new \useMessageVote\ hook has been introduced in the chat hooks directory, exposing a \trigger\ function that sends a POST request to the chat message vote API route, allowing the UI to record user feedback on specific messages.
website/src/hooks/chat · high confidence
Added production Nginx configuration and certificate management scripts
New files have been added to the deploy/prod-node/nginx directory to configure the production Nginx reverse proxy. This includes a docker-compose.yaml for managing the Nginx and Certbot containers, a shell script to obtain SSL certificates, and a shell script to renew them. The nginx.conf file defines server blocks for open-assistant.io and its subdomains (web, backend, inference), routing traffic to internal services on ports 3200, 8280, and 8285, while also handling HTTP-to-HTTPS redirects and ACME challenges for Let's Encrypt.
deploy/prod-node · high confidence
Added reusable components for displaying policy chapters and sections
The website now includes new UI components, PolicyChapterCard and PolicySectionCard, which render structured information about policy chapters and sections. Each component displays a number, title, and description, with styling that adapts to light and dark modes. These components provide a consistent way to present policy content on the site.
website/src/components/PolicyCards · high confidence
Added user statistics and XP progress components to the account page
Users can now view their detailed performance metrics and experience points directly on their account page. A new UserStats component displays a breakdown of leaderboard statistics—including scores, ranks, prompts, and replies—categorized by day, week, month, and total. Additionally, an XPBar component visualizes the user's current level and score progress toward the next level, featuring a rotating star icon and a progress bar.
website/src/components/Account · high confidence
Added web app manifest and mock service worker for PWA and testing
The website now includes a web app manifest (manifest.json) that configures the app name, display mode, and icons, enabling installation as a standalone app. Additionally, a mock service worker (mockServiceWorker.js) has been added to support the Mock Service Worker (MSW) library for intercepting network requests during testing.
website/public · high confidence
Admin API endpoint for deleting messages
A new API endpoint has been added at /api/admin/delete\_message/\[id\] that allows users with 'admin' or 'moderator' roles to delete messages. The endpoint accepts a message ID in the URL, calls the underlying client to perform the deletion, and returns a success or failure status.
_website/src/pages/api/admin/delete\message · high confidence
Admin message list and message tree endpoints
Added new API endpoints for the admin interface to retrieve a paginated list of messages and the full message tree state. The message list endpoint supports filtering by language, user ID, and search query, while the message tree endpoint returns the hierarchical structure of a specific message, including deleted and spam content. These endpoints enable the admin UI to display message lists and detailed message trees.
website/src/pages/api/admin/messages · high confidence
Admin message management interface
A new admin interface for managing messages has been added, providing a list view and a detailed view for each message. The list page displays an \AdminMessageTable\ with user information, while the detail page (\\[id\].tsx\) renders the message content, a revision history table, and a message tree state table, allowing administrators to inspect message data and tree metadata.
website/src/pages/admin/messages · high confidence
Admin user management page
A new admin page at /admin/manage\_user/\[id\] allows administrators to view and edit a specific user's profile, including their display name, role, notes, and leaderboard visibility. The page also displays the user's message history and statistics.
_website/src/pages/admin/manage\user · high confidence
Backend development setup and data export/import tools
The backend area now includes a complete local development environment, documented in a new README.md, along with configuration templates (.env.example, alembic.ini) and scripts for data management. Users can now easily set up a local database and run the REST server. Additionally, new Python scripts (export.py, import.py, rerank.py, update\_message\_attributes.py) provide capabilities to export message trees and labels to JSONL, import data from external sources, re-rank message trees, and update missing message attributes like toxicity and embeddings.
backend · high confidence
Backend refactoring and new analytics endpoints
The backend has been restructured into a modular package (oasst\_backend) with separate repositories for tasks, prompts, users, and statistics. This introduces a new cached statistics system that tracks message counts by language, role, and tree state, exposed via new API endpoints. Additionally, the system now supports user deletion (anonymizing data), tracks user streaks, and provides leaderboard statistics. The architecture also introduces a journaling system to log events like text replies, ratings, and rankings.
_backend/oasst\backend · high confidence
Custom theme styles for UI components
The application now defines explicit Chakra UI theme configurations for the Badge, Card, Container, and Table components. These new theme files establish consistent styling rules, including dark mode support for cards and tables, default variants for badges, and padding control for containers, ensuring a unified visual appearance across the interface.
website/src/styles/Theme/components · high confidence
Inference server exposes account, admin, auth, chat, config, and worker management endpoints
The inference server now provides a comprehensive set of REST and WebSocket endpoints for managing user accounts, administrative tasks, authentication, chat sessions, model configurations, and worker connections. Users can now have their accounts deleted via the /account route, while administrators can manage workers, revoke refresh tokens, and delete users through the /admin routes. Authentication is supported via Discord, GitHub, and Google OAuth, with a /auth/providers endpoint to query available providers. Chat functionality includes listing, creating, deleting, and streaming messages, alongside pagination and visibility controls. The /configs endpoint exposes model and plugin configurations, and the /workers route handles WebSocket-based communication with inference workers, enabling robust task distribution and real-time updates.
_inference/server/oasst\_inference\server/routes · high confidence
Inference server gains database migrations, data export, and multi-worker support
The inference server now includes Alembic database migration support (alembic.ini, env.py, script templates) to manage schema changes, and a new export script (export.py) that allows users to download chat data as JSON or compressed JSONL files, with optional user/message anonymization. Additionally, the server startup script (server\_main.sh) has been updated to support running multiple Gunicorn workers, which enables Prometheus multiprocess metrics collection and improved concurrency.
inference/server · high confidence
Initial Ansible playbooks for inference server and worker deployment
Added new Ansible playbooks to automate the deployment of the inference server and worker services. The server playbook provisions a Docker network, Redis, and a PostgreSQL database, then deploys the inference server container with environment variables for authentication (Discord, GitHub), safety controls, and configuration limits (max messages, message length, plugin depth). The worker playbook deploys the inference worker container, configuring it with backend URL, API key, and parallelism settings. A Redis configuration file and a test inventory file are also included to support these deployments.
ansible/inference · high confidence
Initial Ansible playbooks for local development and deployment
Added new Ansible playbooks and configuration files (including deploy-to-node.yaml, redis.conf, pgbackrest.conf, and test inventory) to streamline the setup of local development environments. This includes automated provisioning of Redis, PostgreSQL, and backend services via Docker containers, along with environment variable configuration for features like toxicity calculation, prompt limits, and stats intervals.
ansible · high confidence
Initial Prisma database schema and seed data for the web application
The Prisma schema and initial migration are introduced, defining core database tables including User, Account, Session, VerificationToken, RegisteredTask, and TaskInteraction. The User model includes fields for name, email, role, isNew status, and paper acknowledgment details (paperackName, paperackYes). A seed script is added to populate the database with test user accounts for development and testing purposes.
website/prisma · high confidence
Initial Storybook configuration and mock service worker setup
The Storybook environment is now configured for the website, enabling component documentation and interactive previews. This includes a Next.js framework setup with Chakra UI and essential addons, alongside global decorators for session and router context. Additionally, Mock Service Worker (MSW) is initialized in the preview file to intercept network requests, specifically mocking the /api/valid\_labels endpoint to return a predefined set of label data for testing and development.
website/.storybook · high confidence
Initialize Chakra UI provider and global styles
The styles directory now includes a new Chakra UI provider component that wraps the application with a custom theme and manages color mode persistence using cookies or local storage. Additionally, global CSS is established to include Tailwind utilities and ensure the main container fills the viewport height.
website/src/styles · high confidence
Introduce Leaderboard and Trollboard table components
Added new React components for displaying user rankings and moderation data. The LeaderboardTable component presents a grid of leaderboard entries including rank, user display name with avatar, score, and other stats, with support for highlighting the current user's row and conditional display of user stats. The TrollboardTable component displays a similar grid for moderation purposes, showing troll scores, red flags, vote counts, spam metrics, and toxicity levels, along with an action button to view user details. Both components utilize shared pagination and row styling hooks to handle data fetching, pagination logic, and visual highlighting for highlighted rows.
website/src/components/LeaderboardTable · high confidence
Introduce Pydantic schemas for inference server authentication, chat, and worker models
The inference server now uses explicit Pydantic models to define its API contracts. Authentication is handled via a \TrustedClient\ schema that validates API keys and client metadata. Chat interactions are governed by request and response schemas, including \CreateAssistantMessageRequest\ (which now supports \system\_prompt\, \user\_profile\, and \plugins\), event-based streaming responses, and chat list pagination. Additionally, a \WorkerRead\ schema exposes worker identity and trust status, enabling the backend to distinguish between trusted and untrusted inference workers.
_inference/server/oasst\_inference\server/schemas · high confidence
Introduce TaskContext for managing task state
A new React context, TaskContext, has been added to manage task-related state. This context provides a structured way to access task information, replies, and hooks through the useTaskContext hook, simplifying state management for task-based interactions.
website/src/context · high confidence
Introduce automated and interactive text-based frontends for data labeling and ranking
Added two new Python scripts for the text-frontend: \_\main\\_.py provides an interactive REPL for humans to perform tasks like summarizing stories, replying to prompts, and ranking content; auto\_main.py provides a headless, automated version that generates random text and rankings to simulate user activity. Both scripts support task types including initial prompts, prompter/assistant replies, message ranking, and text labeling (including spam and language mismatch checks).
text-frontend · high confidence
Introduce dedicated safety server and configurable model inference workers
Adds a new FastAPI-based safety server (inference/safety/) that wraps the Blade2Blade model to filter content, alongside a comprehensive overhaul of the inference worker (inference/worker/). The worker now supports configurable model profiles (via model\_configs) to abstract model and hardware pairings, implements a LangChain-based chat chain for plugin/tool usage, and includes utilities for tokenization, stopping criteria, and streaming. This enables more robust, parallelized, and secure inference processing with explicit safety checks.
inference/worker · high confidence
Introduce new LabelTask component for user feedback
Added the LabelTask component, which renders a two-column layout displaying a message conversation alongside a label input group. This component manages the state for user-provided labels, handling validity checks for mandatory fields and updating the reply object with the selected labels. It supports different instruction modes (yes/no, flag, or likert scale) and distinguishes between spam and standard labeling tasks.
website/src/components/Tasks/LabelTask · high confidence
Introduce new chat layout component
Added a new ChatLayout component that structures the chat interface with a header, sidebar menu, and chat list areas, replacing previous layout implementations.
website/src/components/Layout · high confidence
Introduce new training scripts and utilities for SFT, Reward Model, and RL training
The model training module now includes dedicated trainers for supervised fine-tuning (trainer\_sft.py), reward modeling (trainer\_rm.py), and reinforcement learning (trainer\_rl.py). This update adds support for RLHF workflows using the trlx library, introduces a Triton model conversion utility (to\_triton.py) for serving models, and provides dataset inspection scripts (check\_dataset\_appearances.py, check\_dataset\_counts.py) to analyze dataset contents and statistics. Additionally, efficiency utilities (efficiency\_utils.py) and metrics (metrics.py) are added to support these training modes.
_model/model\training · high confidence
Introduce oasst\_data module for reading, filtering, and exporting message trees and messages
The oasst\_data module is introduced, providing a Python library for reading and writing message trees and individual messages in JSONL format. It includes schemas for message nodes and trees, readers for loading data from HuggingFace datasets or local files, and writers for exporting data. Additionally, example scripts are added to clean, filter (by state, language, user, etc.), split, and transform message datasets, enabling users to prepare and export data for training or analysis.
_oasst-data/oasst\data · high confidence
Introduce pretokenization utility for dataset preparation
Added a new pretokenization utility in the \model/pretokenizer\ directory to prepare datasets for training with the epfLLM/Megatron-LLM fork. This includes a Python script (\pretokenize.py\) and supporting modules (\tokenizer.py\, \indexed\_dataset.py\, \create\_hf\_tokenizer\_config.py\) that handle tokenization, dataset indexing, and Hugging Face tokenizer configuration. The utility supports multiple dataset configurations (e.g., \oasst\_top1\, \megacode2\, \megacode3\) and allows users to specify output directories, compression, and JSONL generation.
model/pretokenizer · high confidence
Introduce role-based access control and debug authentication for the website
The authentication endpoint now supports assigning 'admin' and 'moderator' roles to users based on environment variables, propagating these roles into the user session. Additionally, a debug credentials provider is available in development mode or when the DEBUG\_LOGIN environment variable is set, allowing users to log in with a specified role for testing purposes.
website/src/pages/api/auth · high confidence
Introduce v1 API structure and admin endpoints
The backend API is reorganized into a modular v1 structure, with routes split into separate files for admin, auth, messages, users, and other domains. New admin endpoints are added for managing API clients, retrieving backend settings, purging user data and messages, and querying flagged messages. Authentication is handled via a new auth module that decrypts JWTs to extract user email. The API router now explicitly mounts all sub-routes under /api/v1, providing a consistent and structured API surface for clients.
_backend/oasst\backend/api/v1 · high confidence
Introduce website configuration, environment, and UI components
The website directory is now fully configured for local development and testing. A \.env\ file provides default environment variables for the database, FastAPI backend, authentication, and email services. TypeScript strictness is increased by enabling \strictBindCallApply\ and \strictFunctionTypes\ in \tsconfig.json\. The project now includes a comprehensive ESLint configuration (\next-lint.js\, \.eslintrc.json\) and Prettier setup. A \wait-for-postgres.sh\ script ensures the database is ready before running Prisma migrations. Additionally, new UI components (\AnimatedCircles\, \LoadingScreen\, \MessageLoading\) and a \useCurrentLocale\ hook are added to support the interface.
website · high confidence
Introduced Sortable component for ranking tasks
Added a new Sortable component and its associated files (Sortable.tsx, SortableItem.tsx, and Sortable.stories.tsx) to the website's component library. This component implements drag-and-drop sorting functionality using the DnD Kit library, allowing users to reorder items in a list. The implementation includes visual feedback for drag states, keyboard accessibility, and a modal view for long text content.
website/src/components/Sortable · high confidence
Introduces core website infrastructure and UI scaffolding
The website directory now includes foundational components and configuration files that establish the application's structure. This includes a README for unit testing with Jest and React Testing Library, a feature flag configuration file, a sidebar navigation hook that conditionally includes the Chat page based on an environment variable, a Next.js middleware for protecting routes like /dashboard and /chat, a Web Vitals reporting utility, and the project logo. These changes provide the necessary scaffolding for the frontend, enabling protected routes, conditional UI elements, and testing standards.
website/src · high confidence
Moderator message editing capability
A new admin page at /admin/edit/\[id\] allows moderators to edit existing messages. The page displays the message thread, provides a text editor with a live markdown preview, and submits the updated content via a new API endpoint at /api/admin/edit\_message/\[id\].
_website/src/pages/admin/edit, website/src/pages/api/admin/edit\message · high confidence
New API endpoint to fetch and register tasks
A new API route at /api/new\_task/\[task\_type\] has been added to the website. This endpoint retrieves a new task from the backend, registers the requesting user with that task, stores the task locally, and returns the result to the client.
_website/src/pages/api/new\task · high confidence
New API endpoints for message threads and emoji interactions
The message API has been refactored into specific endpoints to support richer message interactions. New endpoints allow fetching a message's parent, children, and full tree structure, enabling better navigation through conversation threads. Additionally, a new endpoint supports setting emoji reactions on messages, allowing users to react to specific messages within the thread.
website/src/pages/api/messages/\[id\] · high confidence
New API endpoints for retrieving recent and user-specific messages
Added two new API routes under /api/messages: /messages/index.ts returns recent messages filtered by the user's stored language, while /messages/user.ts retrieves the current user's messages using cursor-based pagination with a limit of 10 items. Both endpoints enforce role-based access control, rejecting banned users, and utilize the OASST client factory to interact with the backend service.
website/src/pages/api/messages · high confidence
New API endpoints for task, label, and user management
The website now exposes a suite of new backend API routes to handle user and content interactions. These include endpoints for fetching available tasks, submitting task updates and rejections, applying text labels, and reporting messages. Additional routes manage user profile data such as usernames, terms of service acceptance, and personal statistics. The API also provides endpoints for retrieving leaderboard data, valid label sets, and general application configuration. All routes enforce role-based access control, ensuring banned users are rejected.
website/src/pages/api · high confidence
New API schemas for message tree states and text labels
The backend now exposes structured Pydantic schemas for message tree states and text labels. Users can interact with a new \MessageTreeStateResponse\ schema that includes fields for tree state, goal size, depth, children count, activity status, and origin. Additionally, a \ValidLabelsResponse\ schema is introduced to support the \/api/v1/text\_labels/valid\_labels\ endpoint, which returns a list of \LabelDescription\ objects. These changes enable clients to query and manage message tree states and valid labeling options in a structured way.
_backend/oasst\backend/schemas · medium confidence
New DataTable component with expandable rows and cursor pagination
A new DataTable component has been introduced to the website, providing a reusable table with support for expandable rows, column filtering, and cursor-based pagination. The component integrates @tanstack/react-table for data binding and rendering, while a custom useCursorPagination hook manages forward/backward navigation states. This adds a new UI capability for displaying and interacting with tabular data in the application.
website/src/components/DataTable · high confidence
New Discord bot interactions for Open Assistant
The Discord bot now supports a suite of new interactive commands, including /info, /init, /lang, /task, and /label. Users can now view assistant information, change their preferred language, and engage with tasks such as labeling or replying to AI responses directly within Discord.
discord-bots/oa-bot-js/src/modules/open-assistant/interactions · high confidence
New Dockerfiles for backend, worker, Discord bot, model training, and website
The project now provides dedicated Dockerfiles for each major component: backend, backend-worker, Discord bot, model training, and website. The backend and worker images are built on Python 3.10, with the worker image using a separate requirements file. The website image uses Node.js 16.19.1 and includes a startup script to run Prisma database migrations before the webserver starts. The model training image is based on Ubuntu 22.04 with CUDA 11.7.1 and PyTorch 1.13.1. The Discord bot image is based on Python 3.10-slim-bullseye.
docker · high confidence
New TaskPage component for rendering task-specific views
A new TaskPage component has been added to handle the rendering of different task types. It manages the lifecycle of fetching and displaying tasks, including loading states, empty states, and the actual task view wrapped in a TaskContext provider. The component also dynamically sets the page title and meta description based on the task type.
website/src/components/TaskPage · high confidence
New UI components and layout wrappers for the web interface
Added a suite of new React components to the website, including layout wrappers (AdminArea, AuthLayout, Layout, SideMenuLayout), UI elements (CallToAction, EmptyState, Explain, Footer, Hero, JsonCard, MarkdownEditor, Roadmap, Services, SideMenu, TeamMember, ToS, UserAvatar, UserDisplayNameCell, UserMessageConversation, UserTable), and utility components (Container, CollapsableText, Faq, RoleSelect). These components introduce new visual structures and interactive elements across the application, such as the admin area protection, user management tables, and various page-specific layouts.
website/src/components · high confidence
New UI hooks for user score, auto-scrolling, and ref fallbacks
Added three new React hooks in the UI layer: useUserScore retrieves a user's current score, level, and progress toward the next level by fetching stats from the /api/user\_stats endpoint; useScrollToElementOnMount automatically scrolls an element into view on mount, enabling features like auto-focusing the chat input or scrolling to new messages; and useFallbackRef provides a utility to merge a forwarded ref with a local ref, supporting UI components that need to expose internal refs to parent components.
website/src/hooks/ui · high confidence
New account management API endpoints
Added two new API endpoints for account management: a DELETE endpoint at /api/account/delete that allows users to permanently delete their account from the data backend, inference backend, and web database; and a GET endpoint at /api/account that returns the user's email verification status and a list of linked external accounts (provider and provider account ID).
website/src/pages/api/account · high confidence
New account management pages for editing, deletion, and acknowledgements
The account section now includes dedicated pages for managing user data: a new /account/edit page allows users to update their username, /account/delete provides a confirmation flow to permanently remove the account, and /account/paperack lets users opt into being acknowledged in the associated research paper. These pages are built using react-hook-form for form handling and integrate with existing API endpoints (/api/username, /api/account/delete, /api/paperack).
website/src/pages/account · high confidence
New admin API endpoints for user management and system status
The admin interface now exposes dedicated API routes for managing users, viewing system status, and accessing system parameters. The new \users\ endpoint allows admins and moderators to list and search for users with pagination and sorting, while \update\_user\ enables role and profile updates. The \status\ endpoint aggregates tasks availability, stats, and tree manager information using a dummy user context. Additionally, the \parameters\ endpoint serves public or full system settings based on the requester's role, and the \trollboard\ endpoint retrieves and formats trollboard data. These changes provide a more structured and secure way for administrators to manage users and monitor system health.
website/src/pages/api/admin · high confidence
New admin dashboard pages for user management, parameters, and trollboard
The admin section now includes three new pages: an index page displaying a user table for managing user access rights, a parameters page that fetches and displays system configuration data, and a trollboard page that allows filtering active or banned users across daily, weekly, monthly, and overall timeframes.
website/src/pages/admin · high confidence
New authentication hooks for role-based access control
Two new React hooks, useHasAnyRole and useHasRole, have been added to the authentication module. These hooks allow components to easily check if the current user possesses specific roles by comparing the user's role from the Next-Auth session against provided role values.
website/src/hooks/auth · high confidence
New backend and frontend devcontainer configurations
Added new devcontainer configurations for backend and frontend development environments. The backend devcontainer sets up a Python environment with pre-commit, VS Code extensions (Copilot, Python, Prettier), and runs a Docker Compose service. The frontend devcontainer configures a Node.js environment with pre-commit and VS Code extensions (Copilot, Prettier). These changes streamline local development setup for both backend and frontend components.
.devcontainer/backend-dev · high confidence
New backend data models for messages, tasks, and user statistics
The backend now includes a comprehensive set of SQL models for managing messages, tasks, and user statistics. This introduces new database tables for message content, embeddings, reactions, and revisions, as well as a state machine for message trees. It also adds models for user statistics, leaderboards, and task management, enabling the backend to track user activity, message quality, and task distribution.
_backend/oasst\backend/models · high confidence
New backend development scripts for local testing
Added a set of shell scripts in the \scripts/backend-development\ directory to streamline local backend development and testing. \run-local.sh\ and \run-local-no-limit.sh\ launch the backend server with configurable debug flags, while \start-mock-server.sh\ generates the OpenAPI schema and starts a Prism-based mock server for contract testing. Additional scripts (\start-worker.sh\, \stop-worker.sh\, \stop-mock-server.sh\) manage background workers and mock services, supported by a \README.md\ explaining the setup.
scripts/backend-development · high confidence
New button components for Likert scales and skip actions
The Buttons component directory now includes dedicated UI components: a Likert scale selector using radio buttons, a confirmation modal for skipping tasks, and a standard submit button. These components provide the interactive elements needed for rating responses and handling task navigation.
website/src/components/Buttons · high confidence
New chat API endpoints for message handling, voting, and chat management
The website's chat functionality is now backed by a new set of API endpoints in the /api/chat directory. These endpoints proxy requests to the inference service, enabling core chat interactions: posting assistant and prompter messages, retrieving chat history and individual messages, managing chat sessions (create, update, delete), and voting on messages. The implementation includes error handling for inference failures, a pagination parameter for chat lists, and a check to ensure SSR chat is enabled before processing requests.
website/src/pages/api/chat · high confidence
New chat pages for listing and viewing conversations
Added new Next.js page components for the chat feature: a chat list page (website/src/pages/chat/index.tsx) that displays the user's conversations, and a chat detail page (website/src/pages/chat/\[id\].tsx) that renders a specific conversation. The list page conditionally redirects to a 'bye' page if the BYE environment variable is set, while the detail page fetches model and plugin data to provide context for the chat section.
website/src/pages/chat · medium confidence
New dashboard components for tasks, leaderboard, and user welcome
The dashboard now features a dedicated layout with new components: a WelcomeCard that displays a personalized greeting for new users, a TaskOption component that presents available tasks by category with counts and links, and a LeaderboardWidget that shows the top 5 contributors for the day. These components are exported from the new Dashboard folder, replacing the previous inline or scattered implementations with a structured, modular approach to the dashboard UI.
website/src/components/Dashboard · medium confidence
New dataset loading and formatting infrastructure for model training
The \model/model\_training/custom\datasets\ module has been restructured with a new set of files to handle data loading and formatting for various training modes (SFT, RL, RM). This includes a central \\\init\\_.py\ that registers datasets like Alpaca, Vicuna, WebGPT, and OASST, along with specific loaders for pre-training (RedPajama, FanFics), instruction following, and reward modeling (Anthropic RLHF, SHP, HellaSwag). A new \formatting.py\ defines Pydantic models (\DatasetEntrySft\, \DatasetEntryRm\) and special tokens for conversation formatting. Additionally, a \dialogue\_collator.py\ is introduced to handle tokenization, label masking, and sample mixing for dialogue data. A README.md is also added to document the dataset categories.
_model/model\_training/custom\datasets · high confidence
New datasets and data processing scripts added
Added the TSSB-3M instruction dataset, which converts Python commit diffs into instruction-response pairs, and a new 'bart\_searchgpt\_wiki\_nlp\augment' directory containing scripts to clean, summarize, and format Wikipedia text for instruction generation. The dataset registry in data/datasets/\\init\\_.py has been updated to include these new datasets alongside existing ones like Humaneval, StackExchange, and others.
data · high confidence
New evaluation tasks for ranking assistant and user replies
The website now includes dedicated pages for ranking assistant replies, initial prompts, and user replies. These new routes allow users to participate in specific evaluation tasks, with each page rendering a unified TaskPage component configured for its respective task type.
website/src/pages/evaluate · high confidence
New frontend development scripts and documentation
Added a new \scripts/frontend-development\ directory containing helper scripts and documentation to streamline the local development workflow. This includes a README with setup instructions, a Python script (\find-missing-locales.py\) to audit and identify missing or untranslated locale files, a shell script (\run-bot-local.sh\) to execute the Discord bot locally, and a shell script (\run-contract-test.sh\) to run contract tests via Cypress. These tools provide a more integrated and convenient way for developers to manage local environments and verify translations.
scripts/frontend-development · high confidence
New inference and protocol schemas for the Open Assistant shared library
The oasst-shared library now includes new Pydantic schema definitions for the inference server and the main API protocol. The inference schemas define the structure for worker hardware and GPU metrics, plugin configurations and execution details, and sampling parameters, enabling the backend to communicate with inference workers. The protocol schemas introduce models for user accounts, token pairs, conversation messages, and various task types (such as summarization, rating, and labeling tasks), establishing the data contracts for frontend-backend and backend-inference communication.
_oasst-shared/oasst\shared/schemas · high confidence
New language selector component with cookie sync and forced reload
A new LanguageSelector component was added to the website, providing a dropdown for switching languages. The component synchronizes the browser's locale cookie with the URL-based locale to handle manual URL changes, and enforces a full page reload when a new language is selected to ensure proper hydration and state reset.
website/src/components/LanguageSelector · high confidence
New message management and labeling components
The Messages area now includes a suite of new components to support message administration and labeling workflows. Admins can now use the AdminMessageTable to view, filter, and manage messages, including the ability to delete or undelete them. A new LabelMessagePopup and associated input groups (LabelInputGroup, LabelYesNoGroup, LabelFlagGroup) allow users to apply structured labels and flags to messages. Additionally, the message display has been refactored with new components like BaseMessageEntry, MessageConversation, MessageTree, and MessageHistoryTable to improve layout, threading, and version history presentation.
website/src/components/Messages · high confidence
New model training and utility scripts
Added several new Python scripts in the model training tools directory to support model training, evaluation, and interaction workflows. This includes \model\_chat.py\ and \model\_cli.py\ for interactive local testing and CLI-based conversation with trained models, \export\_model.py\ for exporting models to Hugging Face or local directories with support for RL checkpoints and rope scaling, \augment\_oasst.py\ to augment the OASST dataset with SFT-generated results, \check\_oasst\_export.py\ to validate and inspect exported datasets, and \sample\_rm\_data.py\ to sample and split data for reward model training.
_model/model\training/tools · high confidence
New pages for creating assistant and user replies
The website now includes dedicated pages for creating assistant and user (prompter) replies. New route files have been added at \website/src/pages/create/assistant\_reply.tsx\ and \website/src/pages/create/user\_reply.tsx\, each rendering the \TaskPage\ component with the corresponding \TaskType\ (\assistant\_reply\ and \prompter\_reply\). These pages utilize the \DashboardLayout\ and share a common server-side props configuration, providing a consistent interface for users to submit replies in the creation flow.
website/src/pages/create · high confidence
New plugins for web content retrieval and playful roasting
Added two new inference server plugins: a 'Web Retriever' that fetches and extracts text content from web pages and PDFs, and a 'Gale Roaster' that generates humorous, mean-spirited roasts based on user input. These plugins expose OpenAPI schemas and API endpoints to enable these capabilities within the inference server.
_inference/server/oasst\_inference\_server/plugins/gale\_roaster, inference/server/oasst\_inference\_server/plugins/web\retriever · high confidence
New postprocessing scripts for ranking, scoring, and PII detection
Added a suite of new scripts in the \scripts/postprocessing\ directory to handle post-processing tasks. This includes \rankings.py\ for generating consensus rankings using the ranked pairs algorithm, \scoring.py\ for tracking and calculating user quality scores based on voting, prompting, and ranking behavior, and \ranking\_disagreement.py\ to measure user alignment with consensus. Additionally, \importance\_selection.py\ provides algorithms for selecting important features, \infogain\_selector.py\ calculates information gain, \task\_schedule.py\ manages task distribution logic, and \regex\_pii\_detector.py\ identifies and flags personally identifiable information (PII) in text data.
scripts/postprocessing · high confidence
New routes for browsing all tasks and random tasks
Added new pages at /tasks/all and /tasks/random. The /tasks/all page displays a list of all available tasks using the TaskOption component, while the /tasks/random page provides a random task selection. Both pages utilize the DashboardLayout and server-side props for rendering.
website/src/pages/tasks · high confidence
New shared library for API client, model configs, and utilities
The oasst-shared package now provides a centralized library containing the OasstApiClient for backend communication, a model\_configs module defining parameters for various LLMs (including Llama 30B variants and Carper RLHF models), and utility functions for timing, hashing, and anonymization. This refactors and consolidates previously scattered client and configuration code into a single shared module.
_oasst-shared/oasst\shared · high confidence
New task components for creation, evaluation, and configuration
The Tasks directory now includes dedicated components for user-facing workflows: CreateTask, which provides a text input with live markdown preview and keyboard shortcuts; EvaluateTask, which enables ranking and 'not rankable' selection for messages; and TaskTypes, which centralizes the configuration of all available task types, their categories, and help links. Additionally, a new UnchangedWarning modal component is introduced to prompt users to confirm submission when no changes have been made.
website/src/components/Tasks · high confidence
New training configuration files for reward, SFT, and RLHF pipelines
Added a comprehensive set of configuration files to support training workflows. This includes \config.yaml\ and \config\_rm.yaml\ for standard supervised fine-tuning and reward modeling, \config\_rl.yaml\ for reinforcement learning from human feedback (RLHF) with specific settings for Pythia and Llama models, and \ppo\_config.yaml\ for Proximal Policy Optimization. Additionally, DeepSpeed JSON configurations (Zero2, Zero3, and Falcon-specific) and Accelerate YAML are introduced to manage distributed training, mixed precision, and memory optimization for these distinct training modes.
_model/model\training/configs · high confidence
Redesigned chat interface with new configuration, threading, and draft features
The chat experience has been completely overhauled with a new layout and feature set. Users can now access a dedicated configuration panel (ChatConfig) to adjust model parameters, plugins, and custom instructions, with settings automatically saved. The chat view supports threaded conversations, allowing users to navigate between sibling responses using a pager. Additionally, the system generates multiple assistant drafts during streaming, which users can review and select from via a new draft pager component. The chat list sidebar has also been updated with improved styling, pagination, and the ability to hide or delete chats.
website/src/components/Chat · high confidence
Standardize development environment with pre-commit hooks and Docker Compose
The repository now enforces consistent code formatting and linting via a new \.pre-commit-config.yaml\ that integrates Black, isort, Ruff, and Prettier. A \.gitignore\ and \.dockerignore\ have been added to exclude generated files and build artifacts. Additionally, \docker-compose.yaml\ and \redis.conf\ are introduced to standardize the local development stack, while \inlang.config.js\ enables translation management for the website. The \README.md\ and \CODEOWNERS\ files are updated to reflect the new project structure and maintenance responsibilities.
(repo-wide) · high confidence
Architecture
Centralized API error handling with structured error codes
The \oasst\_shared.exceptions\ module has been introduced to centralize API error handling. It defines an \OasstErrorCode\ enum containing specific error codes for general errors, tasks, repositories, and user states, alongside an \OasstError\ exception class that bundles a message, error code, and HTTP status code. This change provides a consistent way to handle and identify backend API errors across the application.
_oasst-shared/oasst\shared/exceptions · high confidence
Behavioural changes
Added hooks for deleting and undeleting messages
Users can now delete messages and, if needed, restore them via new frontend hooks. The implementation introduces useDeleteMessage and useUndeleteMessage hooks that interact with the admin API routes for deleting and undeleting messages, respectively, and refreshes the message list upon completion.
website/src/hooks/message · medium confidence
Added new manual evaluation prompts and synthetic responses
The manual evaluation dataset has been expanded with 100 new test prompts, including both synthetic examples (e.g., about 401k plans and Chernobyl) and human-curated conversations (e.g., about TV specifications and programming languages). These new entries are stored in \en\_100\_message.jsonl\ and include multi-turn dialogues with associated metadata such as emoji reactions and review flags, providing a broader range of scenarios for model evaluation.
_model/model\eval/manual/data · high confidence
Centralized theme configuration with dark mode support
The application now uses a centralized theme configuration that defines color palettes for both light and dark modes, including specific colors for backgrounds, text, problem states, and active states. This change introduces a global style that dynamically switches background and text colors based on the current color mode, ensuring consistent visual presentation across the site. The theme also includes typography settings using the Inter font, custom component themes for badges, containers, cards, and tables, and responsive breakpoints.
website/src/styles/Theme · high confidence
Consolidate messages dashboard into a single page
The messages dashboard has been restructured into a single page at /messages, which now displays both recent messages and the user's own messages in a two-column layout. This change simplifies the navigation and provides a unified view of all message-related content.
website/src/pages/messages · high confidence
Database schema migration for user, message, and task models
The database schema was updated to rename core entities: 'person' became 'user', 'post' became 'message', and 'work\_package' became 'task'. This migration also introduces new fields such as 'auth\_method' for users, 'lang' for messages, 'deleted' flags, and tracking columns for reviews, rankings, and user statistics. Additionally, separate tables were created for message embeddings and toxicity scores, while redundant columns like 'accepted\_messages' were removed from the message tree state.
backend/alembic/versions · high confidence
Database schema updates for user deletion, chat hiding, and safety tracking
The inference server's database schema has been updated to support new user and chat management features. A 'deleted' boolean column was added to the 'user' table to enable soft deletion of accounts. The 'chat' table received a 'hidden' column to allow users to hide conversations, and an 'allow\_data\_use' column to support data opt-out preferences. Additionally, the 'message' table was extended with 'safe\_content', 'safety\_level', 'safety\_label', and 'safety\_rots' columns to track safety interventions, while a new 'message\_evaluation' table was introduced to store user feedback on message quality.
inference/server/alembic/versions · high confidence
Introduce browser-side configuration context
A new React context and hook are added to expose browser-side environment variables to client components. This allows the UI to dynamically adjust features like chat, email sign-in, and draft generation based on server-provided configuration.
website/src/hooks/env · high confidence
Introduce chat configuration caching and tree-building utilities
Added new utility functions to persist and retrieve chat configuration settings (including model, presets, plugins, and custom instructions) in the browser's local storage, alongside a helper to convert flat message lists into hierarchical trees for UI rendering.
website/src/utils · medium confidence
Introduce generic task API hook for consistent task handling
The website's task handling has been refactored to use a new \useGenericTaskAPI\ hook, which centralizes the logic for fetching, submitting, and rejecting tasks. This generic hook is now used by specific task hooks (such as \useCreateReply\, \useEvaluateReplies\, and \useLabelingTask\), providing a consistent interface for managing task states and API interactions across the application.
website/src/hooks/tasks · high confidence
Introduce inference server database models
The inference server now persists chat, message, user, and worker state in the database. This enables features such as soft-deleting users, hiding chats, revoking refresh tokens, tracking worker compliance and events, and storing message metadata (e.g., title, modified/created timestamps, safety scores, and plugin usage).
_inference/server/oasst\_inference\server/models · high confidence
Introduce strict TypeScript types for website data models
The website's \src/types\ directory has been populated with explicit TypeScript interfaces and enums for core domain models, including Chat, Task, User, Leaderboard, and Stats. This change replaces implicit or loosely-typed structures with a comprehensive set of type definitions that enforce data shapes across the frontend, ensuring that components and API clients interact with correctly typed objects for messages, tasks, user accounts, and leaderboard data.
website/src/types · high confidence
Introduce user authentication and chat management to the inference server
The inference server now requires user authentication for chat endpoints, supporting access tokens, refresh tokens, and trusted client keys. It also introduces user-specific chat management, allowing users to view, create, and delete their own chats, as well as hide chats. Additionally, the server implements a worker compliance check system to ensure worker outputs are valid, and adds rate limiting for user requests.
_inference/server/oasst\_inference\server · high confidence
New API dependency injection and rate-limiting infrastructure
The backend API layer now includes a new \deps.py\ module that provides dependency injection functions for database sessions, API key authentication, and user identification. It introduces a \UserRateLimiter\ and \UserTaskTypeRateLimiter\ classes that enforce rate limits on user actions, with the ability to skip rate limiting when disabled in settings. Additionally, it adds support for a \trusted\ flag on API clients, allowing trusted clients to bypass certain restrictions.
_backend/oasst\backend/api · medium confidence
Redesign of the site header and user menu
The site header has been refactored into new Chakra UI components, introducing a dedicated color mode toggler button in the navigation bar. The user menu has been redesigned to display the user's avatar, name, and role badge, alongside their score. Additionally, the header now supports a configurable announcement bar at the top.
website/src/components/Header · high confidence
Redesigned sign-in and email verification pages
The sign-in page now supports email-based authentication with an optional Cloudflare Turnstile CAPTCHA, and displays specific error messages for different authentication failures. The email verification page has been updated to include a warning that the sign-in link might be in the user's spam folder. Both pages now use Chakra UI for styling and support dark mode.
website/src/pages/auth · high confidence
Redesigned survey interface with new components
The survey page has been rebuilt using new components: a Likert-style labeling system for rating tasks, a unified task controls bar for editing, reviewing, and submitting, a tracked text area with language detection and word count progress, and a two-column card layout. This changes how users interact with survey tasks, providing clearer feedback on language and content quality.
website/src/components/Survey · high confidence
Refactor website API client and add chat streaming support
The website's API interaction has been refactored to use a new \OasstApiClient\ and \OasstInferenceClient\ in \website/src/lib\, replacing previous ad-hoc fetch/axios calls with a centralized, typed client. This change introduces \api.ts\ for generic HTTP methods and \oasst\_api\_client.ts\ for backend interactions, while \oasst\_inference\_client.ts\ handles chat and inference endpoints. Additionally, \chat\_stream.ts\ and its tests (\chat\_stream.test.ts\) introduce line-buffered SSE parsing for chat events, and \captcha.ts\ adds Cloudflare Turnstile validation logic. The \auth.ts\ module provides role-based access control wrappers for API routes.
website/src/lib · high confidence
Reset visual regression baseline for the website
The visual regression baseline directory for the website has been cleared, removing all previously stored screenshot references. This reset ensures that the current state of the website is treated as the new standard for future visual regression tests.
website/cypress-visual-screenshots · medium confidence
Test coverage
Add Storybook stories for the Task component; Add contract tests for the Oasst API client; Add tests for OasstApiClient error handling; Added Cypress component test for Container; Added Cypress e2e test support files and custom commands; Added end-to-end tests for task labeling and random task flows; Added end-to-end tests for the sign-in flow; Added initial test suite for backend configuration and settings; Added load testing for the inference service; Added mock router utility for testing; Added test script for oasst-shared; Added tests for model training components; Added unit tests for the Home and About pages.
Dependencies
Add dependency manifests for new and existing project components
This change introduces dependency management files across the project. It adds Python requirements files for the backend, inference workers, and various data processing scripts, establishing explicit version pins for libraries such as FastAPI, Pydantic, and Celery. It also introduces a Node.js package manifest for the website, defining dependencies for the Next.js application, Storybook, and testing tools. Additionally, it adds package manifests for the documentation site, the Discord bot, and the model training module, ensuring each component has its own isolated environment and dependency list.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 34 → 45 (+10.2)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 46 → 69 (+22.9)
- Architecture 85 → 86 (+0.2)
- Maturity 73 → 48 (-25.1)
- Readiness 20 → 38 (+18.2)
- Security 35 → 56 (+21.5)
- Domain Modelling 74 (new)
- Accessibility 42 (new)
Resolved (125)
- Change coupling: 404.tsx ↔ 500.tsx (website/src/pages/404.tsx)
- Change coupling: AuthLayout.tsx ↔ _document.tsx (website/src/components/AuthLayout.tsx)
- Change coupling: TaskTypes.tsx ↔ UnchangedWarning.tsx (website/src/components/Tasks/TaskTypes.tsx)
- Change coupling: [...nextauth].ts ↔ next-auth.d.ts (website/src/pages/api/auth/[...nextauth].ts)
- Change coupling: assistant_reply.tsx ↔ user_reply.tsx (website/src/pages/create/assistant_reply.tsx)
- Change coupling: commands.ts ↔ e2e.ts (website/cypress/support/commands.ts)
- Change coupling: label_assistant_reply.tsx ↔ label_initial_prompt.tsx (website/src/pages/label/label_assistant_reply.tsx)
- Change coupling: label_assistant_reply.tsx ↔ label_prompter_reply.tsx (website/src/pages/label/label_assistant_reply.tsx)
- Change coupling: useCreateReply.ts ↔ useGenericTaskAPI.tsx (website/src/hooks/tasks/useCreateReply.ts)
- Change coupling: useCreateReply.ts ↔ useLabelingTask.ts (website/src/hooks/tasks/useCreateReply.ts)
- Coverage not measured — test suite did not build
- Critical CVE: [GHSA redacted] (inference/worker/requirements.txt)
- Critical CVE: [GHSA redacted] (model/model_eval/manual/requirements.txt)
- Critical CVE: [GHSA redacted] (model/pretokenizer/requirements.txt)
- Critical CVE: [GHSA redacted] (inference/worker/requirements.txt)
- Critical CVE: [GHSA redacted] (data/datasets/logicreference_OA/requirements.txt)
- Critical CVE: [GHSA redacted] (data/datasets/zhihu-kol/requirements.txt)
- Critical CVE: [GHSA redacted] (inference/worker/requirements.txt)
- Critical CVE: [GHSA redacted] (backend/requirements.txt)
- Critical CVE: [GHSA redacted] (inference/worker/requirements.txt)
- …and 105 more
New (462)
- AdminMessageTable.AdminMessageTable (cognitive 24) (website/src/components/Messages/AdminMessageTable.tsx)
- AdminMessageTable.AdminMessageTable (cyclomatic 23) (website/src/components/Messages/AdminMessageTable.tsx)
- AggregateResults.aggregate (cognitive 18) (model/model_training/tools/augment_oasst.py)
- Change coupling: CreateTask.tsx ↔ EvaluateTask.tsx (website/src/components/Tasks/CreateTask.tsx)
- Change coupling: LeaderboardTable.tsx ↔ leaderboard.ts (website/src/components/LeaderboardTable/LeaderboardTable.tsx)
- Change coupling: [task_type].ts ↔ update_task.ts (website/src/pages/api/new_task/[task_type].ts)
- Change coupling: chat_repository.py ↔ chats.py (inference/server/oasst_inference_server/chat_repository.py)
- Change coupling: frontend_users.py ↔ users.py (backend/oasst_backend/api/v1/frontend_users.py)
- Change coupling: index.ts ↔ index.tsx (website/src/pages/api/chat/index.ts)
- Change coupling: oasst_inference_client.ts ↔ routes.ts (website/src/lib/oasst_inference_client.ts)
- Change coupling: privacy-policy.tsx ↔ terms-of-service.tsx (website/src/pages/privacy-policy.tsx)
- Change-coupling hub: TaskTypes.tsx → label_assistant_reply.tsx, label_initial_prompt.tsx, label_prompter_reply.tsx (website/src/components/Tasks/TaskTypes.tsx)
- ChatConfigForm.useHydrateChatConfig (cognitive 23) (website/src/components/Chat/ChatConfigForm.tsx)
- ChatConfigForm.useHydrateChatConfig (cyclomatic 16) (website/src/components/Chat/ChatConfigForm.tsx)
- ChatConversation.ChatConversation (cognitive 50) (website/src/components/Chat/ChatConversation.tsx)
- ChatConversation.ChatConversation (cyclomatic 47) (website/src/components/Chat/ChatConversation.tsx)
- ChatConversationTree.TreeChildren (cyclomatic 16) (website/src/components/Chat/ChatConversationTree.tsx)
- ChatListItem.ChatListItem (cognitive 20) (website/src/components/Chat/ChatListItem.tsx)
- ChatListItem.ChatListItem (cyclomatic 17) (website/src/components/Chat/ChatListItem.tsx)
- ChatMessageEntry.ChatMessageEntry (cognitive 25) (website/src/components/Chat/ChatMessageEntry.tsx)
- …and 442 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
LAION-AI/Open-Assistant was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 26 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit f1e6ed9526f5817531f3ab85441a40b3671ddccb — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-d0929f7ac71f.