Skip to content

jev-music-tag

Minimal FastAPI and React workbench where Jev picks metadata values such as genre for local audio files and writes them back.

Projectprototype

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

TypeQuestionAnswers
ScoreWhich genre fits this song based on its context?Pop · Rock · Soundtrack

How it works

  1. Read tags from an audio file on the server
  2. Send metadata and questions to Jev
  3. Select the highest-probability option per target field
  4. 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.

    AppprototypeTypeScript
  • Web app that sorts large playlists by each song's main singing language using Jev, in batches of 100 with four in parallel.

    ProjectprototypeTypeScript
  • dbt 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, TypeScript
  • Codex plugin for batch labelling JSONL records with Jev under custom policies, with Codex reviewing uncertain labels.

    MCP serverbetaTypeScript