Skip to main content

jargon-engine · 行业黑话翻译引擎

把行业黑话翻译成接地气、搞笑、好懂的人话

PyPI CI Publish License Python Terms

translate lookup search


jargon-engine 是什么?

新人进一个行业,最懵的就是满屏黑话。jargon-engine 把「赋能业务、形成闭环、颗粒度对齐」翻译成人话——既给正经解释,也给带梗的搞笑版,还能整句重写。

它基于 AC 自动机 实现毫秒级匹配,内置 10,388 条去重词条,覆盖互联网 + AI 全行业 12 大分类。提供 Python SDK / REST API / CLI 三种接入方式,可独立部署,也可作为路由嵌入任意 FastAPI 项目。

from jargon_engine import Engine

engine = Engine()
result = engine.translate("这个方案要赋能业务,形成闭环")
print(result.translated)
# 这个写满套路的PDF要给你装个外挂,让你干得更溜。,绕一圈回来,接头了,没断线。

特性

能力 说明
🚀 毫秒级检索 AC 自动机一次扫描匹配全部词条,万级词库 translate 仅 4ms
🧠 万级词库 10,388 条去重词条,12 大行业,生产管线持续扩充
😂 三种风格 funny 搞笑人话版 / plain 正经版 / explain 带例句详解
🔌 三种接入 Python SDK / REST API / CLI,任选其一
🧩 可嵌入 FastAPI 路由可 include_router 进任意现有项目
🛡️ API 健壮 Pydantic 校验、CORS、API Key 鉴权、统一错误处理、404/400/422
高性能 lookup O(1) 字典索引、search 预计算缓存
📦 数据分离 引擎运行时与词库生产管线物理隔离,互不依赖

快速开始

安装

pip install jargon-engine            # SDK + CLI
pip install "jargon-engine[api]"     # 加上 REST API(FastAPI + uvicorn)

Python SDK

from jargon_engine import Engine

engine = Engine()
result = engine.translate("要赋能业务,形成闭环,注意颗粒度")

print(result.translated)   # 翻译后的人话
print(result.hits)         # 命中词条详情
print(result.elapsed_ms)   # 耗时(毫秒)

REST API

jargon-engine serve --port 7861

curl -X POST http://localhost:7861/api/jargon/translate \
  -H "Content-Type: application/json" \
  -d '{"text":"赋能业务形成闭环","style":"funny"}'

CLI

jargon-engine translate "赋能业务形成闭环"
jargon-engine lookup "赋能"
jargon-engine stats
jargon-engine serve --port 7861

REST API

端点总览

方法 路径 功能 状态码
GET /api/health 健康检查(免鉴权) 200
GET /api/jargon/translate/health 子路由健康 200
POST /api/jargon/translate 整段黑话 → 人话 200 / 400 / 422
GET /api/jargon/terms/{word} 单个词条详情 200 / 404
GET /api/jargon/search 模糊搜索词库 200 / 422
GET /api/jargon/stats 词库统计 200

鉴权

设置环境变量 JARGON_API_KEY 后,所有 /api/jargon/* 端点需携带请求头:

X-API-Key: <你的key>
# 或
Authorization: Bearer <你的key>

未设置该变量时不启用鉴权(开发模式)。/api/health 始终免鉴权,供负载均衡探活。

POST /api/jargon/translate

请求体

字段 类型 必填 默认 说明
text string - 待翻译文本,长度 ≥ 1
style string funny funny / plain / explain
industry string null 限定行业;支持别名 developertech
llm_polish bool false 是否 LLM 润色(需注入润色器)
include_untracked bool false 是否返回未收录候选词

响应(毫秒级):

{
  "ok": true,
  "original": "这个方案要赋能业务,形成闭环",
  "translated": "这个写满套路的PDF要给你装个外挂,让你干得更溜",
  "hits": [
    {
      "word": "赋能",
      "plain": "为个人或组织提供能力或条件",
      "funny": "给你装个外挂,让你干得更溜",
      "industry": "internet",
      "example": "我们要赋能一线团队 → 给他们工具和权限,让他们自己飞",
      "aliases": ["加持", "赋能业务", "持续赋能"]
    }
  ],
  "untracked": [],
  "stats": {
    "total_terms": 10388,
    "matched": 2,
    "elapsed_ms": 4.1,
    "mode": "dictionary"
  }
}

GET /api/jargon/search

curl "http://localhost:7861/api/jargon/search?q=agent&industry=ai&limit=10"
参数 类型 默认 约束
q string "" 关键字
industry string - 合法行业
limit int 20 1-100

错误处理

所有错误统一 JSON 格式:

状态码 场景 响应
400 industry 不存在 {"detail": "未知的 industry: xyz..."}
401 API Key 无效 {"detail": "无效或缺失的 API Key"}
404 词条不存在 {"detail": "词条 xxx 不存在"}
422 参数校验失败 {"detail": [{"loc": [...], "msg": "..."}]}
500 内部错误 {"ok": false, "error": "内部服务错误"}

Python SDK

from jargon_engine import Engine

engine = Engine()                          # 内置词库
engine = Engine(extra_tsv_dir="./my")      # 合并自定义词库

result = engine.translate(
    "赋能业务,形成闭环",
    style="funny",           # funny / plain / explain
    industry=None,           # None=全部,或指定行业
    llm_polish=False,
    include_untracked=False,
)

engine.lookup("赋能")         # O(1) 查词
engine.search("agent", industry="ai", limit=10)  # 模糊搜索
engine.stats()                # {"total": int, "by_industry": dict}

注入 LLM 润色器

def my_polish(text: str, hits: list) -> str | None:
    # 调用任意 LLM 返回润色整句;返回 None 则保留词典模式结果
    ...

engine = Engine(llm_polish=my_polish)
engine.translate("...", llm_polish=True)

词库

词库以 TSV 存储在 data/seed/,每行一条,按行业分文件。加词 = 加一行,PR 合并即可,git diff 友好。

字段 说明
word 主词
industry 所属行业 id
aliases 别名(分号分隔,匹配时一并命中)
plain 正经解释
funny 搞笑人话版
example 例句对比(黑话 → 人话)
weight 匹配权重(越大越优先)
source 来源(数据归属追溯)

行业分类

单一事实来源在 src/jargon_engine/industries.py,新增行业只需在此登记。

id 名称 id 名称
internet 互联网通用 marketing 市场与增长
product 产品 operations 运营
tech 技术 design 设计与体验
ai AI 与大模型 finance 商业与投融资
data 数据 workplace 职场与管理
hr 人力资源 ecommerce 电商与零售

别名:developertech


架构

┌─────────────────────────────────────────────┐
│            API 层(FastAPI)                 │
│  app.py · deps.py · cli.py                  │
│  Pydantic 校验 · CORS · API Key · 错误兜底  │
└──────────────────┬──────────────────────────┘
                   │
┌──────────────────▼──────────────────────────┐
│            Engine(引擎入口)                │
│  加载词库 → 构建索引 → 翻译/查词/搜索        │
│  O(1) lookup · 预计算 search · 行业 resolve │
└──────┬──────────────────┬───────────────────┘
       │                  │
┌──────▼──────┐  ┌────────▼────────┐
│ Translator  │  │    Matcher      │
│ 词典命中→   │◄─│ AC 自动机       │
│ 语境重组→   │  │ 最长优先·fail链 │
│ LLM 润色    │  │ 行业过滤·去重叠 │
└─────────────┘  └─────────────────┘
       │                  │
┌──────▼──────────────────▼───────────────────┐
│        Store · Models · Industries          │
│  TSV 加载 · merge 合并 · Pydantic v2        │
└─────────────────────────────────────────────┘

词库生产管线(独立组件,与引擎运行时隔离):
┌─────────────────────────────────────────────┐
│            tools/pipeline/                  │
│  expand_wordlists · llm_generate · merge    │
│  validate · import/*(外部数据源)          │
└─────────────────────────────────────────────┘

关键设计

  • 引擎与生产管线分离src/jargon_engine/ 是运行时(打进 wheel),tools/pipeline/ 是离线词库生产(不打包),两者无共享执行环境
  • 启动时建索引:加载词库 + AC 自动机 + dict 索引 + search 缓存,一次构建反复用
  • Engine 单例lru_cache 避免每请求重建
  • 无状态抓取:生产管线不生成/存储完成状态指标,仅读已有输出续跑

词库生产管线

万级词库靠管线生产,位于 tools/pipeline/(与引擎运行时物理隔离):

合并开源词表(MIT/CC BY-SA 来源)
    ↓
LLM 扩充行业词单(expand_wordlists.py)
    ↓
LLM 批量生成释义(llm_generate.py:funny/plain/example/aliases)
    ↓
合并去重(merge.py)+ 校验(validate.py)
    ↓
人工审校 + 社区共建(PR 持续加词)
python tools/pipeline/validate.py data/seed/*.tsv
python tools/pipeline/merge.py --sources a.tsv b.tsv --out merged.tsv
python tools/pipeline/expand_wordlists.py \
  --wordlist tools/pipeline/import/wordlists/ai.txt --industry ai --target 900 \
  --out tools/pipeline/import/wordlists/ai.txt
python tools/pipeline/llm_generate.py \
  --wordlist tools/pipeline/import/wordlists/ai.txt --industry ai \
  --out data/seed/ai_generated.tsv

需配置 DEEPSEEK_API_KEY / DEEPSEEK_BASE_URL / DEEPSEEK_MODEL。外部数据来源见 THIRD_PARTY_NOTICES.md


配置

变量 默认 说明
JARGON_API_KEY - API Key 鉴权,未设置则不启用
JARGON_CORS_ORIGINS * 允许的跨域来源,逗号分隔;生产请收紧
JARGON_EXTRA_TSV_DIR - 额外 TSV 词库目录,合并到内置词库
DEEPSEEK_API_KEY - 词库生产管线用,引擎运行不需要

部署

独立部署

pip install "jargon-engine[api]"
JARGON_API_KEY=your-secret jargon-engine serve --host 0.0.0.0 --port 7861

嵌入现有 FastAPI 项目

from fastapi import FastAPI
from jargon_engine.api.app import create_router

app = FastAPI()
app.include_router(create_router(), prefix="/api/jargon")

生产建议

  • uvicorn jargon_engine.api.app:create_app --factory --workers 4 多进程
  • Nginx 反向代理做 TLS、限流、缓存
  • 收紧 JARGON_CORS_ORIGINS 为实际前端域名
  • 启用 JARGON_API_KEY 防止 llm_polish 被滥用产生 LLM 费用

开发

pip install -e ".[dev,api]"
pytest                 # 46 用例
ruff check .           # lint
jargon-engine serve --port 7861   # 开发服务

路线图

里程碑 状态 内容
v0.1 基础引擎 ✅ 已发布 AC 自动机匹配、词典翻译、REST API、CLI、12 大行业
v1.0 工程化 ✅ 已发布 API 规范化(Pydantic/CORS/鉴权/错误处理)、O(1) 索引、测试覆盖、CI/CD、引擎与生产管线分离
v1.1 生态 🚧 进行中 PyPI 发布、Docker 部署、前端接入、更多行业(法律/教育/医疗)
v2.0 国际化 📋 规划中 英文社区支持、中英双向翻译、多语言释义
v2.x 智能化 📋 规划中 LLM 润色内置、分词改进、SQLite FTS5 倒排、词条贡献后台

近期 TODO

  • 补 translator LLM 润色分支与 CLI 的集成测试
  • 加 pre-commit hook(ruff + pytest)
  • Dockerfile 与 docker-compose 示例
  • 词库去重审计:跨文件同义词统一 aliases

贡献

  1. Fork 仓库并拉取分支
  2. 加词:在 data/seed/<行业>.tsv 追加一行,跑 python tools/pipeline/validate.py data/seed/*.tsv 校验
  3. 加行业:在 src/jargon_engine/industries.pyINDUSTRIES 登记
  4. 改代码:跑 pytestruff check . 确保通过
  5. 提 PR,描述变更与动机

词库贡献请确保 funny 版接地气、不生硬、不冒犯;外部数据来源请在 THIRD_PARTY_NOTICES.md 登记版权。


许可证

MIT — Copyright © 2026 renhuayixia

本项目基于 MIT 协议开源,允许任意改造、二次开发、商用,但必须在衍生项目中保留原作者版权声明与许可声明。词库数据来源及版权见 THIRD_PARTY_NOTICES.md

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jargon_engine-1.0.0.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jargon_engine-1.0.0-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file jargon_engine-1.0.0.tar.gz.

File metadata

  • Download URL: jargon_engine-1.0.0.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for jargon_engine-1.0.0.tar.gz
Algorithm Hash digest
SHA256 06ed6a8142e868772be579798eb13a3590ef3db4ac1b3b86c060aabfd2efd623
MD5 78138676416e64d1ea5bdd36e9c484ba
BLAKE2b-256 7b43faa564f57e803f679ed0039fd1339cd3faaecdb4d6143a712b627ed1816d

See more details on using hashes here.

File details

Details for the file jargon_engine-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: jargon_engine-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for jargon_engine-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd571664f4e413c317e770762aedfc7efe8ef0bbd494fb1c33dc8554e8025ff6
MD5 273123edfc2a4480fba9244537209604
BLAKE2b-256 e27a1f23174c39bdea89b8769746df579d1f1534eb22f29372ef9f17daec67be

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page