Skip to content

feat(tracking): integrate changes need for the rllm-ui#402

Merged
listar2000 merged 7 commits into
rllm-org:mainfrom
Chanbinski:ui-integration
Feb 26, 2026
Merged

feat(tracking): integrate changes need for the rllm-ui#402
listar2000 merged 7 commits into
rllm-org:mainfrom
Chanbinski:ui-integration

Conversation

@Chanbinski
Copy link
Copy Markdown
Contributor

@Chanbinski Chanbinski commented Feb 25, 2026

Summary

  • Add UILogger as a new "ui" backend for Tracking, sending metrics, episodes, trajectory groups, and stdout/stderr logs to the rllm-ui server via HTTP
  • Add source_extraction utility to extract workflow/agent/reward source code and sent it to rllm-ui
  • Add TeeStream to capture stdout/stderr without disrupting terminal output
  • Add heartbeat daemon thread (30s interval) so the server can detect crashed sessions via stale heartbeat timeout
  • Wire source_metadata and episodes/trajectory_groups through unified_trainerTracking.log()UILogger
  • Add [ui] optional dependency (httpx, python-multipart)
  • Add RLLM_API_KEY support for authenticating training data ingestion to the cloud server (sent as X-API-Key header). When RLLM_API_KEY is set, RLLM_UI_URL defaults to https://api.rllm-project.com/; otherwise it defaults to http://localhost:3000 for local dev.

Usage

pip install -e .[ui]

Then add "ui" to the trainer's logger list in the Hydra config.

- Add UILogger and TeeStream classes for sending metrics, episodes,
  trajectory groups, and stdout/stderr to rllm-ui backend
- Add heartbeat daemon thread (30s interval) for server-side crash
  detection via stale heartbeat timeout
- Add source_extraction utility for extracting workflow/agent source
- Wire UILogger into Tracking class as "ui" backend
- Pass source_metadata and episodes/trajectory_groups from unified
  trainer to logger
- Add [ui] optional dependency (httpx, python-multipart)
- Use Episode.to_dict() instead of manual dict construction
- Strip heavy step fields (prompt_ids, logprobs, etc.) for lighter payloads
- Remove unused _serialize_trajectory method
- Drop unused correct_count/total_count from trajectory group data
- Fix metadata episode_id construction using task_id:rollout_idx
- Read RLLM_UI_API_KEY env var and attach as X-API-Key header
- Auto-default to https://api.rllm-project.com when RLLM_API_KEY is set
- Fall back to http://localhost:3000 when no API key is configured
- RLLM_UI_URL still takes priority when explicitly set
- Replace api.rllm-project.com with ui.rllm-project.com in UILogger
- Add rllm-ui.md with Features, Cloud Setup, and Self-hosted Setup
- Remove redundant env var sections; each setup path is self-contained
- Move Database and AI Agent under Self-hosted as subsections
- Add architecture diagram asset
- Add rLLM UI nav entry to mkdocs.yml
@listar2000
Copy link
Copy Markdown
Collaborator

Looks good for me, also thanks for the great doc @Chanbinski

@listar2000 listar2000 merged commit e3cb813 into rllm-org:main Feb 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants