add CodeScript in ProgramCodeTemplateMessage
This commit is contained in:
parent
e92d97f8b4
commit
96262c35d2
|
|
@ -141,7 +141,7 @@ public class RoleDialogModel : ITrackableMessage
|
|||
public bool IsFromAssistant => Role == AgentRole.Assistant || Role == AgentRole.Model;
|
||||
|
||||
[JsonIgnore(Condition = JsonIgnoreCondition.Always)]
|
||||
public string RoleContent
|
||||
public string LlmContent
|
||||
{
|
||||
get
|
||||
{
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@ public class ProgramCodeTemplateMessage : IRichMessage, ITemplateMessage
|
|||
[JsonPropertyName("text")]
|
||||
public string Text { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("code_script")]
|
||||
public string? CodeScript { get; set; }
|
||||
|
||||
[JsonPropertyName("template_type")]
|
||||
public virtual string TemplateType { get; set; } = TemplateTypeEnum.ProgramCode;
|
||||
|
||||
|
|
|
|||
|
|
@ -140,11 +140,11 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
{
|
||||
if (message.Role == AgentRole.User)
|
||||
{
|
||||
messages.Add(new Message(RoleType.User, message.RoleContent));
|
||||
messages.Add(new Message(RoleType.User, message.LlmContent));
|
||||
}
|
||||
else if (message.Role == AgentRole.Assistant)
|
||||
{
|
||||
messages.Add(new Message(RoleType.Assistant, message.RoleContent));
|
||||
messages.Add(new Message(RoleType.Assistant, message.LlmContent));
|
||||
}
|
||||
else if (message.Role == AgentRole.Function)
|
||||
{
|
||||
|
|
@ -170,7 +170,7 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
new ToolResultContent()
|
||||
{
|
||||
ToolUseId = message.ToolCallId,
|
||||
Content = [new TextContent() { Text = message.RoleContent }]
|
||||
Content = [new TextContent() { Text = message.LlmContent }]
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -432,11 +432,11 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
ChatToolCall.CreateFunctionToolCall(message.ToolCallId.IfNullOrEmptyAs(message.FunctionName), message.FunctionName, BinaryData.FromString(message.FunctionArgs ?? "{}"))
|
||||
}));
|
||||
|
||||
messages.Add(new ToolChatMessage(message.ToolCallId.IfNullOrEmptyAs(message.FunctionName), message.RoleContent));
|
||||
messages.Add(new ToolChatMessage(message.ToolCallId.IfNullOrEmptyAs(message.FunctionName), message.LlmContent));
|
||||
}
|
||||
else if (message.Role == AgentRole.User)
|
||||
{
|
||||
var text = message.RoleContent;
|
||||
var text = message.LlmContent;
|
||||
var textPart = ChatMessageContentPart.CreateTextPart(text);
|
||||
var contentParts = new List<ChatMessageContentPart> { textPart };
|
||||
|
||||
|
|
@ -448,7 +448,7 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
}
|
||||
else if (message.Role == AgentRole.Assistant)
|
||||
{
|
||||
var text = message.RoleContent;
|
||||
var text = message.LlmContent;
|
||||
var textPart = ChatMessageContentPart.CreateTextPart(text);
|
||||
var contentParts = new List<ChatMessageContentPart> { textPart };
|
||||
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ public class PlotChartFn : IFunctionCallback
|
|||
Message = new ProgramCodeTemplateMessage
|
||||
{
|
||||
Text = ret?.JsCode ?? string.Empty,
|
||||
CodeScript = ret?.JsCode,
|
||||
Language = "javascript"
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -399,11 +399,11 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
ChatToolCall.CreateFunctionToolCall(message.ToolCallId.IfNullOrEmptyAs(message.FunctionName), message.FunctionName, BinaryData.FromString(message.FunctionArgs ?? "{}"))
|
||||
}));
|
||||
|
||||
messages.Add(new ToolChatMessage(message.ToolCallId.IfNullOrEmptyAs(message.FunctionName), message.RoleContent));
|
||||
messages.Add(new ToolChatMessage(message.ToolCallId.IfNullOrEmptyAs(message.FunctionName), message.LlmContent));
|
||||
}
|
||||
else if (message.Role == AgentRole.User)
|
||||
{
|
||||
var text = message.RoleContent;
|
||||
var text = message.LlmContent;
|
||||
var textPart = ChatMessageContentPart.CreateTextPart(text);
|
||||
var contentParts = new List<ChatMessageContentPart> { textPart };
|
||||
|
||||
|
|
@ -415,7 +415,7 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
}
|
||||
else if (message.Role == AgentRole.Assistant)
|
||||
{
|
||||
var text = message.RoleContent;
|
||||
var text = message.LlmContent;
|
||||
var textPart = ChatMessageContentPart.CreateTextPart(text);
|
||||
var contentParts = new List<ChatMessageContentPart> { textPart };
|
||||
|
||||
|
|
|
|||
|
|
@ -263,17 +263,17 @@ public class GeminiChatCompletionProvider : IChatCompletion
|
|||
Name = message.FunctionName,
|
||||
Response = new JsonObject()
|
||||
{
|
||||
["result"] = message.RoleContent ?? string.Empty
|
||||
["result"] = message.LlmContent ?? string.Empty
|
||||
}
|
||||
}
|
||||
}
|
||||
], AgentRole.Function));
|
||||
|
||||
convPrompts.Add($"{AgentRole.Assistant}: Call function {message.FunctionName}({message.FunctionArgs}) => {message.RoleContent}");
|
||||
convPrompts.Add($"{AgentRole.Assistant}: Call function {message.FunctionName}({message.FunctionArgs}) => {message.LlmContent}");
|
||||
}
|
||||
else if (message.Role == AgentRole.User)
|
||||
{
|
||||
var text = message.RoleContent;
|
||||
var text = message.LlmContent;
|
||||
var contentParts = new List<Part> { new() { Text = text } };
|
||||
|
||||
if (allowMultiModal && !message.Files.IsNullOrEmpty())
|
||||
|
|
@ -285,7 +285,7 @@ public class GeminiChatCompletionProvider : IChatCompletion
|
|||
}
|
||||
else if (message.Role == AgentRole.Assistant)
|
||||
{
|
||||
var text = message.RoleContent;
|
||||
var text = message.LlmContent;
|
||||
var contentParts = new List<Part> { new() { Text = text } };
|
||||
|
||||
if (allowMultiModal && !message.Files.IsNullOrEmpty())
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ public class PalmChatCompletionProvider : IChatCompletion
|
|||
renderedInstructions.Add(prompt);
|
||||
}
|
||||
|
||||
var messages = conversations.Select(c => new PalmChatMessage(c.RoleContent, c.Role == AgentRole.User ? "user" : "AI"))
|
||||
var messages = conversations.Select(c => new PalmChatMessage(c.LlmContent, c.Role == AgentRole.User ? "user" : "AI"))
|
||||
.ToList();
|
||||
|
||||
if (!functions.IsNullOrEmpty())
|
||||
|
|
@ -124,8 +124,8 @@ public class PalmChatCompletionProvider : IChatCompletion
|
|||
foreach (var dialog in conversations)
|
||||
{
|
||||
prompt += dialog.Role == AgentRole.Function ?
|
||||
$"{dialog.Role}: {dialog.FunctionName} => {dialog.RoleContent}\r\n" :
|
||||
$"{dialog.Role}: {dialog.RoleContent}\r\n";
|
||||
$"{dialog.Role}: {dialog.FunctionName} => {dialog.LlmContent}\r\n" :
|
||||
$"{dialog.Role}: {dialog.LlmContent}\r\n";
|
||||
}
|
||||
|
||||
prompt += "\r\n\r\n" + router.Templates.FirstOrDefault(x => x.Name == "response_with_function").Content;
|
||||
|
|
|
|||
|
|
@ -567,25 +567,25 @@ public class GoogleRealTimeProvider : IRealTimeCompletion
|
|||
Name = message.FunctionName ?? string.Empty,
|
||||
Response = new JsonObject()
|
||||
{
|
||||
["result"] = message.RoleContent ?? string.Empty
|
||||
["result"] = message.LlmContent ?? string.Empty
|
||||
}
|
||||
}
|
||||
}
|
||||
], AgentRole.Function));
|
||||
|
||||
convPrompts.Add(
|
||||
$"{AgentRole.Assistant}: Call function {message.FunctionName}({message.FunctionArgs}) => {message.RoleContent}");
|
||||
$"{AgentRole.Assistant}: Call function {message.FunctionName}({message.FunctionArgs}) => {message.LlmContent}");
|
||||
}
|
||||
else if (message.Role == AgentRole.User)
|
||||
{
|
||||
var text = message.RoleContent;
|
||||
var text = message.LlmContent;
|
||||
contents.Add(new Content(text, AgentRole.User));
|
||||
convPrompts.Add($"{AgentRole.User}: {text}");
|
||||
}
|
||||
else if (message.Role == AgentRole.Assistant)
|
||||
{
|
||||
contents.Add(new Content(message.RoleContent, AgentRole.Model));
|
||||
convPrompts.Add($"{AgentRole.Assistant}: {message.RoleContent}");
|
||||
contents.Add(new Content(message.LlmContent, AgentRole.Model));
|
||||
convPrompts.Add($"{AgentRole.Assistant}: {message.LlmContent}");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
await hook.BeforeGenerating(agent, conversations);
|
||||
}
|
||||
|
||||
var content = string.Join("\r\n", conversations.Select(x => $"{x.Role}: {x.RoleContent}")).Trim();
|
||||
var content = string.Join("\r\n", conversations.Select(x => $"{x.Role}: {x.LlmContent}")).Trim();
|
||||
content += $"\r\n{AgentRole.Assistant}: ";
|
||||
|
||||
var llama = _services.GetRequiredService<LlamaAiModel>();
|
||||
|
|
@ -118,7 +118,7 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
Func<RoleDialogModel, Task> onMessageReceived,
|
||||
Func<RoleDialogModel, Task> onFunctionExecuting)
|
||||
{
|
||||
var content = string.Join("\r\n", conversations.Select(x => $"{x.Role}: {x.RoleContent}")).Trim();
|
||||
var content = string.Join("\r\n", conversations.Select(x => $"{x.Role}: {x.LlmContent}")).Trim();
|
||||
content += $"\r\n{AgentRole.Assistant}: ";
|
||||
|
||||
var state = _services.GetRequiredService<IConversationStateService>();
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ namespace BotSharp.Plugin.VertexAI.Providers
|
|||
var client = new VertexAIProvider(_config);
|
||||
var model = new VertexAIChatModel(client, _model);
|
||||
var messages = conversations
|
||||
.Select(c => new Message(c.RoleContent, c.Role == AgentRole.User ? MessageRole.Human : MessageRole.Ai)).ToList();
|
||||
.Select(c => new Message(c.LlmContent, c.Role == AgentRole.User ? MessageRole.Human : MessageRole.Ai)).ToList();
|
||||
|
||||
var response = await model.GenerateAsync(new ChatRequest { Messages = messages }, _settings);
|
||||
|
||||
|
|
|
|||
|
|
@ -111,8 +111,8 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
foreach (var message in samples)
|
||||
{
|
||||
messages.Add(message.Role == AgentRole.User ?
|
||||
new MessageItem("user", message.RoleContent) :
|
||||
new MessageItem("assistant", message.RoleContent));
|
||||
new MessageItem("user", message.LlmContent) :
|
||||
new MessageItem("assistant", message.LlmContent));
|
||||
}
|
||||
|
||||
foreach (var function in functions)
|
||||
|
|
@ -129,13 +129,13 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
}
|
||||
else if (message.Role == "user")
|
||||
{
|
||||
var userMessage = new MessageItem("user",message.RoleContent);
|
||||
var userMessage = new MessageItem("user",message.LlmContent);
|
||||
|
||||
messages.Add(userMessage);
|
||||
}
|
||||
else if (message.Role == "assistant")
|
||||
{
|
||||
messages.Add(new MessageItem("assistant", message.RoleContent));
|
||||
messages.Add(new MessageItem("assistant", message.LlmContent));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -109,16 +109,16 @@ public sealed class MicrosoftExtensionsAIChatCompletionProvider : IChatCompletio
|
|||
messages.Add(new(ChatRole.Assistant,
|
||||
[
|
||||
new FunctionCallContent(x.FunctionName, x.FunctionName, JsonSerializer.Deserialize<Dictionary<string, object?>>(x.FunctionArgs ?? "{}")),
|
||||
new FunctionResultContent(x.FunctionName, x.RoleContent)
|
||||
new FunctionResultContent(x.FunctionName, x.LlmContent)
|
||||
]));
|
||||
}
|
||||
else if (x.Role == AgentRole.System || x.Role == AgentRole.Assistant)
|
||||
{
|
||||
messages.Add(new(x.Role == AgentRole.System ? ChatRole.System : ChatRole.Assistant, x.RoleContent));
|
||||
messages.Add(new(x.Role == AgentRole.System ? ChatRole.System : ChatRole.Assistant, x.LlmContent));
|
||||
}
|
||||
else if (x.Role == AgentRole.User)
|
||||
{
|
||||
List<AIContent> contents = [new TextContent(x.RoleContent)];
|
||||
List<AIContent> contents = [new TextContent(x.LlmContent)];
|
||||
if (allowMultiModal)
|
||||
{
|
||||
foreach (var file in x.Files)
|
||||
|
|
|
|||
|
|
@ -402,11 +402,11 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
ChatToolCall.CreateFunctionToolCall(message.ToolCallId.IfNullOrEmptyAs(message.FunctionName), message.FunctionName, BinaryData.FromString(message.FunctionArgs ?? "{}"))
|
||||
}));
|
||||
|
||||
messages.Add(new ToolChatMessage(message.ToolCallId.IfNullOrEmptyAs(message.FunctionName), message.RoleContent));
|
||||
messages.Add(new ToolChatMessage(message.ToolCallId.IfNullOrEmptyAs(message.FunctionName), message.LlmContent));
|
||||
}
|
||||
else if (message.Role == AgentRole.User)
|
||||
{
|
||||
var text = message.RoleContent;
|
||||
var text = message.LlmContent;
|
||||
var textPart = ChatMessageContentPart.CreateTextPart(text);
|
||||
var contentParts = new List<ChatMessageContentPart> { textPart };
|
||||
|
||||
|
|
@ -418,7 +418,7 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
}
|
||||
else if (message.Role == AgentRole.Assistant)
|
||||
{
|
||||
var text = message.RoleContent;
|
||||
var text = message.LlmContent;
|
||||
var textPart = ChatMessageContentPart.CreateTextPart(text);
|
||||
var contentParts = new List<ChatMessageContentPart> { textPart };
|
||||
|
||||
|
|
|
|||
|
|
@ -621,15 +621,15 @@ public class RealTimeCompletionProvider : IRealTimeCompletion
|
|||
ChatToolCall.CreateFunctionToolCall(message.ToolCallId.IfNullOrEmptyAs(message.FunctionName), message.FunctionName, BinaryData.FromString(message.FunctionArgs ?? "{}"))
|
||||
}));
|
||||
|
||||
messages.Add(new ToolChatMessage(message.ToolCallId.IfNullOrEmptyAs(message.FunctionName), message.RoleContent));
|
||||
messages.Add(new ToolChatMessage(message.ToolCallId.IfNullOrEmptyAs(message.FunctionName), message.LlmContent));
|
||||
}
|
||||
else if (message.Role == AgentRole.User)
|
||||
{
|
||||
messages.Add(new UserChatMessage(message.RoleContent));
|
||||
messages.Add(new UserChatMessage(message.LlmContent));
|
||||
}
|
||||
else if (message.Role == AgentRole.Assistant)
|
||||
{
|
||||
messages.Add(new AssistantChatMessage(message.RoleContent));
|
||||
messages.Add(new AssistantChatMessage(message.LlmContent));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,8 @@ public class PyProgrammerFn : IFunctionCallback
|
|||
Recipient = new Recipient { Id = convService.ConversationId },
|
||||
Message = new ProgramCodeTemplateMessage
|
||||
{
|
||||
Text = ret.PythonCode ?? string.Empty,
|
||||
Text = result,
|
||||
CodeScript = ret.PythonCode,
|
||||
Language = "python"
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -269,13 +269,13 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
}
|
||||
else if (message.Role == "user")
|
||||
{
|
||||
var userMessage = ChatMessage.FromUser(message.RoleContent);
|
||||
var userMessage = ChatMessage.FromUser(message.LlmContent);
|
||||
|
||||
messages.Add(userMessage);
|
||||
}
|
||||
else if (message.Role == "assistant")
|
||||
{
|
||||
messages.Add(ChatMessage.FromAssistant(message.RoleContent));
|
||||
messages.Add(ChatMessage.FromAssistant(message.LlmContent));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue