Vocab Bloom Hub

Un dictionnaire à faire tourner à côté de votre application

Vocab Bloom Hub est un dictionnaire d'anglais auto-hébergé — 300 000 entrées avec sens, exemples, formes fléchies et traductions en russe, espagnol, français, allemand, portugais, chinois et arabe — derrière une API publique en lecture seule, avec des SDK, une interface d'administration et un jeu de données publié. Une commande pour l'installer, MIT pour le code, CC BY 4.0 pour les données.

Installation en une commande

Le fichier compose et le modèle d'environnement suffisent : les images sont tirées de GitHub Container Registry, Postgres démarre à côté et le dictionnaire se charge tout seul au premier démarrage.

mkdir vocab-bloom-hub && cd vocab-bloom-hub
curl -fsSLO https://raw.githubusercontent.com/Fristail27/vocab-bloom-hub/main/docker-compose.yml
curl -fsSL  https://raw.githubusercontent.com/Fristail27/vocab-bloom-hub/main/.env.example -o .env
# edit .env: ADMIN_PASSWORD, POSTGRES_PASSWORD
docker compose up -d
curl -s localhost:3010/api/ready   # {"status":"ok"} once the dictionary is in

Ce que vous obtenez

API publique

Versionnée, en lecture seule, sans connexion : recherche tolérante aux fautes, mots-vedettes avec sens, formes, traductions, synonymes et antonymes, consultation par lot, listes paginées par curseur, une entrée aléatoire — chaque réponse dans une même enveloppe, mise en cache avec ETag.

SDK

Des clients typés pour Node.js / TypeScript et Python générés à partir du même document OpenAPI : une méthode par point de terminaison, itération par curseur, erreurs typées, cache ETag, nouvelles tentatives optionnelles, un DataFrame pour les notebooks.

Interface d'administration

Modifiez mots, sens, traductions, synonymes et antonymes dans le navigateur, suivez les statistiques, importez et exportez tout le dictionnaire comme jeu de données.

Jeu de données

Le dictionnaire est publié sur HuggingFace sous CC BY 4.0 et se charge tout seul dans une instance vide ; les exports le déplacent d'un environnement à l'autre, y compris hors ligne.

Conçu pour les opérateurs

Sondes de santé et de disponibilité, arrêt propre, migrations au démarrage, métriques Prometheus, journaux JSON structurés avec un identifiant de requête — ce qu'il faut à un service pour être exploité par quelqu'un d'autre.

Recherche

Niveaux exact, préfixe, flou et par traduction sur des index Postgres : les lectures fréquentes répondent en millisecondes sur le dictionnaire complet.

Deux SDK, un contrat

Les deux clients sont générés à partir du document OpenAPI versionné de l'API publique, ils ne dérivent donc jamais du serveur.

Node.js / TypeScript

import { VocabBloomClient } from '@vocab-bloom-hub/client';

const client = new VocabBloomClient({ baseUrl: 'https://your-instance.example/api' });

const { data } = await client.search({ search: 'runing', limit: 5 }); // typo tolerant
const run = await client.word('run'); // every part of speech, forms, meanings, translations

for await (const word of client.iterateWords({ part_of_speech: ['verb'], word_level: ['b1'] })) {
  console.log(word.word);
}

Python

from vocab_bloom_hub import VocabBloomClient

client = VocabBloomClient("https://your-instance.example/api")

hits = client.search("runing", limit=5)          # typo tolerant
run = client.word("run")                          # forms, meanings, translations

for word in client.iter_words(part_of_speech=["verb"], word_level=["b1"]):
    print(word.word)

df = client.words_dataframe(part_of_speech=["noun"])   # pip install "vocab-bloom-hub[pandas]"

Données et licence

Le code est sous MIT. Les données du dictionnaire — servies par l'API, exportées en jeux de données, publiées sur HuggingFace — sont sous CC BY 4.0 : libres d'utilisation et d'adaptation, y compris commerciales, avec attribution. Elles sont en grande partie générées par des LLM et non vérifiées par des humains ; lisez ce que cela implique avant de vous y fier.