Bug: UserNachricht wird nicht hinzugefügt vor Absenden

Bug: SystemPrompt werden mehrfach gesendet
This commit is contained in:
2026-06-16 11:45:25 +02:00
parent 63a08f3984
commit ced8dc52bf

View File

@@ -408,15 +408,6 @@ namespace BeWo.Service.Plugins
var configModelName = configModel.ModelName;
var logger = ServiceLogger.GetRequestLogger(out string id);
// Build Payload
var payload = new
{
model = configModelName,
messages = conv.Messages.Select(m => new { role = m.Role.ToString().ToLower(), content = m.Message }),
customerid = UserRightHelper.GetTenant(),
requestid = id
};
// Updated
conv.Updated = DateTime.Now;
@@ -429,19 +420,48 @@ namespace BeWo.Service.Plugins
conv.Messages.Add(user_msg);
// Build Payload
var messages2send = new List<AiConversationMessage>();
bool systemPromptAdded = false;
foreach (var msg in conv.Messages)
{
if (msg.Role == AiConversationMessageRole.System)
{
if (systemPromptAdded)
continue;
systemPromptAdded = true;
}
messages2send.Add(msg);
}
if (!systemPromptAdded)
{
throw new Exception("sp not found - invalid request");
}
var payload = new
{
model = configModelName,
messages = messages2send.Select(m => new { role = m.Role.ToString().ToLower(), content = m.Message }).ToList(),
customerid = UserRightHelper.GetTenant(),
requestid = id
};
// Check Token Size
if (-1 < configModel.Value)
{
if (conv.Messages.Count <= 2)
{
if (!AiUtils.CheckUserFirstMessageContextSize(conv.Messages.Select(x => x.Message), configModelName, configModel.Value, out var error))
if (!AiUtils.CheckUserFirstMessageContextSize(messages2send.Select(x => x.Message), configModelName, configModel.Value, out var error))
{
throw new BeWoNotImplementedException(error);
}
}
else
{
if (!AiUtils.CheckUserAllMessageContextSize(conv.Messages.Select(x => x.Message), configModelName, configModel.Value, out var error))
if (!AiUtils.CheckUserAllMessageContextSize(messages2send.Select(x => x.Message), configModelName, configModel.Value, out var error))
{
throw new BeWoNotImplementedException(error);
}