clean code
This commit is contained in:
parent
85ebbff829
commit
ac72106e11
|
|
@ -12,8 +12,9 @@ public partial class AgentService
|
|||
var conv = _services.GetRequiredService<IConversationService>();
|
||||
|
||||
// merge instructions
|
||||
var texts = new List<string> { agent.Instruction };
|
||||
texts.AddRange(agent.SecondaryInstructions ?? []);
|
||||
var instructions = new List<string> { agent.Instruction };
|
||||
var secondaryInstructions = agent.SecondaryInstructions?.Where(x => !string.IsNullOrWhiteSpace(x)).ToList() ?? [];
|
||||
instructions.AddRange(secondaryInstructions);
|
||||
|
||||
// update states
|
||||
foreach (var t in conv.States.GetStates())
|
||||
|
|
@ -21,7 +22,7 @@ public partial class AgentService
|
|||
agent.TemplateDict[t.Key] = t.Value;
|
||||
}
|
||||
|
||||
var res = render.Render(string.Join("\r\n", texts), agent.TemplateDict);
|
||||
var res = render.Render(string.Join("\r\n", instructions), agent.TemplateDict);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
|
||||
var agentService = _services.GetRequiredService<IAgentService>();
|
||||
|
||||
if (!string.IsNullOrEmpty(agent.Instruction))
|
||||
if (!string.IsNullOrEmpty(agent.Instruction) || !agent.SecondaryInstructions.IsNullOrEmpty())
|
||||
{
|
||||
instruction += agentService.RenderedInstruction(agent);
|
||||
}
|
||||
|
|
@ -197,7 +197,8 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
ReferenceHandler = ReferenceHandler.IgnoreCycles,
|
||||
};
|
||||
|
||||
foreach (var fn in agent.Functions)
|
||||
var functions = agent.Functions.Concat(agent.SecondaryFunctions ?? []);
|
||||
foreach (var fn in functions)
|
||||
{
|
||||
/*var inputschema = new InputSchema()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -230,7 +230,8 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
MaxOutputTokenCount = maxTokens
|
||||
};
|
||||
|
||||
foreach (var function in agent.Functions)
|
||||
var functions = agent.Functions.Concat(agent.SecondaryFunctions ?? []);
|
||||
foreach (var function in functions)
|
||||
{
|
||||
if (!agentService.RenderFunction(agent, function)) continue;
|
||||
|
||||
|
|
@ -242,7 +243,7 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
functionParameters: BinaryData.FromObjectAsJson(property)));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(agent.Instruction))
|
||||
if (!string.IsNullOrEmpty(agent.Instruction) || !agent.SecondaryInstructions.IsNullOrEmpty())
|
||||
{
|
||||
var instruction = agentService.RenderedInstruction(agent);
|
||||
messages.Add(new SystemChatMessage(instruction));
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ public class GeminiChatCompletionProvider : IChatCompletion
|
|||
var funcDeclarations = new List<FunctionDeclaration>();
|
||||
|
||||
var systemPrompts = new List<string>();
|
||||
if (!string.IsNullOrEmpty(agent.Instruction))
|
||||
if (!string.IsNullOrEmpty(agent.Instruction) || !agent.SecondaryInstructions.IsNullOrEmpty())
|
||||
{
|
||||
var instruction = agentService.RenderedInstruction(agent);
|
||||
contents.Add(new Content(instruction)
|
||||
|
|
@ -119,7 +119,8 @@ public class GeminiChatCompletionProvider : IChatCompletion
|
|||
}
|
||||
|
||||
var funcPrompts = new List<string>();
|
||||
foreach (var function in agent.Functions)
|
||||
var functions = agent.Functions.Concat(agent.SecondaryFunctions ?? []);
|
||||
foreach (var function in functions)
|
||||
{
|
||||
if (!agentService.RenderFunction(agent, function)) continue;
|
||||
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ public class PalmChatCompletionProvider : IChatCompletion
|
|||
|
||||
var agentService = _services.GetRequiredService<IAgentService>();
|
||||
|
||||
if (!string.IsNullOrEmpty(agent.Instruction))
|
||||
if (!string.IsNullOrEmpty(agent.Instruction) || !agent.SecondaryInstructions.IsNullOrEmpty())
|
||||
{
|
||||
prompt += agentService.RenderedInstruction(agent);
|
||||
}
|
||||
|
|
@ -110,10 +110,11 @@ public class PalmChatCompletionProvider : IChatCompletion
|
|||
var messages = conversations.Select(c => new PalmChatMessage(c.Content, c.Role == AgentRole.User ? "user" : "AI"))
|
||||
.ToList();
|
||||
|
||||
if (agent.Functions != null && agent.Functions.Count > 0)
|
||||
var functions = agent.Functions.Concat(agent.SecondaryFunctions ?? []);
|
||||
if (!functions.IsNullOrEmpty())
|
||||
{
|
||||
prompt += "\r\n\r\n[Functions] defined in JSON Schema:\r\n";
|
||||
prompt += JsonSerializer.Serialize(agent.Functions, new JsonSerializerOptions
|
||||
prompt += JsonSerializer.Serialize(functions, new JsonSerializerOptions
|
||||
{
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
||||
WriteIndented = true
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
using BotSharp.Abstraction.Utilities;
|
||||
|
||||
namespace BotSharp.Plugin.MetaGLM.Providers;
|
||||
|
||||
public class ChatCompletionProvider : IChatCompletion
|
||||
|
|
@ -86,7 +88,7 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
List<MessageItem> messages = new List<MessageItem>();
|
||||
List<FunctionTool> toolcalls = new List<FunctionTool>();
|
||||
|
||||
if (!string.IsNullOrEmpty(agent.Instruction))
|
||||
if (!string.IsNullOrEmpty(agent.Instruction) || !agent.SecondaryInstructions.IsNullOrEmpty())
|
||||
{
|
||||
var instruction = agentService.RenderedInstruction(agent);
|
||||
messages.Add(new MessageItem("system", instruction));
|
||||
|
|
@ -105,7 +107,8 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
new MessageItem("assistant", message.Content));
|
||||
}
|
||||
|
||||
foreach (var function in agent.Functions)
|
||||
var functions = agent.Functions.Concat(agent.SecondaryFunctions ?? []);
|
||||
foreach (var function in functions)
|
||||
{
|
||||
var functionTool = ConvertToFunctionTool(function);
|
||||
toolcalls.Add(functionTool);
|
||||
|
|
|
|||
|
|
@ -66,7 +66,8 @@ public sealed class MicrosoftExtensionsAIChatCompletionProvider : IChatCompletio
|
|||
|
||||
if (_services.GetService<IAgentService>() is { } agentService)
|
||||
{
|
||||
foreach (var function in agent.Functions)
|
||||
var functions = agent.Functions.Concat(agent.SecondaryFunctions ?? []);
|
||||
foreach (var function in functions)
|
||||
{
|
||||
if (agentService.RenderFunction(agent, function))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -210,7 +210,6 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
MaxOutputTokenCount = maxTokens
|
||||
};
|
||||
|
||||
|
||||
var functions = agent.Functions.Concat(agent.SecondaryFunctions ?? []);
|
||||
foreach (var function in functions)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
var agentService = _services.GetRequiredService<IAgentService>();
|
||||
var messages = new List<ChatMessage>();
|
||||
|
||||
if (!string.IsNullOrEmpty(agent.Instruction))
|
||||
if (!string.IsNullOrEmpty(agent.Instruction) || !agent.SecondaryInstructions.IsNullOrEmpty())
|
||||
{
|
||||
var instruction = agentService.RenderedInstruction(agent);
|
||||
messages.Add(ChatMessage.FromSystem(instruction));
|
||||
|
|
@ -193,7 +193,8 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
ChatMessage.FromAssistant(message.Content));
|
||||
}
|
||||
|
||||
foreach (var function in agent.Functions)
|
||||
var agentFuncs = agent.Functions.Concat(agent.SecondaryFunctions ?? []);
|
||||
foreach (var function in agentFuncs)
|
||||
{
|
||||
functions.Add(ConvertToFunctionDef(function));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue