microsoft/teams.net

Public

mirrored from https://github.com/microsoft/teams.netAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v2.0.5

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

Libraries/Microsoft.Teams.AI.Models.OpenAI/Extensions/ChatTool.cs

35lines · modepreview

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System.Text.Json;

using Json.Schema;

using OpenAI.Chat;

namespace Microsoft.Teams.AI.Models.OpenAI;

public static partial class MessageExtensions
{
    public static IFunction ToTeams(this ChatTool tool)
    {
        var parameters = tool.FunctionParameters.ToString();

        return new Function(
            tool.FunctionName,
            tool.FunctionDescription,
            JsonSchema.FromText(parameters == string.Empty ? "{}" : parameters),
            () => Task.FromResult<object?>(null)
        );
    }

    public static ChatTool ToOpenAI(this IFunction function)
    {
        return ChatTool.CreateFunctionTool(
            function.Name,
            function.Description,
            function.Parameters is null ? null : BinaryData.FromString(JsonSerializer.Serialize(function.Parameters)),
            false
        );
    }
}