From 1309ac212d538cfe54c7863e16df8aa9cfb874a3 Mon Sep 17 00:00:00 2001 From: Federico Villa Date: Tue, 5 Aug 2025 19:22:06 +0200 Subject: [PATCH 1/4] Configure external models in autogen studio via model_info parameter --- .../component-editor/fields/model-fields.tsx | 175 +++++++++++++++++- 1 file changed, 171 insertions(+), 4 deletions(-) diff --git a/python/packages/autogen-studio/frontend/src/components/views/teambuilder/builder/component-editor/fields/model-fields.tsx b/python/packages/autogen-studio/frontend/src/components/views/teambuilder/builder/component-editor/fields/model-fields.tsx index 4126f79585cd..ad75dd8e9142 100644 --- a/python/packages/autogen-studio/frontend/src/components/views/teambuilder/builder/component-editor/fields/model-fields.tsx +++ b/python/packages/autogen-studio/frontend/src/components/views/teambuilder/builder/component-editor/fields/model-fields.tsx @@ -1,5 +1,5 @@ import React, { useCallback } from "react"; -import { Input, InputNumber, Select, Tooltip, Collapse } from "antd"; +import { Input, InputNumber, Select, Tooltip, Collapse, Switch } from "antd"; import TextArea from "antd/es/input/TextArea"; import { HelpCircle, Settings, User, Wrench } from "lucide-react"; import { @@ -56,7 +56,8 @@ type FieldName = | "azure_ad_token" | "tools" | "tool_choice" - | "metadata"; + | "metadata" + | "model_info"; // Define the field specification type interface FieldSpec { @@ -70,7 +71,127 @@ interface FieldSpec { }; } -// Field specifications for all possible model parameters +const ModelInfoEditor: React.FC<{ + value: any; + onChange: (value: any) => void; +}> = ({ value, onChange }) => { + const modelInfo = value || { + vision: false, + function_calling: false, + json_output: false, + structured_output: false, + family: "unknown", + multiple_system_messages: false, + }; + + const updateField = (field: string, newValue: any) => { + onChange({ + ...modelInfo, + [field]: newValue, + }); + }; + + return ( +
+
+ + + + + + + + + +
+ + +
); }; @@ -385,30 +414,9 @@ const fieldSpecs: Record = { component: ModelInfoEditor, props: {}, transform: { - fromConfig: (value: any) => { - const defaultModelInfo = { - vision: false, - function_calling: true, - json_output: false, - structured_output: false, - family: "unknown", - multiple_system_messages: false, - }; - - return value ? { ...defaultModelInfo, ...value } : defaultModelInfo; - }, - toConfig: (value: any) => { - const defaultModelInfo = { - vision: false, - function_calling: true, - json_output: false, - structured_output: false, - family: "unknown", - multiple_system_messages: false, - }; - - return { ...defaultModelInfo, ...value }; - }, + fromConfig: (value: any) => + value ? { ...defaultModelInfo, ...value } : defaultModelInfo, + toConfig: (value: any) => ({ ...defaultModelInfo, ...value }), }, }, }; From 263a72e1fe26707058a7de529253204d5a1b984e Mon Sep 17 00:00:00 2001 From: Federico Villa Date: Wed, 6 Aug 2025 22:15:06 +0200 Subject: [PATCH 3/4] Added template for OpenAI-compatible model --- .../components/types/component-templates.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/python/packages/autogen-studio/frontend/src/components/types/component-templates.ts b/python/packages/autogen-studio/frontend/src/components/types/component-templates.ts index 4372ad20bd69..3ca2b5728c1c 100644 --- a/python/packages/autogen-studio/frontend/src/components/types/component-templates.ts +++ b/python/packages/autogen-studio/frontend/src/components/types/component-templates.ts @@ -226,6 +226,27 @@ export const MODEL_TEMPLATES: ComponentTemplate[] = [ temperature: 0.7, } as AnthropicClientConfig, }, + { + id: "external-custom-model", + label: "External Model", + description: "Template for a model using an OpenAI-compatible endpoint", + provider: PROVIDERS.OPENAI, + component_type: "model", + version: 1, + component_version: 1, + config: { + model: "your-model-name", + base_url: "https://example.com/", + model_info: { + vision: false, + function_calling: true, + json_output: false, + structured_output: false, + family: "unknown", + multiple_system_messages: false, + }, + } as OpenAIClientConfig, + }, ]; // Tool Templates From 49d40ed913f4cb439a6f3e4132c4b144190aabca Mon Sep 17 00:00:00 2001 From: Federico Villa <61495946+federicovilla55@users.noreply.github.com> Date: Fri, 12 Sep 2025 21:31:44 +0200 Subject: [PATCH 4/4] Update python/packages/autogen-studio/frontend/src/components/views/teambuilder/builder/component-editor/fields/model-fields.tsx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../component-editor/fields/model-fields.tsx | 60 ++++++++----------- 1 file changed, 25 insertions(+), 35 deletions(-) diff --git a/python/packages/autogen-studio/frontend/src/components/views/teambuilder/builder/component-editor/fields/model-fields.tsx b/python/packages/autogen-studio/frontend/src/components/views/teambuilder/builder/component-editor/fields/model-fields.tsx index 85326edf9805..d5e1ec21b3fa 100644 --- a/python/packages/autogen-studio/frontend/src/components/views/teambuilder/builder/component-editor/fields/model-fields.tsx +++ b/python/packages/autogen-studio/frontend/src/components/views/teambuilder/builder/component-editor/fields/model-fields.tsx @@ -100,65 +100,55 @@ const ModelInfoEditor: React.FC<{ label="Vision Support" tooltip="Enable vision support (image input capability)." > -
- updateField("vision", checked)} - className="pointer-events-auto" - /> -
+ updateField("vision", checked)} + className="w-16" + /> -
- updateField("function_calling", checked)} - className="pointer-events-auto" - /> -
+ updateField("function_calling", checked)} + className="w-16" + />
-
- updateField("json_output", checked)} - className="pointer-events-auto" - /> -
+ updateField("json_output", checked)} + className="w-16" + />
-
- updateField("structured_output", checked)} - className="pointer-events-auto" - /> -
+ updateField("structured_output", checked)} + className="w-16" + />
-
- updateField("multiple_system_messages", checked)} - className="pointer-events-auto" - /> -
+ updateField("multiple_system_messages", checked)} + className="w-16" + />