自行部署、自由扩展的词典
在应用旁部署英语词典:从项目自有数据集的 300 000 个词条开始,添加 Wiktionary、WordNet 或 OpenGloss,也可创建自己的词典。创建分叉副本并编辑数据,同时保留词语来源、许可协议和历史。通过公共 API、Node.js 和 Python SDK 或单词页面访问数据。
一条命令完成安装
有 compose 文件和环境变量模板就够了:镜像从 GitHub Container Registry 拉取,Postgres 随之启动,词典在首次启动时自动加载。
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
你将获得
公共 API
带版本、只读、无需登录:容错拼写的搜索,带释义、词形变化、翻译、同义词和反义词的词条,批量查询,游标分页的列表,随机词条——每个响应都采用同一封装格式,并通过 ETag 缓存。
SDK
由同一份 OpenAPI 文档生成的 Node.js / TypeScript 和 Python 类型化客户端:每个端点一个方法,游标迭代,类型化的错误,ETag 缓存,可选的重试,以及供 notebook 使用的 DataFrame。
管理界面
在浏览器中编辑任意数据集的单词、释义、翻译、同义词和反义词——每次修改都记录在读者可见的历史中——审核读者提交的更正,查看统计数据,并从数据集的卡片安装、导入和导出数据集。
数据集
项目词典以 CC BY 4.0 许可证发布在 HuggingFace 上。通过服务器下载或手动上传添加 Wiktionary、WordNet 或 OpenGloss。创建空数据集或已安装数据集的分支,设置版本和贡献许可协议,并保留单词来源和修改历史。各数据集分别读取。
为运维而生
健康与就绪探针、优雅停机、启动时自动迁移、Prometheus 指标、带请求 ID 的结构化 JSON 日志——一个服务交给他人运行所需的一切。
搜索
基于 Postgres 索引的精确、前缀、模糊和翻译四级搜索:在完整词典上,热点读取也能在毫秒内响应。
两个 SDK,同一份契约
两个客户端都由公共 API 已提交的 OpenAPI 文档生成,因此永远不会与服务器脱节。
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]"
数据与许可证
代码采用 MIT 许可证。项目的词典数据——由 API 提供、以数据集形式导出、发布在 HuggingFace 上——采用 CC BY 4.0 许可证:可自由使用和改编,包括商业用途,但需署名。数据大部分由 LLM 生成,未经人工校验;在依赖这些数据之前,请先了解这意味着什么。来自其他来源的数据集保留该来源的许可证——Wiktionary 要求相同方式共享,各 WordNet 要求在每份副本中保留其声明——实例会显示其所提供数据集的条款;在基于它构建之前,请先阅读这些条款。 OpenGloss 也包含生成的文本:适用 CC BY 4.0,标记的单词还适用 WordNet 3.0 条款。一个单词可以保留多个来源和贡献的许可协议;复制或创建分支不会替代这些协议。