microsoft/teams.net

Public

mirrored from https://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/UserMessage.cs

48lines · modeblame

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