mirror of
https://github.com/enricoros/big-AGI.git
synced 2026-05-10 21:50:14 -07:00
LLMs/AIX: Gemini: Agentic models: add option to disable visualizations. Fixes #1095
This commit is contained in:
@@ -349,6 +349,15 @@ export const DModelParameterRegistry = {
|
|||||||
// when undefined, the model chooses automatically
|
// when undefined, the model chooses automatically
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Gemini Interactions API agent_config - per-agent knobs (Deep Research only today)
|
||||||
|
llmVndGeminiAgentViz: _enumDef({
|
||||||
|
label: 'Visualizations',
|
||||||
|
type: 'enum',
|
||||||
|
description: 'Charts and images in Deep Research reports. Disable for text-only output (helpful when merging multiple reports).',
|
||||||
|
values: ['auto', 'off'],
|
||||||
|
// undefined means upstream default ('auto'); we only forward when explicitly 'off'
|
||||||
|
}),
|
||||||
|
|
||||||
// NOTE: we don't have this as a parameter, as for now we use it in tandem with llmVndGeminiGoogleSearch
|
// NOTE: we don't have this as a parameter, as for now we use it in tandem with llmVndGeminiGoogleSearch
|
||||||
// llmVndGeminiUrlContext: {
|
// llmVndGeminiUrlContext: {
|
||||||
// label: 'URL Context',
|
// label: 'URL Context',
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ export function aixCreateModelFromLLMOptions(
|
|||||||
llmVndAntEffort, llmVndGemEffort, llmVndOaiEffort, llmVndMiscEffort,
|
llmVndAntEffort, llmVndGemEffort, llmVndOaiEffort, llmVndMiscEffort,
|
||||||
llmVndAnt1MContext, llmVndAntInfSpeed, llmVndAntSkills, llmVndAntThinkingBudget, llmVndAntWebDynamic, llmVndAntWebFetch, llmVndAntWebFetchMaxUses, llmVndAntWebSearch, llmVndAntWebSearchMaxUses,
|
llmVndAnt1MContext, llmVndAntInfSpeed, llmVndAntSkills, llmVndAntThinkingBudget, llmVndAntWebDynamic, llmVndAntWebFetch, llmVndAntWebFetchMaxUses, llmVndAntWebSearch, llmVndAntWebSearchMaxUses,
|
||||||
llmVndBedrockAPI,
|
llmVndBedrockAPI,
|
||||||
llmVndGeminiAspectRatio, llmVndGeminiImageSize, llmVndGeminiCodeExecution, llmVndGeminiComputerUse, llmVndGeminiGoogleSearch, llmVndGeminiMediaResolution, llmVndGeminiThinkingBudget,
|
llmVndGeminiAgentViz, llmVndGeminiAspectRatio, llmVndGeminiImageSize, llmVndGeminiCodeExecution, llmVndGeminiComputerUse, llmVndGeminiGoogleSearch, llmVndGeminiMediaResolution, llmVndGeminiThinkingBudget,
|
||||||
// llmVndMoonshotWebSearch,
|
// llmVndMoonshotWebSearch,
|
||||||
llmVndOaiRestoreMarkdown, llmVndOaiVerbosity, llmVndOaiWebSearchContext, llmVndOaiWebSearchGeolocation, llmVndOaiImageGeneration, llmVndOaiCodeInterpreter,
|
llmVndOaiRestoreMarkdown, llmVndOaiVerbosity, llmVndOaiWebSearchContext, llmVndOaiWebSearchGeolocation, llmVndOaiImageGeneration, llmVndOaiCodeInterpreter,
|
||||||
llmVndOrtWebSearch,
|
llmVndOrtWebSearch,
|
||||||
@@ -143,6 +143,7 @@ export function aixCreateModelFromLLMOptions(
|
|||||||
|
|
||||||
// Gemini
|
// Gemini
|
||||||
...(llmVndGeminiInteractions ? { vndGeminiAPI: 'interactions-agent' } : {}),
|
...(llmVndGeminiInteractions ? { vndGeminiAPI: 'interactions-agent' } : {}),
|
||||||
|
...(llmVndGeminiAgentViz === 'off' ? { vndGeminiAgentViz: 'off' } : {}), // Deep Research agent_config.visualization - only forward when explicitly disabled
|
||||||
...(llmVndGeminiAspectRatio ? { vndGeminiAspectRatio: llmVndGeminiAspectRatio } : {}),
|
...(llmVndGeminiAspectRatio ? { vndGeminiAspectRatio: llmVndGeminiAspectRatio } : {}),
|
||||||
...(llmVndGeminiCodeExecution === 'auto' ? { vndGeminiCodeExecution: llmVndGeminiCodeExecution } : {}),
|
...(llmVndGeminiCodeExecution === 'auto' ? { vndGeminiCodeExecution: llmVndGeminiCodeExecution } : {}),
|
||||||
...(llmVndGeminiComputerUse ? { vndGeminiComputerUse: llmVndGeminiComputerUse } : {}),
|
...(llmVndGeminiComputerUse ? { vndGeminiComputerUse: llmVndGeminiComputerUse } : {}),
|
||||||
|
|||||||
@@ -516,6 +516,7 @@ export namespace AixWire_API {
|
|||||||
|
|
||||||
// Gemini
|
// Gemini
|
||||||
vndGeminiAPI: z.enum(['interactions-agent']).optional(), // opt-in per-model API dialect; unset = generateContent
|
vndGeminiAPI: z.enum(['interactions-agent']).optional(), // opt-in per-model API dialect; unset = generateContent
|
||||||
|
vndGeminiAgentViz: z.enum(['auto', 'off']).optional(), // agent_config.visualization; default 'auto' upstream
|
||||||
vndGeminiAspectRatio: z.enum(['1:1', '2:3', '3:2', '3:4', '4:3', '9:16', '16:9', '21:9']).optional(),
|
vndGeminiAspectRatio: z.enum(['1:1', '2:3', '3:2', '3:4', '4:3', '9:16', '16:9', '21:9']).optional(),
|
||||||
vndGeminiCodeExecution: z.enum(['auto']).optional(),
|
vndGeminiCodeExecution: z.enum(['auto']).optional(),
|
||||||
vndGeminiComputerUse: z.enum(['browser']).optional(),
|
vndGeminiComputerUse: z.enum(['browser']).optional(),
|
||||||
|
|||||||
@@ -86,7 +86,8 @@ export function aixToGeminiInteractionsCreate(model: AixAPI_Model, chatGenerateR
|
|||||||
agent_config: {
|
agent_config: {
|
||||||
type: 'deep-research',
|
type: 'deep-research',
|
||||||
thinking_summaries: 'auto', // Enable thought_summary blocks - without this the API would not emit summaries during streaming
|
thinking_summaries: 'auto', // Enable thought_summary blocks - without this the API would not emit summaries during streaming
|
||||||
// visualization defaults to 'auto' upstream; leave unset to keep the default (agent may generate charts/images).
|
// visualization: forwarded only when the client explicitly opts out; 'auto' (default) is left unset so the agent may generate charts/images.
|
||||||
|
...(model.vndGeminiAgentViz === 'off' && { visualization: 'off' }),
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
// non-DR agents: use native system_instruction field (matches gemini.generateContent.ts convention)
|
// non-DR agents: use native system_instruction field (matches gemini.generateContent.ts convention)
|
||||||
|
|||||||
@@ -123,6 +123,11 @@ const _geminiGoogleSearchOptions = [
|
|||||||
{ value: _UNSPECIFIED, label: 'Off', description: 'Default (disabled)' },
|
{ value: _UNSPECIFIED, label: 'Off', description: 'Default (disabled)' },
|
||||||
] as const;
|
] as const;
|
||||||
|
|
||||||
|
const _geminiAgentVizOptions = [
|
||||||
|
{ value: _UNSPECIFIED, label: 'Auto', description: 'Default - agent may include charts/images' },
|
||||||
|
{ value: 'off', label: 'Off', description: 'Text only (better when merging multiple reports)' },
|
||||||
|
] as const;
|
||||||
|
|
||||||
const _geminiMediaResolutionOptions = [
|
const _geminiMediaResolutionOptions = [
|
||||||
{ value: 'mr_high', label: 'High', description: 'Best quality' },
|
{ value: 'mr_high', label: 'High', description: 'Best quality' },
|
||||||
{ value: 'mr_medium', label: 'Medium', description: 'Balanced' },
|
{ value: 'mr_medium', label: 'Medium', description: 'Balanced' },
|
||||||
@@ -245,6 +250,7 @@ export function LLMParametersEditor(props: {
|
|||||||
llmVndAntWebSearch,
|
llmVndAntWebSearch,
|
||||||
llmVndAntWebSearchMaxUses,
|
llmVndAntWebSearchMaxUses,
|
||||||
llmVndGemEffort,
|
llmVndGemEffort,
|
||||||
|
llmVndGeminiAgentViz,
|
||||||
llmVndGeminiAspectRatio,
|
llmVndGeminiAspectRatio,
|
||||||
llmVndGeminiCodeExecution,
|
llmVndGeminiCodeExecution,
|
||||||
llmVndGeminiGoogleSearch,
|
llmVndGeminiGoogleSearch,
|
||||||
@@ -687,6 +693,19 @@ export function LLMParametersEditor(props: {
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{showParam('llmVndGeminiAgentViz') && (
|
||||||
|
<FormSelectControl
|
||||||
|
title='Visualizations'
|
||||||
|
tooltip='Charts and images in Deep Research reports. Disable for text-only output (helpful when merging multiple reports).'
|
||||||
|
value={llmVndGeminiAgentViz ?? _UNSPECIFIED}
|
||||||
|
onChange={(value) => {
|
||||||
|
if (value === _UNSPECIFIED || !value) onRemoveParameter('llmVndGeminiAgentViz');
|
||||||
|
else onChangeParameter({ llmVndGeminiAgentViz: value });
|
||||||
|
}}
|
||||||
|
options={_geminiAgentVizOptions}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
|
||||||
|
|
||||||
{/*{showParam('llmVndMoonshotWebSearch') && (*/}
|
{/*{showParam('llmVndMoonshotWebSearch') && (*/}
|
||||||
{/* <FormSelectControl*/}
|
{/* <FormSelectControl*/}
|
||||||
|
|||||||
@@ -393,7 +393,7 @@ const _knownGeminiModels: ({
|
|||||||
isPreview: true,
|
isPreview: true,
|
||||||
chatPrice: gemini25ProPricing, // pricing not explicitly listed; using 2.5 Pro as baseline
|
chatPrice: gemini25ProPricing, // pricing not explicitly listed; using 2.5 Pro as baseline
|
||||||
interfaces: [LLM_IF_OAI_Chat, LLM_IF_OAI_Vision, LLM_IF_OAI_Reasoning, LLM_IF_GEM_Interactions],
|
interfaces: [LLM_IF_OAI_Chat, LLM_IF_OAI_Vision, LLM_IF_OAI_Reasoning, LLM_IF_GEM_Interactions],
|
||||||
parameterSpecs: [],
|
parameterSpecs: [{ paramId: 'llmVndGeminiAgentViz' }],
|
||||||
benchmark: undefined, // Deep research model, not benchmarkable on standard tests
|
benchmark: undefined, // Deep research model, not benchmarkable on standard tests
|
||||||
// 128K input, 64K output
|
// 128K input, 64K output
|
||||||
},
|
},
|
||||||
@@ -406,7 +406,7 @@ const _knownGeminiModels: ({
|
|||||||
isPreview: true,
|
isPreview: true,
|
||||||
chatPrice: gemini25ProPricing, // baseline estimate (see note above)
|
chatPrice: gemini25ProPricing, // baseline estimate (see note above)
|
||||||
interfaces: [LLM_IF_OAI_Chat, LLM_IF_OAI_Vision, LLM_IF_OAI_Reasoning, LLM_IF_GEM_Interactions],
|
interfaces: [LLM_IF_OAI_Chat, LLM_IF_OAI_Vision, LLM_IF_OAI_Reasoning, LLM_IF_GEM_Interactions],
|
||||||
parameterSpecs: [],
|
parameterSpecs: [{ paramId: 'llmVndGeminiAgentViz' }],
|
||||||
benchmark: undefined, // Deep research model, not benchmarkable on standard tests
|
benchmark: undefined, // Deep research model, not benchmarkable on standard tests
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -419,7 +419,7 @@ const _knownGeminiModels: ({
|
|||||||
isPreview: true,
|
isPreview: true,
|
||||||
chatPrice: gemini25ProPricing,
|
chatPrice: gemini25ProPricing,
|
||||||
interfaces: [LLM_IF_OAI_Chat, LLM_IF_OAI_Vision, LLM_IF_OAI_Reasoning, LLM_IF_GEM_Interactions],
|
interfaces: [LLM_IF_OAI_Chat, LLM_IF_OAI_Vision, LLM_IF_OAI_Reasoning, LLM_IF_GEM_Interactions],
|
||||||
parameterSpecs: [{ paramId: 'llmVndGeminiThinkingBudget' }],
|
parameterSpecs: [{ paramId: 'llmVndGeminiAgentViz' }, { paramId: 'llmVndGeminiThinkingBudget' }],
|
||||||
benchmark: undefined, // Deep research model, not benchmarkable on standard tests
|
benchmark: undefined, // Deep research model, not benchmarkable on standard tests
|
||||||
// Note: 128K input context, 64K output context
|
// Note: 128K input context, 64K output context
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ const ModelParameterSpec_schema = z.object({
|
|||||||
// Bedrock
|
// Bedrock
|
||||||
'llmVndBedrockAPI',
|
'llmVndBedrockAPI',
|
||||||
// Gemini
|
// Gemini
|
||||||
|
'llmVndGeminiAgentViz',
|
||||||
'llmVndGeminiAspectRatio',
|
'llmVndGeminiAspectRatio',
|
||||||
'llmVndGeminiCodeExecution',
|
'llmVndGeminiCodeExecution',
|
||||||
'llmVndGeminiComputerUse',
|
'llmVndGeminiComputerUse',
|
||||||
|
|||||||
Reference in New Issue
Block a user