microsoft/teams.net

Public

mirrored fromhttps://github.com/microsoft/teams.netAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v2.0.0-preview.6

Branches

Tags

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

Clone

HTTPS

Download ZIP

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

40lines · modecode

1using Microsoft.Teams.AI.Messages;
2
3using OpenAI.Chat;
4
5namespace Microsoft.Teams.AI.Models.OpenAI;
6
7public static partial class MessageExtensions
8{
9 public static ModelMessage<string> ToTeams(this AssistantChatMessage message)
10 {
11 var calls = message.ToolCalls.Select(call =>
12 {
13 var args = call.FunctionArguments.ToString();
14 return new FunctionCall()
15 {
16 Id = call.Id,
17 Name = call.FunctionName,
18 Arguments = args == string.Empty ? null : args
19 };
20 });
21
22 return new ModelMessage<string>(message.Content.FirstOrDefault()?.Text ?? string.Empty, calls.ToList());
23 }
24
25 public static AssistantChatMessage ToOpenAI(this ModelMessage<string> message)
26 {
27 var calls = message.FunctionCalls?.Select(call => ChatToolCall.CreateFunctionToolCall(
28 call.Id,
29 call.Name,
30 call.Arguments is null ? BinaryData.Empty : BinaryData.FromString(call.Arguments)
31 ));
32
33 if (calls is not null && calls.Count() > 0)
34 {
35 return new AssistantChatMessage(calls?.ToList() ?? []);
36 }
37
38 return new AssistantChatMessage(message.Content);
39 }
40}