File tree Expand file tree Collapse file tree 2 files changed +39
-0
lines changed
Expand file tree Collapse file tree 2 files changed +39
-0
lines changed Original file line number Diff line number Diff line change @@ -41,6 +41,15 @@ public void Add(string role, string message)
4141 _ => new ChatRole ( role )
4242 } , message ) ) ;
4343
44+ /// <summary>Creates a user message.</summary>
45+ public static ChatMessage User ( string message ) => new ( ChatRole . User , message ) ;
46+
47+ /// <summary>Creates an assistant message.</summary>
48+ public static ChatMessage Assistant ( string message ) => new ( ChatRole . Assistant , message ) ;
49+
50+ /// <summary>Creates a system message.</summary>
51+ public static ChatMessage System ( string message ) => new ( ChatRole . System , message ) ;
52+
4453 IEnumerator < ChatMessage > IEnumerable < ChatMessage > . GetEnumerator ( ) => messages . GetEnumerator ( ) ;
4554
4655 IEnumerator IEnumerable . GetEnumerator ( ) => messages . GetEnumerator ( ) ;
Original file line number Diff line number Diff line change 1+ using System ;
2+ using System . Collections . Generic ;
3+ using System . Text ;
4+ using Devlooped . Extensions . AI ;
5+ using Microsoft . Extensions . AI ;
6+ using static Devlooped . Extensions . AI . Chat ;
7+
8+ namespace Devlooped ;
9+
10+ public class ChatExtensionsTests
11+ {
12+ [ Fact ]
13+ public void FactoryMethods ( )
14+ {
15+ var message = User ( "hello" ) ;
16+
17+ Assert . Equal ( ChatRole . User , message . Role ) ;
18+ Assert . Equal ( "hello" , message . Text ) ;
19+
20+ message = Assistant ( "hello" ) ;
21+
22+ Assert . Equal ( ChatRole . Assistant , message . Role ) ;
23+ Assert . Equal ( "hello" , message . Text ) ;
24+
25+ // Can't use System without qualifying since it's also a namespace.
26+ message = Chat . System ( "hello" ) ;
27+ Assert . Equal ( ChatRole . System , message . Role ) ;
28+ Assert . Equal ( "hello" , message . Text ) ;
29+ }
30+ }
You can’t perform that action at this time.
0 commit comments