【免费下载链接】jonexAll-in-One Multimodal Parsing Engine Ontology-Powered, LLM Wiki-Driven AI-Ready Knowledge Engine项目地址https://gitcode.com/gh_mirrors/jo/jonex点击查看免费下载Jonex 的 llm-gatewayLLM 网关是 Jonex 知识引擎内置的一个 OpenAI 兼容代理服务它把系统中所有 LLM / Embedding / Rerank 调用收敛到统一出口通过Token Swap内部令牌换发、实时 Token 计量和多模型路由三大机制让各业务服务无需持有上游模型密钥、无需感知供应商差异即可获得统一的用量统计与故障容错。本文带你从零看懂它的实现原理。为什么 AI 应用需要一个统一 LLM 网关在多模型、多服务的 AI 系统里直接让每个组件各自调用模型 API通常会遇到 4 个痛点密钥分散每个服务都要配一份上游 API Key泄露面大、轮换困难用量黑盒谁在哪个场景烧了多少 Token没有统一出口就无法回答供应商耦合业务代码写死了某个供应商的 URL 和模型名换供应商要改一堆代码⚡限流脆弱上游返回 429 直接透传给业务导致整条 RAG 链路失败。Jonex 的答案就是在 jonex-platform-architecture.md 架构中放置的 8787 端口llm-gateway服务所有 LLM/Embedding 出口含 LightRAG 内部调用都经它转发。下面逐个拆解。Token Swap内部令牌如何换发上游密钥Token Swap 是网关的第一个换发环节实现位于 jonex_core/llm_gateway/auth.py。它作为一个 FastAPI 中间件挂在所有请求之前注册见 jonex_core/llm_gateway/app.py工作流程分三步提取内部令牌从Authorization: Bearer token或X-API-Key头中取出调用方携带的内部 token/health健康检查直接放行校验合法性与配置项LLMGW_INTERNAL_TOKENS逗号分隔的合法令牌列表比对非法请求直接返回 401注入上游密钥校验通过后真正转发时由网关剥离调用方的 Authorization 头换发成配置在网关本地的上游真实密钥见 upstream.py 的 upstream_headers。这样做的好处很直观业务服务手里只有一把内部钥匙如 docker-compose 中的gw_lightrag上游模型商的真实密钥只存在于网关一处。更换供应商密钥时只需改网关配置全系统零代码改动。多模型路由一个请求该转发给谁路由解析核心在 jonex_core/llm_gateway/upstream.py 的resolve_upstream按路径 模型名两级决策请求路径路由规则典型上游/v1/embeddings固定走 Embedding 上游LLMGW_UPSTREAM_EMBED_HOST本地 Ollamabge 等嵌入模型/v1/chat/completions优先查MODEL_ROUTE_OVERRIDES模型级覆盖表否则走默认 LLM 上游云端 DeepSeektokenhub/v1/rerank按LLMGW_RERANK_BINDING选 cohere 透传或 ollama 生成式打分本地 Qwen3-Reranker-4B在这个基础上网关还叠加了两个智能细节模型别名映射MODEL_ALIAS_MAP会把入站模型名翻译成上游真正注册的名字例如某些客户端会做内部别名转换网关负责翻译回原话见 upstream.py按场景注入 thinking 开关对配置命中LLMGW_DISABLE_THINKING_MODELSLLMGW_DISABLE_THINKING_SCENES的抽取类任务网关自动注入thinking: {type: disabled}跳过深度思考、显著加速实体抽取且不覆盖调用方显式声明upstream.py。Rerank 部分尤其值得一提网关对外暴露统一的 Cohere 风格契约{query, documents, top_n}内部却支持ollama-generate绑定——把生成式 Reranker 逐文档发/api/generate读取首 token 的 yes/no logprobs 概率算分模板与词表抽象在 jonex_core/llm_gateway/rerank_profiles.py单文档失败给中性分 0.5失败率超 30% 才整体降级对调用方完全透明。实时 Token 计量一次调用如何被精确计数计量是网关最有含金量的部分分取值 → 归因 → 落地三层。1️⃣ 取值从三种响应形态里榨出 usage实现见 jonex_core/llm_gateway/metering.py非流式 chat直接读响应 JSON 的usage字段流式 chat网关转发前自动合并注入stream_options.include_usagetrue流结束后扫描最后一个data: {…}chunk 提取 usagemetering.pyembedding / rerank上游不返回标准 usage 时按字符数粗估并用is_estimated标记这是估算值保证计量不撒谎。2️⃣ 归因谁在什么场景花的钱调用方通过一组X-Jonex-*请求头把业务上下文交给网关解析逻辑在 jonex_core/llm_gateway/context.py租户tenant_id、用户user_id、场景scene如lightrag_extract、ontology_qa、知识库kb_id、文档doc_id等。这里有两个 ID 的职责拆分是理解计量准确性的关键trace_id一次用户业务请求一个全链路透传用于把该请求下的多次 LLM 调用归组统计request_id每次逻辑 LLM 调用一个写入数据库的 UNIQUE 列做幂等去重。调用方可显式透传缺失时网关按trace_id 请求体哈希确定性派生context.py——同一逻辑调用重试时哈希一致从而去重不同调用则各记各的。3️⃣ 落地Redis PG 日志三路异步写入记录器 jonex_core/llm_gateway/recorder.py 每次record()并行做三件事且全部吞异常、绝不拖慢主请求通道机制用途Redis 实时计数HINCRBY llm:usage:{租户}:{日期}累加 total/prompt/completion tokens实时看板、配额判断PG 批量缓冲攒满 20 行或 5 秒即批量落库ON CONFLICT (request_id) DO NOTHING幂等明细查询、对账结构化日志llm_usage \| req_id… tenant… tokens…一行一调用排障、审计明细统一存入 Postgres 的metering.llm_usage_log表表结构见 deploy/postgres/migrations/002_platform.sql并配有v_llm_usage_by_doc、v_llm_usage_by_trace、v_llm_usage_daily等只读视图支持按文档汇总按链路归组按天看趋势三种视角。一个精巧优化是embedding 场景天然每 chunk 一行开启聚合开关后可按(租户, 场景, 模型, 文档, 日期)预聚合成日级 UPSERT 行把百万级明细压成每文档每天一行。429 容错把上游限流吸收在网关里云端模型限流是 RAG 管线的头号杀手。Jonex 在 upstream.py 实现了有界重试 智能退避优先解析上游Retry-After头支持秒数与 HTTP-date 两种格式否则按指数退避base 2s、上限 30s叠加随机抖动全程受 75 秒总预算约束流式请求只在首字节前允许重试一旦开始输出绝不重放避免重复内容。重试耗尽才透传 429让下游兜底路径照常工作。查询用量一个接口拿全账本网关自带计量查询端点GET /metering/usagejonex_core/llm_gateway/router.py传入tenant_id 起止时间可选scene过滤即按scene × model × kb_id聚合返回调用次数、三类 token 合计与平均延迟并内置租户越权防护跨租户查询直接 403。本地启动与部署本地体验网关只需两条命令配置项集中在 jonex_core/common/config.py 的LLMGW_*段# 设置上游密钥等环境变量后默认监听 8787 端口 python run_llm_gateway.py --port 8787容器化部署则已内置于 deploy/docker-compose.yml服务名llm-gateway容器jonex-llm-gateway镜像构建脚本见 deploy/docker/llm-gateway.Dockerfile随docker compose up一起启动其他服务通过http://llm-gateway:8787/v1访问。小结Jonex LLM 网关用不到千行代码把三件脏活做成了平台能力Token Swap密钥收敛到网关一处业务侧只持内部令牌三路计量Redis 实时、PG 幂等明细、日志审计token 花在哪一笔笔可查多模型路由按路径 模型名分流别名翻译、thinking 开关、生成式 rerank 全部对调用方透明。对新手而言理解它最好的方式是把它当作AI 时代的公司收银台——所有模型消费必须过它于是安全、计费、容错自然水到渠成。赞分享【免费下载链接】jonexAll-in-One Multimodal Parsing Engine Ontology-Powered, LLM Wiki-Driven AI-Ready Knowledge Engine项目地址https://gitcode.com/gh_mirrors/jo/jonex点击查看免费下载相关推荐LLM 中的 Token 是如何计算的一文读懂 Tokenizer 原理与 Token 用量估算LLM 中的 Token 是如何计算的一文读懂 Tokenizer 原理与 Token 用量估算 导读 Token 是大型语言模型LLM处理文本的基本单文档教程技术博客大模型人工智能kgateway AI网关实战保护LLM模型与智能路由在现代AI应用开发中如何安全高效地管理和路由LLM模型调用成为关键挑战。kgateway作为云原生API网关和AI网关提供了完整的解决方案来保护LLM模型并API网关云原生微服务3 步装好 GHelper免费替代奥创中心的华硕笔记本控制软件完整指南3 步装好 GHelper免费替代奥创中心的华硕笔记本控制软件完整指南 预装的奥创中心常驻后台、占内存、还要账号是华硕笔记本用户最常见的抱怨。 GHelpe桌面应用系统编程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考