diff --git a/src/Infrastructure/BotSharp.OpenAPI/Controllers/InstructModeController.cs b/src/Infrastructure/BotSharp.OpenAPI/Controllers/InstructModeController.cs index fb047973..d7f85932 100644 --- a/src/Infrastructure/BotSharp.OpenAPI/Controllers/InstructModeController.cs +++ b/src/Infrastructure/BotSharp.OpenAPI/Controllers/InstructModeController.cs @@ -47,4 +47,22 @@ public class InstructModeController : ControllerBase, IApiAdapter var textCompletion = CompletionProvider.GetTextCompletion(_services); return await textCompletion.GetCompletion(input.Text, Guid.Empty.ToString(), Guid.NewGuid().ToString()); } + + [HttpPost("/instruct/chat-completion")] + public async Task ChatCompletion([FromBody] IncomingMessageModel input) + { + var state = _services.GetRequiredService(); + input.States.ForEach(x => state.SetState(x.Split('=')[0], x.Split('=')[1])); + state.SetState("provider", input.Provider) + .SetState("model", input.Model); + + var textCompletion = CompletionProvider.GetChatCompletion(_services); + return textCompletion.GetChatCompletions(new Agent() + { + Id = Guid.Empty.ToString(), + }, new List + { + new RoleDialogModel(AgentRole.User, input.Text) + }).Content; + } }