修复签名传入
Browse files- src/api/stream_parser.js +1 -0
- src/utils/converters/claude.js +3 -2
- src/utils/converters/common.js +3 -2
- src/utils/converters/openai.js +5 -3
- src/utils/utils.js +10 -4
src/api/stream_parser.js
CHANGED
|
@@ -101,6 +101,7 @@ function parseAndEmitStreamChunk(line, state, callback) {
|
|
| 101 |
if (part.thoughtSignature) {
|
| 102 |
state.reasoningSignature = part.thoughtSignature;
|
| 103 |
if (state.sessionId && state.model) {
|
|
|
|
| 104 |
setReasoningSignature(state.sessionId, state.model, part.thoughtSignature);
|
| 105 |
}
|
| 106 |
}
|
|
|
|
| 101 |
if (part.thoughtSignature) {
|
| 102 |
state.reasoningSignature = part.thoughtSignature;
|
| 103 |
if (state.sessionId && state.model) {
|
| 104 |
+
//console.log("服务器传入的签名:"+state.reasoningSignature);
|
| 105 |
setReasoningSignature(state.sessionId, state.model, part.thoughtSignature);
|
| 106 |
}
|
| 107 |
}
|
src/utils/converters/claude.js
CHANGED
|
@@ -68,9 +68,10 @@ function handleClaudeAssistantMessage(message, antigravityMessages, enableThinki
|
|
| 68 |
const parts = [];
|
| 69 |
|
| 70 |
if (enableThinking) {
|
| 71 |
-
parts.push(createThoughtPart(' '
|
| 72 |
}
|
| 73 |
-
if (hasContent) parts.push({ text: textContent.trimEnd() });
|
|
|
|
| 74 |
|
| 75 |
pushModelMessage({ parts, toolCalls, hasContent }, antigravityMessages);
|
| 76 |
}
|
|
|
|
| 68 |
const parts = [];
|
| 69 |
|
| 70 |
if (enableThinking) {
|
| 71 |
+
parts.push(createThoughtPart(' '));
|
| 72 |
}
|
| 73 |
+
if (hasContent) parts.push({ text: textContent.trimEnd(), thoughtSignature: reasoningSignature });
|
| 74 |
+
if (!enableThinking) delete parts[0].thoughtSignature;
|
| 75 |
|
| 76 |
pushModelMessage({ parts, toolCalls, hasContent }, antigravityMessages);
|
| 77 |
}
|
src/utils/converters/common.js
CHANGED
|
@@ -83,8 +83,8 @@ export function pushFunctionResponse(toolCallId, functionName, resultContent, an
|
|
| 83 |
* @param {string} signature - 签名
|
| 84 |
* @returns {Object} 思维 part
|
| 85 |
*/
|
| 86 |
-
export function createThoughtPart(text
|
| 87 |
-
return { text: text || ' ', thought: true
|
| 88 |
}
|
| 89 |
|
| 90 |
/**
|
|
@@ -142,6 +142,7 @@ export function pushModelMessage({ parts, toolCalls, hasContent }, antigravityMe
|
|
| 142 |
const allParts = [...parts, ...(toolCalls || [])];
|
| 143 |
antigravityMessages.push({ role: 'model', parts: allParts });
|
| 144 |
}
|
|
|
|
| 145 |
}
|
| 146 |
|
| 147 |
/**
|
|
|
|
| 83 |
* @param {string} signature - 签名
|
| 84 |
* @returns {Object} 思维 part
|
| 85 |
*/
|
| 86 |
+
export function createThoughtPart(text) {
|
| 87 |
+
return { text: text || ' ', thought: true }
|
| 88 |
}
|
| 89 |
|
| 90 |
/**
|
|
|
|
| 142 |
const allParts = [...parts, ...(toolCalls || [])];
|
| 143 |
antigravityMessages.push({ role: 'model', parts: allParts });
|
| 144 |
}
|
| 145 |
+
//console.log(JSON.stringify(antigravityMessages,null,2));
|
| 146 |
}
|
| 147 |
|
| 148 |
/**
|
src/utils/converters/openai.js
CHANGED
|
@@ -48,7 +48,7 @@ function handleAssistantMessage(message, antigravityMessages, enableThinking, ac
|
|
| 48 |
const hasToolCalls = message.tool_calls && message.tool_calls.length > 0;
|
| 49 |
const hasContent = message.content && message.content.trim() !== '';
|
| 50 |
const { reasoningSignature, toolSignature } = getSignatureContext(sessionId, actualModelName);
|
| 51 |
-
|
| 52 |
const toolCalls = hasToolCalls
|
| 53 |
? message.tool_calls.map(toolCall => {
|
| 54 |
const safeName = processToolName(toolCall.function.name, sessionId, actualModelName);
|
|
@@ -61,9 +61,10 @@ function handleAssistantMessage(message, antigravityMessages, enableThinking, ac
|
|
| 61 |
if (enableThinking) {
|
| 62 |
const reasoningText = (typeof message.reasoning_content === 'string' && message.reasoning_content.length > 0)
|
| 63 |
? message.reasoning_content : ' ';
|
| 64 |
-
parts.push(createThoughtPart(reasoningText
|
| 65 |
}
|
| 66 |
-
if (hasContent) parts.push({ text: message.content.trimEnd() });
|
|
|
|
| 67 |
|
| 68 |
pushModelMessage({ parts, toolCalls, hasContent }, antigravityMessages);
|
| 69 |
}
|
|
@@ -85,6 +86,7 @@ function openaiMessageToAntigravity(openaiMessages, enableThinking, actualModelN
|
|
| 85 |
handleToolCall(message, antigravityMessages);
|
| 86 |
}
|
| 87 |
}
|
|
|
|
| 88 |
return antigravityMessages;
|
| 89 |
}
|
| 90 |
|
|
|
|
| 48 |
const hasToolCalls = message.tool_calls && message.tool_calls.length > 0;
|
| 49 |
const hasContent = message.content && message.content.trim() !== '';
|
| 50 |
const { reasoningSignature, toolSignature } = getSignatureContext(sessionId, actualModelName);
|
| 51 |
+
|
| 52 |
const toolCalls = hasToolCalls
|
| 53 |
? message.tool_calls.map(toolCall => {
|
| 54 |
const safeName = processToolName(toolCall.function.name, sessionId, actualModelName);
|
|
|
|
| 61 |
if (enableThinking) {
|
| 62 |
const reasoningText = (typeof message.reasoning_content === 'string' && message.reasoning_content.length > 0)
|
| 63 |
? message.reasoning_content : ' ';
|
| 64 |
+
parts.push(createThoughtPart(reasoningText));
|
| 65 |
}
|
| 66 |
+
if (hasContent) parts.push({ text: message.content.trimEnd(), thoughtSignature: message.thoughtSignature || reasoningSignature });
|
| 67 |
+
if (!enableThinking) delete parts[0].thoughtSignature;
|
| 68 |
|
| 69 |
pushModelMessage({ parts, toolCalls, hasContent }, antigravityMessages);
|
| 70 |
}
|
|
|
|
| 86 |
handleToolCall(message, antigravityMessages);
|
| 87 |
}
|
| 88 |
}
|
| 89 |
+
console.log(JSON.stringify(antigravityMessages,null,2));
|
| 90 |
return antigravityMessages;
|
| 91 |
}
|
| 92 |
|
src/utils/utils.js
CHANGED
|
@@ -5,7 +5,7 @@ import { REASONING_EFFORT_MAP, DEFAULT_STOP_SEQUENCES } from '../constants/index
|
|
| 5 |
import { toGenerationConfig } from './parameterNormalizer.js';
|
| 6 |
|
| 7 |
// ==================== 签名常量 ====================
|
| 8 |
-
const CLAUDE_THOUGHT_SIGNATURE = '
|
| 9 |
const GEMINI_THOUGHT_SIGNATURE = 'EqAHCp0HAXLI2nygRbdzD4Vgzxxi7tbM87zIRkNgPLqTj+Jxv9mY8Q0G87DzbTtvsIFhWB0RZMoEK6ntm5GmUe6ADtxHk4zgHUs/FKqTu8tzUdPRDrKn3KCAtFW4LJqijZoFxNKMyQRmlgPUX4tGYE7pllD77UK6SjCwKhKZoSVZLMiPXP9YFktbida1Q5upXMrzG1t8abPmpFo983T/rgWlNqJp+Fb+bsoH0zuSpmU4cPKO3LIGsxBhvRhM/xydahZD+VpEX7TEJAN58z1RomFyx9u0IR7ukwZr2UyoNA+uj8OChUDFupQsVwbm3XE1UAt22BGvfYIyyZ42fxgOgsFFY+AZ72AOufcmZb/8vIw3uEUgxHczdl+NGLuS4Hsy/AAntdcH9sojSMF3qTf+ZK1FMav23SPxUBtU5T9HCEkKqQWRnMsVGYV1pupFisWo85hRLDTUipxVy9ug1hN8JBYBNmGLf8KtWLhVp7Z11PIAZj3C6HzoVyiVeuiorwNrn0ZaaXNe+y5LHuDF0DNZhrIfnXByq6grLLSAv4fTLeCJvfGzTWWyZDMbVXNx1HgumKq8calP9wv33t0hfEaOlcmfGIyh1J/N+rOGR0WXcuZZP5/VsFR44S2ncpwTPT+MmR0PsjocDenRY5m/X4EXbGGkZ+cfPnWoA64bn3eLeJTwxl9W1ZbmYS6kjpRGUMxExgRNOzWoGISddHCLcQvN7o50K8SF5k97rxiS5q4rqDmqgRPXzQTQnZyoL3dCxScX9cvLSjNCZDcotonDBAWHfkXZ0/EmFiONQcLJdANtAjwoA44Mbn50gubrTsNd7d0Rm/hbNEh/ZceUalV5MMcl6tJtahCJoybQMsnjWuBXl7cXiKmqAvxTDxIaBgQBYAo4FrbV4zQv35zlol+O3YiyjJn/U0oBeO5pEcH1d0vnLgYP71jZVY2FjWRKnDR9aw4JhiuqAa+i0tupkBy+H4/SVwHADFQq6wcsL8qvXlwktJL9MIAoaXDkIssw6gKE9EuGd7bSO9f+sA8CZ0I8LfJ3jcHUsE/3qd4pFrn5RaET56+1p8ZHZDDUQ0p1okApUCCYsC2WuL6O9P4fcg3yitAA/AfUUNjHKANE+ANneQ0efMG7fx9bvI+iLbXgPupApoov24JRkmhHsrJiu9bp+G/pImd2PNv7ArunJ6upl0VAUWtRyLWyGfdl6etGuY8vVJ7JdWEQ8aWzRK3g6e+8YmDtP5DAfw==';
|
| 10 |
const CLAUDE_TOOL_SIGNATURE = 'RXVNQkNrZ0lDaEFDR0FJcVFLZGsvMnlyR0VTbmNKMXEyTFIrcWwyY2ozeHhoZHRPb0VOYWJ2VjZMSnE2MlBhcEQrUWdIM3ZWeHBBUG9rbGN1aXhEbXprZTcvcGlkbWRDQWs5MWcrTVNERnRhbWJFOU1vZWZGc1pWSGhvTUxsMXVLUzRoT3BIaWwyeXBJakNYa05EVElMWS9talprdUxvRjFtMmw5dnkrbENhSDNNM3BYNTM0K1lRZ0NaWTQvSUNmOXo4SkhZVzU2Sm1WcTZBcVNRUURBRGVMV1BQRXk1Q0JsS0dCZXlNdHp2NGRJQVlGbDFSMDBXNGhqNHNiSWNKeGY0UGZVQTBIeE1mZjJEYU5BRXdrWUJ4MmNzRFMrZGM1N1hnUlVNblpkZ0hTVHVNaGdod1lBUT09';
|
| 11 |
const GEMINI_TOOL_SIGNATURE = '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';
|
|
@@ -41,7 +41,7 @@ const EXCLUDED_KEYS = new Set([
|
|
| 41 |
'$schema', 'additionalProperties', 'minLength', 'maxLength',
|
| 42 |
'minItems', 'maxItems', 'uniqueItems', 'exclusiveMaximum',
|
| 43 |
'exclusiveMinimum', 'const', 'anyOf', 'oneOf', 'allOf',
|
| 44 |
-
'any_of', 'one_of', 'all_of'
|
| 45 |
]);
|
| 46 |
|
| 47 |
export function cleanParameters(obj) {
|
|
@@ -135,8 +135,14 @@ export function prepareImageRequest(requestBody) {
|
|
| 135 |
// ==================== 其他工具 ====================
|
| 136 |
export function getDefaultIp() {
|
| 137 |
const interfaces = os.networkInterfaces();
|
| 138 |
-
|
| 139 |
-
for (const inter of
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 140 |
if (inter.family === 'IPv4' && !inter.internal) {
|
| 141 |
return inter.address;
|
| 142 |
}
|
|
|
|
| 5 |
import { toGenerationConfig } from './parameterNormalizer.js';
|
| 6 |
|
| 7 |
// ==================== 签名常量 ====================
|
| 8 |
+
const CLAUDE_THOUGHT_SIGNATURE = 'RXNZRENrZ0lDaEFDR0FJcVFMZzVPTmZsd1ZHNmZKK3labDJ0TkNlRzc5QUpzUHV2OW9UZG1yc0JUUGNsUjFBQWhKNWlYcXhlU0dTaEtxeWJ1NUdaM2YvMXByaHJCSnk3OEhsWkxOd1NEREI5Mi8zQXFlYkUvY3RISEJvTXlGVHNzdzRJZXkxUTFkUURJakE3R3AwSXJQeW0xdWxLMVBXcFhuRElPdmJFRFd4LzV2cUZaQTg2NWU1SkM3QnY2dkxwZE43M2dLYkljaThobGR3cXF3S1VMbHE5b3NMdjc3QnNhZm5mbDhlbUd5NmJ6WVRpUnRWcXA0MDJabmZ2Tnl3T2hJd1BBV0l1SUNTdjFTemswZlNmemR0Z2R5eGgxaUJOZHhHNXVhZWhKdWhlUUwza3RDZWVxa2dMNFE0ZjRKWkFnR3pKOHNvaStjZ1pqRXJHT1lyNjJkdkxnUUVoT1E5MjN6bEUwRFd4aXdPU1JOK3VSRWdHZ0FKVkhZcjBKVzhrVTZvaEVaYk1IVkE4aG14ZElGMm9YK1ZxRnFUSGFDZWZEYWNQNTJVOW94VmJ0cFhrNnJUanQ2ZHpadEFMWThXQWs5RFI3bTJTbGova2VraXFzVVBRbFdIaFNUN3diZGpuVkYvdUVoODRWbXQ5WjdtaThtR2JEcTdaTHVOalF0T3hHMVpXbXJmeUpCMExwa0R1SnZDV01qZ3BqTHdsU0R4SUpmeEFoT2JzQlVpRzdLTDYwcUluanZaK1VTcXdjZGhmN0U3ZjgrN0l2ZXczRC9DZUYvdlptQ0JqU2JTcUdYYmFIQmdC';
|
| 9 |
const GEMINI_THOUGHT_SIGNATURE = 'EqAHCp0HAXLI2nygRbdzD4Vgzxxi7tbM87zIRkNgPLqTj+Jxv9mY8Q0G87DzbTtvsIFhWB0RZMoEK6ntm5GmUe6ADtxHk4zgHUs/FKqTu8tzUdPRDrKn3KCAtFW4LJqijZoFxNKMyQRmlgPUX4tGYE7pllD77UK6SjCwKhKZoSVZLMiPXP9YFktbida1Q5upXMrzG1t8abPmpFo983T/rgWlNqJp+Fb+bsoH0zuSpmU4cPKO3LIGsxBhvRhM/xydahZD+VpEX7TEJAN58z1RomFyx9u0IR7ukwZr2UyoNA+uj8OChUDFupQsVwbm3XE1UAt22BGvfYIyyZ42fxgOgsFFY+AZ72AOufcmZb/8vIw3uEUgxHczdl+NGLuS4Hsy/AAntdcH9sojSMF3qTf+ZK1FMav23SPxUBtU5T9HCEkKqQWRnMsVGYV1pupFisWo85hRLDTUipxVy9ug1hN8JBYBNmGLf8KtWLhVp7Z11PIAZj3C6HzoVyiVeuiorwNrn0ZaaXNe+y5LHuDF0DNZhrIfnXByq6grLLSAv4fTLeCJvfGzTWWyZDMbVXNx1HgumKq8calP9wv33t0hfEaOlcmfGIyh1J/N+rOGR0WXcuZZP5/VsFR44S2ncpwTPT+MmR0PsjocDenRY5m/X4EXbGGkZ+cfPnWoA64bn3eLeJTwxl9W1ZbmYS6kjpRGUMxExgRNOzWoGISddHCLcQvN7o50K8SF5k97rxiS5q4rqDmqgRPXzQTQnZyoL3dCxScX9cvLSjNCZDcotonDBAWHfkXZ0/EmFiONQcLJdANtAjwoA44Mbn50gubrTsNd7d0Rm/hbNEh/ZceUalV5MMcl6tJtahCJoybQMsnjWuBXl7cXiKmqAvxTDxIaBgQBYAo4FrbV4zQv35zlol+O3YiyjJn/U0oBeO5pEcH1d0vnLgYP71jZVY2FjWRKnDR9aw4JhiuqAa+i0tupkBy+H4/SVwHADFQq6wcsL8qvXlwktJL9MIAoaXDkIssw6gKE9EuGd7bSO9f+sA8CZ0I8LfJ3jcHUsE/3qd4pFrn5RaET56+1p8ZHZDDUQ0p1okApUCCYsC2WuL6O9P4fcg3yitAA/AfUUNjHKANE+ANneQ0efMG7fx9bvI+iLbXgPupApoov24JRkmhHsrJiu9bp+G/pImd2PNv7ArunJ6upl0VAUWtRyLWyGfdl6etGuY8vVJ7JdWEQ8aWzRK3g6e+8YmDtP5DAfw==';
|
| 10 |
const CLAUDE_TOOL_SIGNATURE = 'RXVNQkNrZ0lDaEFDR0FJcVFLZGsvMnlyR0VTbmNKMXEyTFIrcWwyY2ozeHhoZHRPb0VOYWJ2VjZMSnE2MlBhcEQrUWdIM3ZWeHBBUG9rbGN1aXhEbXprZTcvcGlkbWRDQWs5MWcrTVNERnRhbWJFOU1vZWZGc1pWSGhvTUxsMXVLUzRoT3BIaWwyeXBJakNYa05EVElMWS9talprdUxvRjFtMmw5dnkrbENhSDNNM3BYNTM0K1lRZ0NaWTQvSUNmOXo4SkhZVzU2Sm1WcTZBcVNRUURBRGVMV1BQRXk1Q0JsS0dCZXlNdHp2NGRJQVlGbDFSMDBXNGhqNHNiSWNKeGY0UGZVQTBIeE1mZjJEYU5BRXdrWUJ4MmNzRFMrZGM1N1hnUlVNblpkZ0hTVHVNaGdod1lBUT09';
|
| 11 |
const GEMINI_TOOL_SIGNATURE = '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';
|
|
|
|
| 41 |
'$schema', 'additionalProperties', 'minLength', 'maxLength',
|
| 42 |
'minItems', 'maxItems', 'uniqueItems', 'exclusiveMaximum',
|
| 43 |
'exclusiveMinimum', 'const', 'anyOf', 'oneOf', 'allOf',
|
| 44 |
+
'any_of', 'one_of', 'all_of', 'multipleOf'
|
| 45 |
]);
|
| 46 |
|
| 47 |
export function cleanParameters(obj) {
|
|
|
|
| 135 |
// ==================== 其他工具 ====================
|
| 136 |
export function getDefaultIp() {
|
| 137 |
const interfaces = os.networkInterfaces();
|
| 138 |
+
if (interfaces.WLAN) {
|
| 139 |
+
for (const inter of interfaces.WLAN) {
|
| 140 |
+
if (inter.family === 'IPv4' && !inter.internal) {
|
| 141 |
+
return inter.address;
|
| 142 |
+
}
|
| 143 |
+
}
|
| 144 |
+
} else if (interfaces.wlan2) {
|
| 145 |
+
for (const inter of interfaces.wlan2) {
|
| 146 |
if (inter.family === 'IPv4' && !inter.internal) {
|
| 147 |
return inter.address;
|
| 148 |
}
|