From ca90595b8c3066a696f0ffe4ecac38bc110cd976 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peer=20Sch=C3=BCtt?= <20603780+peerschuett@users.noreply.github.com> Date: Mon, 27 Jul 2026 10:29:59 +0200 Subject: [PATCH] Some provider send additional metadata with their answers. These are often needed for their provider-specific implementation of the chat-completions API. Therefore we do not remove them, but send them with the request --- app/MindWork AI Studio/Provider/BaseProvider.cs | 1 + .../Provider/OpenAI/ChatCompletionToolCall.cs | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/app/MindWork AI Studio/Provider/BaseProvider.cs b/app/MindWork AI Studio/Provider/BaseProvider.cs index a79c693a..bbf5e4d9 100644 --- a/app/MindWork AI Studio/Provider/BaseProvider.cs +++ b/app/MindWork AI Studio/Provider/BaseProvider.cs @@ -1249,6 +1249,7 @@ public abstract class BaseProvider : IProvider, ISecretId { Id = toolCallId, Type = string.IsNullOrWhiteSpace(returnedToolCall?.Type) ? "function" : returnedToolCall.Type, + AdditionalMetadata = returnedToolCall?.AdditionalMetadata ?? new Dictionary(), Function = new ChatCompletionToolFunction { Name = string.IsNullOrWhiteSpace(returnedFunctionName) ? "invalid_tool_call" : returnedFunctionName, diff --git a/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionToolCall.cs b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionToolCall.cs index 36850dbf..9c0a38c0 100644 --- a/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionToolCall.cs +++ b/app/MindWork AI Studio/Provider/OpenAI/ChatCompletionToolCall.cs @@ -1,3 +1,6 @@ +using System.Text.Json; +using System.Text.Json.Serialization; + namespace AIStudio.Provider.OpenAI; public sealed record ChatCompletionToolCall @@ -7,4 +10,7 @@ public sealed record ChatCompletionToolCall public string? Type { get; init; } = "function"; public ChatCompletionToolFunction? Function { get; init; } + + [JsonExtensionData] + public IDictionary AdditionalMetadata { get; init; } = new Dictionary(); }