Releases: PriceNing/LLM-AIO-Gateway
Release list
v0.10.2
更新内容
- 新增流式性能指标:请求日志记录首字延迟(TTFT)与流式生成耗时,便于观察上游响应性能。
- 增强图像意图检测:剥离 Codex 的 XML 信封(
<environment_context>、<thread_title>等),正确识别真实用户图像意图;修复复数形式(posters/images/avatars)匹配失败的问题。 - Responses 系统轮识别:将
thread_title轮次识别为系统轮,避免标题生成等元请求误触发图像桥接。 - 管理界面中文本地化:将 Fallback 策略、Dry Run、API Key 等界面文案统一为中文。
Changes
- Added streaming performance metrics: request logs now record time-to-first-token (TTFT) and streaming generation duration for upstream performance visibility.
- Improved image-intent detection: strips Codex XML envelopes (
<environment_context>,<thread_title>, etc.) to correctly identify real user image intent; fixed plural forms (posters/images/avatars) failing to match. - Responses system-turn recognition: treats
thread_titleturns as system turns so title-generation and other meta requests no longer trigger the image bridge. - Admin UI Chinese localization: unified UI copy (Fallback policies, Dry Run, API Key, etc.) into Chinese.
验证 / Verification
- Full test suite:
python -m pytest tests/ -q, 764 passed.
v0.10.1
更新内容
- 加固 Responses 原生探测:更稳健地判断上游是否支持原生 Responses API,避免误判导致不必要的降级或请求失败。
- 完善 Responses 请求的 fallback 处理:原生 Responses 调用失败时,更可靠地回退到 OpenAI Chat 路径。
- 修复工具历史(tool-history)相关错误:处理 Responses 请求中工具调用历史的序列化/回放异常,减少 4xx 失败。
- 同步 README 与使用说明书:补充 0.10.0 特性、配置选项与完整端点清单。
Changes
- Hardened the native Responses capability probe so upstream support is detected more reliably, avoiding misclassification that caused unnecessary fallback or failures.
- Improved fallback handling for Responses requests: native Responses failures now fall back to the OpenAI Chat path more reliably.
- Fixed tool-history related errors: handles serialization/replay anomalies in Responses tool-call history, reducing 4xx failures.
- Synced README and usage docs with 0.10.0 features, config options, and the full endpoint inventory.
验证 / Verification
- Full test suite:
python -m pytest tests/ -q, 753 passed.
v0.10.0
更新内容
- 新增入站请求体大小限制(默认 32 MiB,可配置),防止超大 JSON body 耗尽网关内存。
- 新增上游连接池复用:Anthropic 与原生 Responses 直连上游复用 TCP/TLS 连接,降低固定延迟;引用计数保证在飞的流式响应不会被提前关闭。
- 新增上游地址校验(SSRF 防护):拒绝
file://、gopher://等非 http(s) 协议、云元数据端点与保留地址;私网地址默认放行以兼容自建推理服务(llama.cpp / vLLM / Ollama)。 - Codex 兼容图像生成(
/responses与/images/generations),支持批量执行、幂等重试、压缩预览与图像统计。 - 可配置请求日志 payload 捕获与结构化密钥脱敏。
- 管理员登录尝试限流,以及图像结果下载的网络/大小防护。
- 生产环境启动默认禁用 Uvicorn reload(除非显式启用)。
- Provider 模型发现遵循分页模型列表后再替换已存储模型。
Changes
- Request body size limit (default 32 MiB, configurable) to prevent oversized JSON bodies from exhausting gateway memory.
- Shared upstream connection pool: Anthropic and native Responses adapters reuse TCP/TLS connections to direct upstreams, reducing fixed latency; reference counting ensures in-flight streaming responses are never closed early.
- Upstream URL validation (SSRF guard): rejects non-http(s) schemes (
file://,gopher://), cloud metadata endpoints, and reserved addresses; private addresses allowed by default for self-hosted inference (llama.cpp / vLLM / Ollama). - Codex-compatible image generation via
/responsesand/images/generations, with batch execution, idempotent retries, compressed previews, and image statistics. - Configurable request-log payload capture and structured secret redaction.
- Admin login attempt throttling, and network/size safeguards for image-result downloads.
- Production startup now disables Uvicorn reload unless explicitly enabled.
- Provider model discovery follows paginated model lists before replacing stored models.
验证 / Verification
- Full test suite:
python -m pytest tests/ -q, 745 passed.
v0.9.12
更新内容 / Updates
-
新增思考参数透传与请求日志展示,支持
reasoning_effort、chat_template_kwargs和enable_thinking。 -
Added thinking-parameter passthrough and request-log display for
reasoning_effort,chat_template_kwargs, andenable_thinking. -
请求日志新增输出 Tokens、TPS、总耗时和生成耗时指标。
-
Added completion-token, TPS, total-duration, and generation-duration metrics to request logs.
-
优化流式请求性能统计,并兼容 Responses API 的嵌套 reasoning 配置。
-
Improved streaming performance metrics and Responses API nested reasoning configuration compatibility.
验证 / Verification
- JavaScript syntax:
node --check app/web/static/app.jspassed. - GitHub Actions tests and packaging completed successfully.
- Windows、Linux 和 macOS ARM64 packages uploaded successfully.
Docker
docker pull ghcr.io/pricening/llm-aio-gateway:latestv0.9.11
更新内容 / Updates
-
将提供商选项与上游 HTTP Headers 拆开,旧的
extra_headers会自动迁移。 -
Split provider options from upstream HTTP headers, with automatic migration from legacy
extra_headers. -
历史工具调用缺少 reasoning 时自动关闭 thinking,避免 DeepSeek 等后端拒绝续写。
-
Disabled thinking when historical tool calls lack reasoning content, so backends such as DeepSeek can continue the tool loop.
-
Codex 的 ambient / system 后台轮次不再进入生图桥接。
-
Kept Codex ambient and system background turns out of the image-generation bridge.
-
Responses 能力为 unknown 时遵守短暂退避,不再立刻重复探测。
-
Honored the transient backoff for unknown Responses capability instead of probing again immediately.
-
仅
previous_response_id会阻止跨提供商 fallback;普通 function_call_output 仍可回退。 -
Blocked cross-provider fallback only for
previous_response_id; ordinary function_call_output can still fall back. -
模型测试失败时展示上游 HTTP 状态、响应和调用栈,便于排查 WAF / 协议错误。
-
Surfaced upstream HTTP status, response body, and traceback in model-test failures for WAF and protocol diagnosis.
验证 / Verification
- JavaScript syntax:
node --check app/web/static/app.jspassed. - Full test suite:
658 passed. - GitHub Actions packaging, release, and GHCR jobs completed successfully.
- Windows, Linux, and macOS ARM64 packages uploaded successfully.
Docker
docker pull ghcr.io/pricening/llm-aio-gateway:latestv0.9.10
更新内容 / Updates
-
将 Responses 工具 schema 规范为 Chat Completions 可接受的 object 根,补齐空
required,并合并根级 anyOf/oneOf。 -
Normalized Responses tool schemas for Chat Completions by forcing an object root, adding an empty
requiredlist, and flattening root anyOf/oneOf unions. -
历史工具参数若不是合法 JSON 对象,会包装后再发给 llama.cpp,避免上游拒绝。
-
Wrapped invalid historical tool arguments as JSON objects before sending them to llama.cpp.
-
流式回复若只有
...占位内容,会在发给客户端前重试,并丢弃后续真实输出前的占位前缀。 -
Retried placeholder-only stream completions such as
...before they reach the client, and dropped placeholder prefixes when real output followed.
验证 / Verification
- JavaScript syntax:
node --check app/web/static/app.jspassed. - Full test suite:
650 passed. - GitHub Actions packaging, release, and GHCR jobs completed successfully.
- Windows, Linux, and macOS ARM64 packages uploaded successfully.
Docker
docker pull ghcr.io/pricening/llm-aio-gateway:latestv0.9.9
更新内容 / Updates
-
保留 Anthropic thinking / redacted_thinking 签名,并按官方协议发送
budget_tokens。 -
Preserved Anthropic thinking and redacted_thinking signatures, and sent
budget_tokensper the official protocol. -
不再把 reasoning 复制到可见文本,避免思考内容被当成最终回复。
-
Stopped copying reasoning into visible text so thinking content is no longer treated as the final answer.
-
仅在明确 forced tool_choice 时关闭 thinking,工具存在不再一律禁用。
-
Disabled thinking only for an explicit forced tool_choice, not merely because tools are present.
-
普通 400 不再被缓存为 Responses unsupported,避免一次校验错误长时间关掉原生 Responses。
-
Stopped caching generic 400 errors as unsupported Responses capability so a request-level validation error cannot disable native Responses.
-
HTTP 管理页复制失败时回退到 textarea,修复非安全上下文复制。
-
Fell back to a textarea copy path when the HTTP admin page cannot use the clipboard API.
验证 / Verification
- JavaScript syntax:
node --check app/web/static/app.jspassed. - Full test suite:
642 passed. - GitHub Actions packaging, release, and GHCR jobs completed successfully.
- Windows, Linux, and macOS ARM64 packages uploaded successfully.
Docker
docker pull ghcr.io/pricening/llm-aio-gateway:latestv0.9.8
更新内容 / Updates
-
提供商新增“强制 Chat Completions”选项,可跳过 Responses 探测,适配 llama.cpp / Qwen 等本地后端。
-
Added a provider option to force Chat Completions and skip Responses capability detection for llama.cpp / Qwen backends.
-
将多条 system / developer 指令合并为一条前置 system,避免 Chat 模板因后置或多条 system 报错。
-
Collapsed late and duplicate system / developer instructions into a single leading system message for Chat templates.
-
修复
force_chat_completions更新时未按 0/1 入库的问题。 -
Persisted
force_chat_completionsas an integer so the provider setting survives updates. -
生图日志改为记录真实后端身份,并把 planner fallback 与 image fallback 分开,避免误标 degraded。
-
Logged the real image backend identity and split planner fallback from image fallback so recovered planners are not marked as image degradation.
-
管理页请求详情补充生图后端、回退和批次统计的中英文字段。
-
Added bilingual image-backend, fallback, and batch-count fields to request detail views.
验证 / Verification
- JavaScript syntax:
node --check app/web/static/app.jspassed. - Full test suite:
632 passed. - GitHub Actions packaging, release, and GHCR jobs completed successfully.
- Windows, Linux, and macOS ARM64 packages uploaded successfully.
Docker
docker pull ghcr.io/pricening/llm-aio-gateway:latestv0.9.7
更新内容 / Updates
-
修复 Responses 能力探测对普通模型不存在 404 的误判,避免错误写入 unsupported 能力缓存。
-
Fixed false negative Responses capability caching for ordinary model-not-found 404 responses.
-
修复任意 validation 422 被误判为 Responses 协议不支持的问题。
-
Fixed arbitrary validation 422 errors being incorrectly treated as Responses protocol incompatibility.
-
收窄 Responses fallback 和能力缓存更新条件,仅在明确协议/端点不支持时记录 unsupported。
-
Narrowed Responses fallback and capability-cache updates so unsupported is recorded only for explicit protocol/endpoint incompatibility.
-
增加相关回归测试,覆盖模型不存在、任意验证错误和协议不支持场景。
-
Added regression tests covering model-not-found errors, arbitrary validation errors, and explicit protocol incompatibility.
验证 / Verification
- JavaScript syntax:
node --check app/web/static/app.jspassed. - Focused Responses tests:
33 passed. - Full test suite:
624 passed. - GitHub Actions packaging, release, and GHCR jobs completed successfully.
- Windows, Linux, and macOS ARM64 packages uploaded successfully.
Docker
docker pull ghcr.io/pricening/llm-aio-gateway:latestv0.9.6
更新内容 / Updates
-
修复图像生成流式响应中的状态和元数据处理问题,提升生图请求日志与统计的准确性。
-
Fixed state and metadata handling for image-generation streaming responses, improving request-log and statistics accuracy.
-
改进生图桥接请求在 fallback 场景下的目标模型、提供商和尝试记录。
-
Improved final model, provider, and attempt tracking for image-bridge requests that use fallback.
-
优化生图意图识别,减少普通 Responses 请求被误判为生图请求的情况。
-
Improved image-generation intent detection to reduce false positives for ordinary Responses requests.
-
增加相关回归测试并修复若干小问题。
-
Added regression coverage and fixed several additional small issues.
验证 / Verification
- JavaScript syntax:
node --check app/web/static/app.jspassed. - Full test suite:
618 passed. - GitHub Actions test, package, release, and GHCR jobs completed successfully.
- Windows, Linux, and macOS ARM64 packages uploaded successfully.
Docker image:
docker pull ghcr.io/pricening/llm-aio-gateway:latest