mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 00:53:33 +00:00
fix: 修复 OpenAI 兼容路由的 Claude API 认证和 Function Calling 支持
- 添加必需的系统消息 "You are Claude Code, Anthropic's official CLI for Claude." - 修改 anthropic-beta header 为 OAuth-only 模式 (oauth-2025-04-20) - 不再传递客户端 headers,使用固定的 4 个必需 headers - 增强流式响应的 Function Calling 支持,正确处理 tool_use 事件 - 支持自定义 beta header 参数,允许不同路由使用不同的认证模式 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -358,10 +358,29 @@ class OpenAIToClaudeConverter {
|
||||
if (event.type === 'content_block_start' && event.content_block) {
|
||||
if (event.content_block.type === 'text') {
|
||||
baseChunk.choices[0].delta.content = event.content_block.text || '';
|
||||
} else if (event.content_block.type === 'tool_use') {
|
||||
// 开始工具调用
|
||||
baseChunk.choices[0].delta.tool_calls = [{
|
||||
index: event.index || 0,
|
||||
id: event.content_block.id,
|
||||
type: 'function',
|
||||
function: {
|
||||
name: event.content_block.name,
|
||||
arguments: ''
|
||||
}
|
||||
}];
|
||||
}
|
||||
} else if (event.type === 'content_block_delta' && event.delta) {
|
||||
if (event.delta.type === 'text_delta') {
|
||||
baseChunk.choices[0].delta.content = event.delta.text || '';
|
||||
} else if (event.delta.type === 'input_json_delta') {
|
||||
// 工具调用参数的增量更新
|
||||
baseChunk.choices[0].delta.tool_calls = [{
|
||||
index: event.index || 0,
|
||||
function: {
|
||||
arguments: event.delta.partial_json || ''
|
||||
}
|
||||
}];
|
||||
}
|
||||
} else if (event.type === 'message_delta' && event.delta) {
|
||||
if (event.delta.stop_reason) {
|
||||
|
||||
Reference in New Issue
Block a user