Vocab Bloom Hub

Des dictionnaires à héberger et à adapter

Hébergez des dictionnaires anglais aux côtés de votre application : partez des 300 000 entrées du jeu de données propre au projet, ajoutez Wiktionary, WordNet ou OpenGloss, ou créez le vôtre. Créez des forks et modifiez les données en conservant sources, licences et historique. Accédez aux mots par l’API publique, les SDK Node.js et Python ou les pages du site.

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 de n'importe quel jeu de données dans le navigateur — chaque modification est conservée dans un historique que les lecteurs voient —, modérez les corrections qu'ils envoient, suivez les statistiques, installez, importez et exportez les jeux de données depuis leurs cartes.

Jeux de données

Le dictionnaire du projet est publié sur HuggingFace sous CC BY 4.0. Ajoutez Wiktionary, WordNet ou OpenGloss par téléchargement sur le serveur ou envoi manuel. Créez un jeu vide ou un fork d’un jeu installé, définissez sa version et sa licence de contribution, et conservez les sources et l’historique des mots. Les jeux sont lus séparément.

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 du projet — 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. Un jeu de données d'une autre source garde la licence de cette source — Wiktionary impose le partage dans les mêmes conditions, les WordNet exigent leur avis sur chaque copie — et l'instance affiche les conditions du jeu de données qu'elle sert ; lisez-les avant de bâtir dessus. OpenGloss contient aussi du texte généré : CC BY 4.0, avec les conditions WordNet 3.0 pour les mots signalés. Un mot peut conserver plusieurs licences de sources et de contributions ; une copie ou un fork ne les remplace pas.