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
|
||||
},
|
||||
|
||||
// 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
|
||||
// llmVndGeminiUrlContext: {
|
||||
// label: 'URL Context',
|
||||
|
||||
@@ -70,7 +70,7 @@ export function aixCreateModelFromLLMOptions(
|
||||
llmVndAntEffort, llmVndGemEffort, llmVndOaiEffort, llmVndMiscEffort,
|
||||
llmVndAnt1MContext, llmVndAntInfSpeed, llmVndAntSkills, llmVndAntThinkingBudget, llmVndAntWebDynamic, llmVndAntWebFetch, llmVndAntWebFetchMaxUses, llmVndAntWebSearch, llmVndAntWebSearchMaxUses,
|
||||
llmVndBedrockAPI,
|
||||
llmVndGeminiAspectRatio, llmVndGeminiImageSize, llmVndGeminiCodeExecution, llmVndGeminiComputerUse, llmVndGeminiGoogleSearch, llmVndGeminiMediaResolution, llmVndGeminiThinkingBudget,
|
||||
llmVndGeminiAgentViz, llmVndGeminiAspectRatio, llmVndGeminiImageSize, llmVndGeminiCodeExecution, llmVndGeminiComputerUse, llmVndGeminiGoogleSearch, llmVndGeminiMediaResolution, llmVndGeminiThinkingBudget,
|
||||
// llmVndMoonshotWebSearch,
|
||||
llmVndOaiRestoreMarkdown, llmVndOaiVerbosity, llmVndOaiWebSearchContext, llmVndOaiWebSearchGeolocation, llmVndOaiImageGeneration, llmVndOaiCodeInterpreter,
|
||||
llmVndOrtWebSearch,
|
||||
@@ -143,6 +143,7 @@ export function aixCreateModelFromLLMOptions(
|
||||
|
||||
// Gemini
|
||||
...(llmVndGeminiInteractions ? { vndGeminiAPI: 'interactions-agent' } : {}),
|
||||
...(llmVndGeminiAgentViz === 'off' ? { vndGeminiAgentViz: 'off' } : {}), // Deep Research agent_config.visualization - only forward when explicitly disabled
|
||||
...(llmVndGeminiAspectRatio ? { vndGeminiAspectRatio: llmVndGeminiAspectRatio } : {}),
|
||||
...(llmVndGeminiCodeExecution === 'auto' ? { vndGeminiCodeExecution: llmVndGeminiCodeExecution } : {}),
|
||||
...(llmVndGeminiComputerUse ? { vndGeminiComputerUse: llmVndGeminiComputerUse } : {}),
|
||||
|
||||
@@ -516,6 +516,7 @@ export namespace AixWire_API {
|
||||
|
||||
// Gemini
|
||||
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(),
|
||||
vndGeminiCodeExecution: z.enum(['auto']).optional(),
|
||||
vndGeminiComputerUse: z.enum(['browser']).optional(),
|
||||
|
||||
@@ -86,7 +86,8 @@ export function aixToGeminiInteractionsCreate(model: AixAPI_Model, chatGenerateR
|
||||
agent_config: {
|
||||
type: 'deep-research',
|
||||
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)
|
||||
|
||||
@@ -123,6 +123,11 @@ const _geminiGoogleSearchOptions = [
|
||||
{ value: _UNSPECIFIED, label: 'Off', description: 'Default (disabled)' },
|
||||
] 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 = [
|
||||
{ value: 'mr_high', label: 'High', description: 'Best quality' },
|
||||
{ value: 'mr_medium', label: 'Medium', description: 'Balanced' },
|
||||
@@ -245,6 +250,7 @@ export function LLMParametersEditor(props: {
|
||||
llmVndAntWebSearch,
|
||||
llmVndAntWebSearchMaxUses,
|
||||
llmVndGemEffort,
|
||||
llmVndGeminiAgentViz,
|
||||
llmVndGeminiAspectRatio,
|
||||
llmVndGeminiCodeExecution,
|
||||
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') && (*/}
|
||||
{/* <FormSelectControl*/}
|
||||
|
||||
@@ -393,7 +393,7 @@ const _knownGeminiModels: ({
|
||||
isPreview: true,
|
||||
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],
|
||||
parameterSpecs: [],
|
||||
parameterSpecs: [{ paramId: 'llmVndGeminiAgentViz' }],
|
||||
benchmark: undefined, // Deep research model, not benchmarkable on standard tests
|
||||
// 128K input, 64K output
|
||||
},
|
||||
@@ -406,7 +406,7 @@ const _knownGeminiModels: ({
|
||||
isPreview: true,
|
||||
chatPrice: gemini25ProPricing, // baseline estimate (see note above)
|
||||
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
|
||||
},
|
||||
|
||||
@@ -419,7 +419,7 @@ const _knownGeminiModels: ({
|
||||
isPreview: true,
|
||||
chatPrice: gemini25ProPricing,
|
||||
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
|
||||
// Note: 128K input context, 64K output context
|
||||
},
|
||||
|
||||
@@ -94,6 +94,7 @@ const ModelParameterSpec_schema = z.object({
|
||||
// Bedrock
|
||||
'llmVndBedrockAPI',
|
||||
// Gemini
|
||||
'llmVndGeminiAgentViz',
|
||||
'llmVndGeminiAspectRatio',
|
||||
'llmVndGeminiCodeExecution',
|
||||
'llmVndGeminiComputerUse',
|
||||
|
||||
Reference in New Issue
Block a user