-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathAIController.cs
More file actions
35 lines (28 loc) · 1.13 KB
/
Copy pathAIController.cs
File metadata and controls
35 lines (28 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System.Text;
using System.Threading.Tasks;
using ReportingApp.Services;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.AI;
namespace ReportingApp.Controllers {
public class AIController : ControllerBase {
private readonly IAIReportingChatService chatService;
public AIController(IAIReportingChatService chatService) {
this.chatService = chatService;
}
public async Task<string> CreateUserAssistant() {
return await chatService.OpenDesignerChatAsync();
}
public async Task<string> GetAnswer([FromForm] string chatId, [FromForm] string text) {
var provider = chatService.GetChatProvider(chatId);
var sb = new StringBuilder();
await foreach(var update in provider.GetResponseAsync(
[new ChatMessage(ChatRole.User, text)], useStreaming: false))
sb.Append(update.Text);
return sb.ToString();
}
public async Task<ActionResult> CloseChat([FromForm] string chatId) {
await chatService.CloseChatAsync(chatId);
return Ok();
}
}
}