Commit Graph

619 Commits

Author SHA1 Message Date
johnlanni
179a233ad6 refactor(ai-proxy): redesign streaming thinking promotion to buffer-and-flush
Instead of promoting reasoning to content inline per-chunk (which would
emit reasoning as content prematurely if real content arrives later),
the streaming path now buffers reasoning content and strips it from
chunks. On the last chunk, if no content was ever seen, the buffered
reasoning is flushed as a single content chunk.

Also moves tests into test/openai.go TestOpenAI suite and adds
MockHttpContext for provider-level streaming tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 00:05:17 +08:00
johnlanni
bdfe9950ce feat(ai-proxy): add promoteThinkingOnEmpty and hiclawMode config options
When some models (e.g. kimi-k2.5) put user-facing replies into
reasoning_content/thinking blocks without generating text content,
downstream clients receive empty responses. This adds a new
promoteThinkingOnEmpty option that promotes reasoning content to
text content when the response has no text block.

Also adds hiclawMode as a convenience flag that enables both
mergeConsecutiveMessages and promoteThinkingOnEmpty for multi-agent
collaboration scenarios.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 23:28:17 +08:00
woody
045238944d Feat/new api path support (#3620) 2026-03-19 19:25:55 +08:00
woody
62df71aadf feat(ai-proxy): 添加Amazon Bedrock Prompt Cache保留策略配置及优化缓存处理逻辑 (#3609) 2026-03-18 20:37:04 +08:00
woody
8961db2e90 fix: vertex streaming chunk parse (#3599) 2026-03-16 21:13:18 +08:00
woody
94f0d7179f fix: bedrock canonical URI sig (#3590) 2026-03-16 14:54:19 +08:00
澄潭
f1e305844e feat(ai-proxy): add mergeConsecutiveMessages option to merge consecutive same-role messages (#3598)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 14:28:17 +08:00
woody
68d6090e36 feat(bedrock): prompt caching params transform (#3563) 2026-03-12 17:44:42 +08:00
johnlanni
aa502e7e62 remove openai-compat in developerRoleSupportedProviders 2026-03-05 10:09:47 +08:00
johnlanni
2e3f6868df Revert "openai compatiable developer replace"
This reverts commit 6c9747d778.
2026-03-05 10:07:54 +08:00
johnlanni
6c9747d778 openai compatiable developer replace 2026-03-04 19:57:31 +08:00
woody
c12183cae5 修复 ai-proxy 插件 Bedrock Provider 在 AWS AK/SK 鉴权模式下仅对部分 API 进行 SigV4 签名的问题 || Fixed the problem of ai-proxy plug-in Bedrock Provider only performing SigV4 signature on some APIs in AWS AK/SK authentication mode (#3549) 2026-03-02 09:55:31 +08:00
woody
e2a22d1171 [ai-proxy] vertex image edits & variations (#3536) 2026-02-27 10:18:30 +08:00
Jingze
e9aecb6e1f fix(ai-proxy): update anthropic messages endpoint path for qwen provider (#3530) 2026-02-25 10:26:25 +08:00
澄潭
8576128e4c feat(ai-statistics): add Claude/Anthropic streaming tool calls parsing support (#3523) 2026-02-21 14:14:22 +08:00
澄潭
9346f1340b refactor: migrate MCP SDK to main repo (#3516) 2026-02-16 23:39:18 +08:00
澄潭
1c847dd553 feat(ai-proxy): strip dynamic cch field from billing header to enable caching (#3518) 2026-02-15 23:57:08 +08:00
澄潭
a07f5024a9 fix(ai-proxy): convert OpenAI tool role to Claude user role with tool_result (#3517) 2026-02-15 22:45:09 +08:00
澄潭
814c3307ba fix(ai-statistics): lightweight mode should include question and model (#3513) 2026-02-15 20:49:57 +08:00
澄潭
b76a3aca5e feat(ai-statistics): add lightweight mode with use_default_response_attributes (#3512) 2026-02-15 17:23:54 +08:00
澄潭
28df33c596 feat(ai-statistics): add system field support for Claude /v1/messages API (#3511) 2026-02-15 14:16:19 +08:00
澄潭
8e7292c42e fix(ai-proxy): fix Claude protocol conversion issues (#3510) 2026-02-15 13:52:26 +08:00
澄潭
d03932b3ea fix(ai-proxy): add streaming tool_calls support for Claude provider (#3507) 2026-02-15 08:48:20 +08:00
澄潭
5a2ff8c836 fix(ai-proxy): convert Claude tool_use stop_reason to OpenAI tool_calls format (#3506) 2026-02-14 21:52:25 +08:00
澄潭
6f8ef2ff69 fix(ai-statistics): use RuleAppend as default for streaming answer extraction (#3505)这个 2026-02-14 13:58:55 +08:00
澄潭
67e2913f3d fix(ai-proxy): preserve text content alongside tool_result in Claude to OpenAI conversion (#3503) 2026-02-14 12:12:07 +08:00
澄潭
e996194228 fix(ai-proxy): add missing event field in Claude streaming response (#3502) 2026-02-14 09:55:14 +08:00
澄潭
95f86d7ab5 feat(ai-proxy): add consumer affinity for stateful APIs (#3499) 2026-02-14 09:22:12 +08:00
澄潭
13ed2284ae fix(ai-proxy): fix claude system content null serialization (#3496) 2026-02-13 20:32:37 +08:00
澄潭
c2be0e8c9a fix(ai-statistics): add ValueSource to built-in attributes for streaming body buffering (#3491) 2026-02-13 09:03:06 +08:00
澄潭
44d688a168 feat(ai-proxy): add zhipu provider enhancements (#3488) 2026-02-12 22:19:13 +08:00
澄潭
ce4dff9887 feat(ai-proxy): convert developer role to system for unsupported providers (#3479) 2026-02-12 16:14:46 +08:00
Kent Dong
22ae1aaf69 fix: Fix the incorrect api-version appending logic in AzureProvider (#3289) 2026-02-11 17:44:29 +08:00
Kent Dong
cd0a6116ce fix: Fix jwt-auth plugin related typos (#3291) 2026-02-11 17:43:49 +08:00
woody
5e2892f18c fix(provider/bedrock.go): 优化工具调用消息处理逻辑 || fix(provider/bedrock.go): Optimization tool calls message processing logic (#3470) 2026-02-11 12:33:12 +08:00
澄潭
cd670e957f refactor(ai-proxy): remove automatic Bash tool injection in Claude Code mode (#3462) 2026-02-07 20:24:43 +08:00
澄潭
083bae0e73 feat(ai-proxy): add Claude Code mode support for Claude provider (#3459) 2026-02-07 15:57:19 +08:00
lvshui
9edb709ca4 fix(ai-statistics): 修复请求模型上下文未设置问题 || fix(ai-statistics): Fix the problem that the request model context is not set (#3380)
Co-authored-by: rinfx <yucheng.lxr@alibaba-inc.com>
2026-02-04 21:11:55 +08:00
daofeng
07cfdaf88a fix(ai-proxy): 处理 Qwen 响应无选择项的情况 (#3448) 2026-02-03 20:33:57 +08:00
澄潭
38dedae47d feat: support use_default_attributes for ai-statistics plugin (#3427) 2026-02-01 13:47:55 +08:00
澄潭
0c0ec53a50 feat(ai-statistics): support token details and builtin keys for reasoning_tokens/cached_tokens (#3424) 2026-02-01 11:54:52 +08:00
澄潭
1b0ee6e837 feat(ai-statistics): add session ID tracking for multi-turn agent conversations (#3420) 2026-02-01 00:35:50 +08:00
澄潭
93075cbc03 fix(model-router): sync model field in request body for auto routing mode (#3422) 2026-01-31 23:41:17 +08:00
澄潭
6c3fd46c6f feat(ai-proxy): add context cleanup command support (#3409) 2026-01-30 17:56:31 +08:00
rinfx
8eaa385a56 support mcp security guard (#3295) 2026-01-29 19:25:43 +08:00
澄潭
d30f6c6f0a feat(model-router): add auto routing based on user message content (#3403) 2026-01-29 00:08:07 +08:00
zikunchang
f2fcd68ef8 feature: Support getting the API key from the request header when provider.apiTokens is not configured. (#3394)
Co-authored-by: 澄潭 <zty98751@alibaba-inc.com>
2026-01-28 14:03:24 +08:00
rinfx
cbcc3ecf43 bugfix for model-mapper & model-router (#3370) 2026-01-28 10:52:45 +08:00
woody
a2eb599eff Implement Vertex Raw mode support in AI Proxy (#3375) 2026-01-21 14:45:06 +08:00
rinfx
3a28a9b6a7 update wasm-go dependency (#3367) 2026-01-20 15:13:59 +08:00