refine tool call and response

This commit is contained in:
Jicheng Lu 2025-05-16 10:49:09 -05:00
parent a4d4f28bc0
commit d91a55232b
4 changed files with 8 additions and 5 deletions

View file

@ -305,10 +305,10 @@ public class ChatCompletionProvider : IChatCompletion
{
messages.Add(new AssistantChatMessage(new List<ChatToolCall>
{
ChatToolCall.CreateFunctionToolCall(message.FunctionName, message.FunctionName, BinaryData.FromString(message.FunctionArgs ?? string.Empty))
ChatToolCall.CreateFunctionToolCall(message.ToolCallId ?? message.FunctionName, message.FunctionName, BinaryData.FromString(message.FunctionArgs ?? "{}"))
}));
messages.Add(new ToolChatMessage(message.FunctionName, message.Content));
messages.Add(new ToolChatMessage(message.ToolCallId ?? message.FunctionName, message.Content));
}
else if (message.Role == AgentRole.User)
{

View file

@ -271,6 +271,7 @@ public class GeminiChatCompletionProvider : IChatCompletion
{
FunctionCall = new FunctionCall
{
Id = message.ToolCallId,
Name = message.FunctionName,
Args = JsonNode.Parse(message.FunctionArgs ?? "{}")
}
@ -282,6 +283,7 @@ public class GeminiChatCompletionProvider : IChatCompletion
{
FunctionResponse = new FunctionResponse
{
Id = message.ToolCallId,
Name = message.FunctionName,
Response = new JsonObject()
{

View file

@ -512,6 +512,7 @@ public class GoogleRealTimeProvider : IRealTimeCompletion
{
FunctionCall = new FunctionCall
{
Id = message.ToolCallId,
Name = message.FunctionName,
Args = JsonNode.Parse(message.FunctionArgs ?? "{}")
}
@ -523,6 +524,7 @@ public class GoogleRealTimeProvider : IRealTimeCompletion
{
FunctionResponse = new FunctionResponse
{
Id = message.ToolCallId,
Name = message.FunctionName ?? string.Empty,
Response = new JsonObject()
{

View file

@ -1,4 +1,3 @@
using BotSharp.Abstraction.Agents.Models;
using BotSharp.Abstraction.Hooks;
using OpenAI.Chat;
@ -273,10 +272,10 @@ public class ChatCompletionProvider : IChatCompletion
{
messages.Add(new AssistantChatMessage(new List<ChatToolCall>
{
ChatToolCall.CreateFunctionToolCall(message.FunctionName, message.FunctionName, BinaryData.FromString(message.FunctionArgs ?? string.Empty))
ChatToolCall.CreateFunctionToolCall(message.ToolCallId ?? message.FunctionName, message.FunctionName, BinaryData.FromString(message.FunctionArgs ?? "{}"))
}));
messages.Add(new ToolChatMessage(message.FunctionName, message.Content));
messages.Add(new ToolChatMessage(message.ToolCallId ?? message.FunctionName, message.Content));
}
else if (message.Role == AgentRole.User)
{