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/UserMessage.cs

51lines · modeblame

82a4e3c3Rajan1 years ago1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT License.
3
73e7847aAlex Acebo1 years ago4using Microsoft.Teams.AI.Messages;
5
6using OpenAI.Chat;
7
8namespace Microsoft.Teams.AI.Models.OpenAI;
9
10public static partial class MessageExtensions
11{
12public static UserMessage<IEnumerable<IContent>> ToTeams(this UserChatMessage message)
13{
14var parts = message.Content.Select<ChatMessageContentPart, IContent>(part =>
15{
16if (part.Kind == ChatMessageContentPartKind.Text)
17{
18return new TextContent() { Text = part.Text };
19}
20
21return new ImageContent() { ImageUrl = part.ImageUri.ToString() };
22});
23
24return new(parts);
25}
26
27public static UserChatMessage ToOpenAI(this UserMessage<IEnumerable<IContent>> message)
28{
29var parts = message.Content.Select(part =>
30{
31if (part is TextContent text)
32{
33return ChatMessageContentPart.CreateTextPart(text.Text);
34}
35
36if (part is ImageContent image)
37{
38return ChatMessageContentPart.CreateImagePart(new Uri(image.ImageUrl));
39}
40
41throw new Exception("invalid content part");
42});
43
44return ChatMessage.CreateUserMessage(parts);
45}
46
47public static UserChatMessage ToOpenAI(this UserMessage<string> message)
48{
49return ChatMessage.CreateUserMessage(message.Content);
50}
51}