jev-music-tag
Minimal FastAPI and React workbench where Jev picks metadata values such as genre for local audio files and writes them back.
Overview
Jev Music Tag is a minimal workbench, documented in Chinese and English, for testing Jev on music metadata. It reads tags from MP3, FLAC, M4A and similar files with Mutagen, sends the metadata and configurable questions to TypeSafe's Jev systemone endpoint, and returns metadata_updates that can be written back to the original file.
A question names a target field, for example a score-type question over Pop, Rock and Soundtrack for the genre field. The backend picks the highest-probability option, strips empty values and cover art before sending, and only allows writable fields as targets. A React single-page UI lets you edit the JSON, prompt and question configuration. The README describes it as a demo without a database, login or batch scanning, and recommends adding auth, path whitelists, log redaction and rate limits before production use.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Score | Which genre fits this song based on its context? | Pop · Rock · Soundtrack |
How it works
- Read tags from an audio file on the server
- Send metadata and questions to Jev
- Select the highest-probability option per target field
- Write metadata_updates back to the file
Strengths
- Simple way to test decision prompts and field mappings
- Only allowed fields can be written
- API key stays server-side
Caveats
- Demo without auth, path whitelisting or batch processing
- File paths refer to the server machine
- Requires a Jev API key
Getting started
cp .env.example .env (set JEV_API_KEY), uv sync, uv run uvicorn backend.main:app --reload --port 8000, then npm install && npm run dev in frontend.At a glance
- Type
- Project
- Status
- prototype
- Language
- Python
- Runtime
- FastAPI backend with React frontend
- Has code
- yes
Use cases and integrations
How curated lists describe it
A minimal FastAPI and React workbench that sends local audio tags to Jev for decisions and writes the returned metadata updates back to the audio files.
logicrw/awesome-jev-projects
Frequently asked questions
What does Jev decide?
Metadata values such as a song's genre from a list of options.
Does it change my files?
Only when you click write; it then saves the returned metadata updates to the file.
Is it production-ready?
No. The README calls it a minimal demo and lists hardening needed first.
Related projects
CLI that classifies an artist's discography by theme, mood and lyrical complexity with Jev and shows a terminal dashboard.
AppprototypeTypeScriptWeb app that sorts large playlists by each song's main singing language using Jev, in batches of 100 with four in parallel.
ProjectprototypeTypeScriptdbt package whose macros run Jev Choice, Noul and Score over SQL values in DuckDB and ClickHouse models.
ProjectbetaSQL (Jinja)DuckDB extension that asks Jev about every row in SQL and returns answers as ENUM, DOUBLE or STRUCT columns.
PluginbetaC++Python and Node library that classifies Hugging Face dataset rows on typed Choice, Score and Noul dimensions using Jev.
ProjectbetaPython, TypeScriptCodex plugin for batch labelling JSONL records with Jev under custom policies, with Codex reviewing uncertain labels.
MCP serverbetaTypeScript