sync mongo
This commit is contained in:
parent
28e3518e41
commit
835a3c71ef
|
|
@ -80,10 +80,10 @@ public class LlmImageEditConfig : LlmProviderModel
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public class LlmRealtimeConfig : LlmProviderModel
|
public class LlmAudioTranscriptionConfig : LlmProviderModel
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public class LlmAudioTranscriptionConfig : LlmProviderModel
|
public class LlmRealtimeConfig : LlmProviderModel
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -26,7 +26,7 @@ public class AgentDocument : MongoBase
|
||||||
public List<string> Labels { get; set; }
|
public List<string> Labels { get; set; }
|
||||||
public List<RoutingRuleMongoElement> RoutingRules { get; set; }
|
public List<RoutingRuleMongoElement> RoutingRules { get; set; }
|
||||||
public List<AgentRuleMongoElement> Rules { get; set; }
|
public List<AgentRuleMongoElement> Rules { get; set; }
|
||||||
public AgentLlmConfigMongoElement? LlmConfig { get; set; }
|
public AgentLlmConfigMongoModel? LlmConfig { get; set; }
|
||||||
|
|
||||||
public DateTime CreatedTime { get; set; }
|
public DateTime CreatedTime { get; set; }
|
||||||
public DateTime UpdatedTime { get; set; }
|
public DateTime UpdatedTime { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
using BotSharp.Abstraction.Agents.Models;
|
|
||||||
|
|
||||||
namespace BotSharp.Plugin.MongoStorage.Models;
|
|
||||||
|
|
||||||
[BsonIgnoreExtraElements(Inherited = true)]
|
|
||||||
public class AgentLlmConfigMongoElement
|
|
||||||
{
|
|
||||||
public string? Provider { get; set; }
|
|
||||||
public string? Model { get; set; }
|
|
||||||
public bool IsInherit { get; set; }
|
|
||||||
public int MaxRecursionDepth { get; set; }
|
|
||||||
public int? MaxOutputTokens { get; set; }
|
|
||||||
public string? ReasoningEffortLevel { get; set; }
|
|
||||||
|
|
||||||
public static AgentLlmConfigMongoElement? ToMongoElement(AgentLlmConfig? config)
|
|
||||||
{
|
|
||||||
if (config == null) return null;
|
|
||||||
|
|
||||||
return new AgentLlmConfigMongoElement
|
|
||||||
{
|
|
||||||
Provider = config.Provider,
|
|
||||||
Model = config.Model,
|
|
||||||
IsInherit = config.IsInherit,
|
|
||||||
MaxRecursionDepth = config.MaxRecursionDepth,
|
|
||||||
MaxOutputTokens = config.MaxOutputTokens,
|
|
||||||
ReasoningEffortLevel = config.ReasoningEffortLevel
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public static AgentLlmConfig? ToDomainElement(AgentLlmConfigMongoElement? config)
|
|
||||||
{
|
|
||||||
if (config == null) return null;
|
|
||||||
|
|
||||||
return new AgentLlmConfig
|
|
||||||
{
|
|
||||||
Provider = config.Provider,
|
|
||||||
Model = config.Model,
|
|
||||||
IsInherit = config.IsInherit,
|
|
||||||
MaxRecursionDepth = config.MaxRecursionDepth,
|
|
||||||
MaxOutputTokens = config.MaxOutputTokens,
|
|
||||||
ReasoningEffortLevel = config.ReasoningEffortLevel
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,193 @@
|
||||||
|
using BotSharp.Abstraction.Agents.Models;
|
||||||
|
|
||||||
|
namespace BotSharp.Plugin.MongoStorage.Models;
|
||||||
|
|
||||||
|
[BsonIgnoreExtraElements(Inherited = true)]
|
||||||
|
public class AgentLlmConfigMongoModel
|
||||||
|
{
|
||||||
|
public string? Provider { get; set; }
|
||||||
|
public string? Model { get; set; }
|
||||||
|
public bool IsInherit { get; set; }
|
||||||
|
public int MaxRecursionDepth { get; set; }
|
||||||
|
public int? MaxOutputTokens { get; set; }
|
||||||
|
public string? ReasoningEffortLevel { get; set; }
|
||||||
|
|
||||||
|
public LlmImageGenerationConfigMongoModel? ImageGeneration { get; set; }
|
||||||
|
public LlmImageEditConfigMongoModel? ImageEdit { get; set; }
|
||||||
|
public LlmAudioTranscriptionConfigMongoModel? AudioTranscription { get; set; }
|
||||||
|
public LlmRealtimeConfigMongoModel? Realtime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static AgentLlmConfigMongoModel? ToMongoElement(AgentLlmConfig? config)
|
||||||
|
{
|
||||||
|
if (config == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new AgentLlmConfigMongoModel
|
||||||
|
{
|
||||||
|
Provider = config.Provider,
|
||||||
|
Model = config.Model,
|
||||||
|
IsInherit = config.IsInherit,
|
||||||
|
MaxRecursionDepth = config.MaxRecursionDepth,
|
||||||
|
MaxOutputTokens = config.MaxOutputTokens,
|
||||||
|
ReasoningEffortLevel = config.ReasoningEffortLevel,
|
||||||
|
ImageGeneration = LlmImageGenerationConfigMongoModel.ToMongoModel(config.ImageGeneration),
|
||||||
|
ImageEdit = LlmImageEditConfigMongoModel.ToMongoModel(config.ImageEdit),
|
||||||
|
AudioTranscription = LlmAudioTranscriptionConfigMongoModel.ToMongoModel(config.AudioTranscription),
|
||||||
|
Realtime = LlmRealtimeConfigMongoModel.ToMongoModel(config.Realtime)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static AgentLlmConfig? ToDomainElement(AgentLlmConfigMongoModel? config)
|
||||||
|
{
|
||||||
|
if (config == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new AgentLlmConfig
|
||||||
|
{
|
||||||
|
Provider = config.Provider,
|
||||||
|
Model = config.Model,
|
||||||
|
IsInherit = config.IsInherit,
|
||||||
|
MaxRecursionDepth = config.MaxRecursionDepth,
|
||||||
|
MaxOutputTokens = config.MaxOutputTokens,
|
||||||
|
ReasoningEffortLevel = config.ReasoningEffortLevel,
|
||||||
|
ImageGeneration = LlmImageGenerationConfigMongoModel.ToDomainModel(config.ImageGeneration),
|
||||||
|
ImageEdit = LlmImageEditConfigMongoModel.ToDomainModel(config.ImageEdit),
|
||||||
|
AudioTranscription = LlmAudioTranscriptionConfigMongoModel.ToDomainModel(config.AudioTranscription),
|
||||||
|
Realtime = LlmRealtimeConfigMongoModel.ToDomainModel(config.Realtime)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[BsonIgnoreExtraElements(Inherited = true)]
|
||||||
|
public class LlmImageGenerationConfigMongoModel : LlmProviderModelMongoModel
|
||||||
|
{
|
||||||
|
public static LlmImageGenerationConfig? ToDomainModel(LlmImageGenerationConfigMongoModel? config)
|
||||||
|
{
|
||||||
|
if (config == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new LlmImageGenerationConfig
|
||||||
|
{
|
||||||
|
Provider = config.Provider,
|
||||||
|
Model = config.Model,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LlmImageGenerationConfigMongoModel? ToMongoModel(LlmImageGenerationConfig? config)
|
||||||
|
{
|
||||||
|
if (config == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new LlmImageGenerationConfigMongoModel
|
||||||
|
{
|
||||||
|
Provider = config.Provider,
|
||||||
|
Model = config.Model,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[BsonIgnoreExtraElements(Inherited = true)]
|
||||||
|
public class LlmImageEditConfigMongoModel : LlmProviderModelMongoModel
|
||||||
|
{
|
||||||
|
public static LlmImageEditConfig? ToDomainModel(LlmImageEditConfigMongoModel? config)
|
||||||
|
{
|
||||||
|
if (config == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new LlmImageEditConfig
|
||||||
|
{
|
||||||
|
Provider = config.Provider,
|
||||||
|
Model = config.Model,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LlmImageEditConfigMongoModel? ToMongoModel(LlmImageEditConfig? config)
|
||||||
|
{
|
||||||
|
if (config == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new LlmImageEditConfigMongoModel
|
||||||
|
{
|
||||||
|
Provider = config.Provider,
|
||||||
|
Model = config.Model,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[BsonIgnoreExtraElements(Inherited = true)]
|
||||||
|
public class LlmAudioTranscriptionConfigMongoModel : LlmProviderModelMongoModel
|
||||||
|
{
|
||||||
|
public static LlmAudioTranscriptionConfig? ToDomainModel(LlmAudioTranscriptionConfigMongoModel? config)
|
||||||
|
{
|
||||||
|
if (config == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new LlmAudioTranscriptionConfig
|
||||||
|
{
|
||||||
|
Provider = config.Provider,
|
||||||
|
Model = config.Model,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LlmAudioTranscriptionConfigMongoModel? ToMongoModel(LlmAudioTranscriptionConfig? config)
|
||||||
|
{
|
||||||
|
if (config == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new LlmAudioTranscriptionConfigMongoModel
|
||||||
|
{
|
||||||
|
Provider = config.Provider,
|
||||||
|
Model = config.Model,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[BsonIgnoreExtraElements(Inherited = true)]
|
||||||
|
public class LlmRealtimeConfigMongoModel : LlmProviderModelMongoModel
|
||||||
|
{
|
||||||
|
public static LlmRealtimeConfig? ToDomainModel(LlmRealtimeConfigMongoModel? config)
|
||||||
|
{
|
||||||
|
if (config == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new LlmRealtimeConfig
|
||||||
|
{
|
||||||
|
Provider = config.Provider,
|
||||||
|
Model = config.Model,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LlmRealtimeConfigMongoModel? ToMongoModel(LlmRealtimeConfig? config)
|
||||||
|
{
|
||||||
|
if (config == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new LlmRealtimeConfigMongoModel
|
||||||
|
{
|
||||||
|
Provider = config.Provider,
|
||||||
|
Model = config.Model,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
using BotSharp.Abstraction.Models;
|
||||||
|
|
||||||
|
namespace BotSharp.Plugin.MongoStorage.Models;
|
||||||
|
|
||||||
|
[BsonIgnoreExtraElements(Inherited = true)]
|
||||||
|
public class LlmProviderModelMongoModel
|
||||||
|
{
|
||||||
|
public string? Provider { get; set; }
|
||||||
|
public string? Model { get; set; }
|
||||||
|
|
||||||
|
public static LlmProviderModel? ToDomainModel(LlmProviderModelMongoModel? config)
|
||||||
|
{
|
||||||
|
if (config == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new LlmProviderModel
|
||||||
|
{
|
||||||
|
Provider = config.Provider,
|
||||||
|
Model = config.Model,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LlmProviderModelMongoModel? ToMongoModel(LlmProviderModel? config)
|
||||||
|
{
|
||||||
|
if (config == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new LlmProviderModelMongoModel
|
||||||
|
{
|
||||||
|
Provider = config.Provider,
|
||||||
|
Model = config.Model,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -333,7 +333,7 @@ public partial class MongoRepository
|
||||||
|
|
||||||
private void UpdateAgentLlmConfig(string agentId, AgentLlmConfig? config)
|
private void UpdateAgentLlmConfig(string agentId, AgentLlmConfig? config)
|
||||||
{
|
{
|
||||||
var llmConfig = AgentLlmConfigMongoElement.ToMongoElement(config);
|
var llmConfig = AgentLlmConfigMongoModel.ToMongoElement(config);
|
||||||
var filter = Builders<AgentDocument>.Filter.Eq(x => x.Id, agentId);
|
var filter = Builders<AgentDocument>.Filter.Eq(x => x.Id, agentId);
|
||||||
var update = Builders<AgentDocument>.Update
|
var update = Builders<AgentDocument>.Update
|
||||||
.Set(x => x.LlmConfig, llmConfig)
|
.Set(x => x.LlmConfig, llmConfig)
|
||||||
|
|
@ -377,7 +377,7 @@ public partial class MongoRepository
|
||||||
.Set(x => x.McpTools, agent.McpTools.Select(u => AgentMcpToolMongoElement.ToMongoElement(u)).ToList())
|
.Set(x => x.McpTools, agent.McpTools.Select(u => AgentMcpToolMongoElement.ToMongoElement(u)).ToList())
|
||||||
.Set(x => x.KnowledgeBases, agent.KnowledgeBases.Select(u => AgentKnowledgeBaseMongoElement.ToMongoElement(u)).ToList())
|
.Set(x => x.KnowledgeBases, agent.KnowledgeBases.Select(u => AgentKnowledgeBaseMongoElement.ToMongoElement(u)).ToList())
|
||||||
.Set(x => x.Rules, agent.Rules.Select(e => AgentRuleMongoElement.ToMongoElement(e)).ToList())
|
.Set(x => x.Rules, agent.Rules.Select(e => AgentRuleMongoElement.ToMongoElement(e)).ToList())
|
||||||
.Set(x => x.LlmConfig, AgentLlmConfigMongoElement.ToMongoElement(agent.LlmConfig))
|
.Set(x => x.LlmConfig, AgentLlmConfigMongoModel.ToMongoElement(agent.LlmConfig))
|
||||||
.Set(x => x.IsPublic, agent.IsPublic)
|
.Set(x => x.IsPublic, agent.IsPublic)
|
||||||
.Set(x => x.UpdatedTime, DateTime.UtcNow);
|
.Set(x => x.UpdatedTime, DateTime.UtcNow);
|
||||||
|
|
||||||
|
|
@ -550,7 +550,7 @@ public partial class MongoRepository
|
||||||
MaxMessageCount = x.MaxMessageCount,
|
MaxMessageCount = x.MaxMessageCount,
|
||||||
Profiles = x.Profiles ?? [],
|
Profiles = x.Profiles ?? [],
|
||||||
Labels = x.Labels ?? [],
|
Labels = x.Labels ?? [],
|
||||||
LlmConfig = AgentLlmConfigMongoElement.ToMongoElement(x.LlmConfig),
|
LlmConfig = AgentLlmConfigMongoModel.ToMongoElement(x.LlmConfig),
|
||||||
ChannelInstructions = x.ChannelInstructions?.Select(i => ChannelInstructionMongoElement.ToMongoElement(i))?.ToList() ?? [],
|
ChannelInstructions = x.ChannelInstructions?.Select(i => ChannelInstructionMongoElement.ToMongoElement(i))?.ToList() ?? [],
|
||||||
Templates = x.Templates?.Select(t => AgentTemplateMongoElement.ToMongoElement(t))?.ToList() ?? [],
|
Templates = x.Templates?.Select(t => AgentTemplateMongoElement.ToMongoElement(t))?.ToList() ?? [],
|
||||||
Functions = x.Functions?.Select(f => FunctionDefMongoElement.ToMongoElement(f))?.ToList() ?? [],
|
Functions = x.Functions?.Select(f => FunctionDefMongoElement.ToMongoElement(f))?.ToList() ?? [],
|
||||||
|
|
@ -651,7 +651,7 @@ public partial class MongoRepository
|
||||||
Profiles = agentDoc.Profiles ?? [],
|
Profiles = agentDoc.Profiles ?? [],
|
||||||
Labels = agentDoc.Labels ?? [],
|
Labels = agentDoc.Labels ?? [],
|
||||||
MaxMessageCount = agentDoc.MaxMessageCount,
|
MaxMessageCount = agentDoc.MaxMessageCount,
|
||||||
LlmConfig = AgentLlmConfigMongoElement.ToDomainElement(agentDoc.LlmConfig),
|
LlmConfig = AgentLlmConfigMongoModel.ToDomainElement(agentDoc.LlmConfig),
|
||||||
ChannelInstructions = agentDoc.ChannelInstructions?.Select(i => ChannelInstructionMongoElement.ToDomainElement(i))?.ToList() ?? [],
|
ChannelInstructions = agentDoc.ChannelInstructions?.Select(i => ChannelInstructionMongoElement.ToDomainElement(i))?.ToList() ?? [],
|
||||||
Templates = agentDoc.Templates?.Select(t => AgentTemplateMongoElement.ToDomainElement(t))?.ToList() ?? [],
|
Templates = agentDoc.Templates?.Select(t => AgentTemplateMongoElement.ToDomainElement(t))?.ToList() ?? [],
|
||||||
Functions = agentDoc.Functions?.Select(f => FunctionDefMongoElement.ToDomainElement(f)).ToList() ?? [],
|
Functions = agentDoc.Functions?.Select(f => FunctionDefMongoElement.ToDomainElement(f)).ToList() ?? [],
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue