How datyth/zaloai-challenge-lifemate works
LifeMate is an offline Vietnamese voice-to-tool agent and challenge solution. Its main runtime turns a sample’s audio into text, builds a prompt from the request and read-only context, asks a local LLM for tool calls, validates and executes calls on the sample’s ToolEnv, then records calls and the final state hash. The repository also includes ASR and agent training-data pipelines, synthetic task generation, and evaluation. Several runtime links are supported by the CLI excerpt and source index; README-documented capabilities cover some unsampled branches.
Main entry points: cli.py Inference CLI · agent.py Checked agent loop · toolenv.py Organizer ToolEnv · docker_predict.py Docker prediction
Components 21
Inference runtime
- Inference CLI
src/lifemate/cli.py - Gipformer ASR
src/lifemate/asr.py - Input data
src/lifemate/data.py - Organizer ToolEnv
src/lifemate/toolenv.py - Submission output
src/lifemate/submission.py - Docker prediction
src/lifemate/docker_predict.py
Agent decision layers
- Prompt context
src/lifemate/context.py - History formatter
src/lifemate/history.py - Checked agent loop
src/lifemate/agent.py - Local chat client
src/lifemate/llm.py - Step-level voting
src/lifemate/ensemble.py
Training and data
- Agent SFT trajectories
scripts/data/prepare_agent_sft.py - ASR target data
scripts/train/asr_targets.py - Gipformer training
scripts/train/gipformer_pt.py - Synthetic split builder
scripts/data/build_synth_split.py - Synthetic app catalog
synth/catalog.py - Synthetic task helpers
synth/tasks/_common.py - Home service tasks
synth/tasks/home_services.py
Evaluation
- Run metrics
src/lifemate/metrics.py - Score analysis
analysis/score.py
Other components
- Voice requester
Connections 27
- Voice requester → Inference CLI: submits request
README.md - Inference CLI → Input data: loads samples
src/lifemate/cli.py - Inference CLI → Gipformer ASR: transcribes audio
src/lifemate/cli.py - Inference CLI → Prompt context: builds context
src/lifemate/cli.py - Inference CLI → Checked agent loop: runs agent
src/lifemate/cli.py - Inference CLI → Local chat client: configures client
src/lifemate/cli.py - Inference CLI → Step-level voting: selects voting
src/lifemate/cli.py - Inference CLI → Organizer ToolEnv: creates environment
src/lifemate/cli.py - Inference CLI → Submission output: writes results
src/lifemate/cli.py - Inference CLI → Run metrics: computes metrics
src/lifemate/cli.py - Checked agent loop → History formatter: formats history
src/lifemate/agent.py - Checked agent loop → Prompt context: builds prompt
src/lifemate/agent.py - Checked agent loop → Local chat client: requests proposals
src/lifemate/agent.py - Checked agent loop → Organizer ToolEnv: executes checked calls
README.md - Step-level voting → Checked agent loop: returns winning proposal
src/lifemate/ensemble.py - Docker prediction → Checked agent loop: runs agent
src/lifemate/docker_predict.py - Docker prediction → Gipformer ASR: transcribes audio
src/lifemate/docker_predict.py - Docker prediction → Prompt context: uses prompt context
src/lifemate/docker_predict.py - Docker prediction → Organizer ToolEnv: creates environment
src/lifemate/docker_predict.py - Agent SFT trajectories → Checked agent loop: replays trajectories
scripts/data/prepare_agent_sft.py - Agent SFT trajectories → Input data: loads samples
scripts/data/prepare_agent_sft.py - Agent SFT trajectories → Organizer ToolEnv: checks gold calls
scripts/data/prepare_agent_sft.py - ASR target data → Gipformer training: provides targets
scripts/train/train_gipformer.py - Synthetic split builder → Synthetic app catalog: builds synthetic data
- Home service tasks → Synthetic task helpers: uses task helpers
synth/tasks/home_services.py - Score analysis → Submission output: scores predictions
analysis/score.py - Score analysis → Organizer ToolEnv: compares state
analysis/score.py