// Copyright (c) Microsoft. All rights reserved.
using ContentSafety.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.SemanticKernel;
namespace ContentSafety.Controllers;
///
/// Sample chat controller.
///
[ApiController]
[Route("[controller]")]
public class ChatController(Kernel kernel) : ControllerBase
{
private const string Prompt =
"""
You are friendly assistant.
{{$userMessage}}
""";
private readonly Kernel _kernel = kernel;
[HttpPost]
public async Task PostAsync(ChatModel chat)
{
var arguments = new KernelArguments
{
["userMessage"] = chat.Message,
["documents"] = chat.Documents
};
return this.Ok((await this._kernel.InvokePromptAsync(Prompt, arguments)).ToString());
}
}