mirror of
https://github.com/enricoros/big-AGI.git
synced 2026-05-10 21:50:14 -07:00
Aix: Fix Gemini functionResponse
This commit is contained in:
@@ -44,7 +44,7 @@ export const aixRouter = createTRPCRouter({
|
||||
try {
|
||||
dispatch = createChatGenerateDispatch(access, model, chatGenerate, streaming);
|
||||
} catch (error: any) {
|
||||
chatGenerateTx.setRpcTerminatingIssue('dispatch-prepare', `**[Configuration Issue] ${prettyDialect}**: ${safeErrorString(error) || 'Unknown service preparation error'}`, false);
|
||||
chatGenerateTx.setRpcTerminatingIssue('dispatch-prepare', `**[AIX Configuration Issue] ${prettyDialect}**: ${safeErrorString(error) || 'Unknown service preparation error'}`, false);
|
||||
yield* chatGenerateTx.flushParticles();
|
||||
return; // exit
|
||||
}
|
||||
|
||||
@@ -87,8 +87,10 @@ export function aixToAnthropicMessageCreate(model: AixAPI_Model, chatGenerate: A
|
||||
|
||||
// Preemptive error detection with server-side payload validation before sending it upstream
|
||||
const validated = AnthropicWire_API_Message_Create.Request_schema.safeParse(payload);
|
||||
if (!validated.success)
|
||||
throw new Error(`Invalid message sequence for Anthropic models: ${validated.error.errors?.[0]?.message || validated.error.message || validated.error}`);
|
||||
if (!validated.success) {
|
||||
console.error('Anthropic: invalid messageCreate payload. Error:', validated.error.message);
|
||||
throw new Error(`Invalid sequence for Anthropic models: ${validated.error.errors?.[0]?.message || validated.error.message || validated.error}.`);
|
||||
}
|
||||
|
||||
return validated.data;
|
||||
}
|
||||
|
||||
@@ -53,8 +53,10 @@ export function aixToGeminiGenerateContent(model: AixAPI_Model, chatGenerate: Ai
|
||||
|
||||
// Preemptive error detection with server-side payload validation before sending it upstream
|
||||
const validated = GeminiWire_API_Generate_Content.Request_schema.safeParse(payload);
|
||||
if (!validated.success)
|
||||
throw new Error(`Invalid message sequence for Gemini models: ${validated.error.errors?.[0]?.message || validated.error.message || validated.error}`);
|
||||
if (!validated.success) {
|
||||
console.warn('Gemini: invalid generateContent payload. Error:', validated.error.message);
|
||||
throw new Error(`Invalid sequence for Gemini models: ${validated.error.errors?.[0]?.message || validated.error.message || validated.error}.`);
|
||||
}
|
||||
|
||||
return validated.data;
|
||||
}
|
||||
@@ -159,6 +161,10 @@ function _toGeminiContents(chatSequence: AixMessages_ChatMessage[]): GeminiWire_
|
||||
console.warn('Gemini: failed to parse (string -> JSON) function response result', e);
|
||||
functionResponseResponse = { output: toolErrorPrefix + part.response.result };
|
||||
}
|
||||
if (Array.isArray(functionResponseResponse)) {
|
||||
console.warn('toGeminiContents: Gemini requires results of function calls to be objects', { result: functionResponseResponse });
|
||||
throw new Error('Gemini: unexpected array as function response');
|
||||
}
|
||||
} else {
|
||||
functionResponseResponse = part.response.result;
|
||||
}
|
||||
|
||||
@@ -87,8 +87,10 @@ export function aixToOpenAIChatCompletions(openAIDialect: OpenAIDialects, model:
|
||||
|
||||
// Preemptive error detection with server-side payload validation before sending it upstream
|
||||
const validated = OpenAIWire_API_Chat_Completions.Request_schema.safeParse(payload);
|
||||
if (!validated.success)
|
||||
throw new Error(`Invalid message sequence for OpenAI models: ${validated.error.errors?.[0]?.message || validated.error.message || validated.error}`);
|
||||
if (!validated.success) {
|
||||
console.warn('OpenAI: invalid chatCompletions payload. Error:', validated.error);
|
||||
throw new Error(`Invalid sequence for OpenAI models: ${validated.error.errors?.[0]?.message || validated.error.message || validated.error}.`);
|
||||
}
|
||||
|
||||
// if (hotFixUseDeprecatedFunctionCalls)
|
||||
// validated.data = _fixUseDeprecatedFunctionCalls(validated.data);
|
||||
|
||||
Reference in New Issue
Block a user