Korrektur Abfrage

This commit is contained in:
2026-02-20 15:41:32 +01:00
parent bd0b2514f5
commit e7e01f3d36
2 changed files with 7 additions and 31 deletions

View File

@@ -356,8 +356,13 @@ namespace BeWo.Service.Plugins
throw new BeWoNotImplementedException(error);
}
}
AiUtils.CheckTokenSize(conv.Messages, configModelName, configModel.Value);
else
{
if (!AiUtils.CheckUserAllMessageContextSize(conv.Messages.Select(x => x.Message), configModelName, configModel.Value, out var error))
{
throw new BeWoNotImplementedException(error);
}
}
}
// Update DB Entity

View File

@@ -12,35 +12,6 @@ namespace BS.Shared.Core
private const double MAX_TOKENS_USER_PERCENTAGE = 10.0d;
private const double MAX_TOKENS_CONVERSATION_PERCENTAGE = 80.0d;
public static void CheckTokenSize(IEnumerable<IAiConversationMessage> messages, string modelName, int max_context_size)
{
CheckTokenSize(messages.Select(x => x.Message), modelName, max_context_size);
}
public static void CheckTokenSize(IEnumerable<string> messages, string modelName, int max_context_size)
{
var max_tokens_perc = MAX_TOKENS_SYSTEM_PERCENTAGE;
var buffer_tokens_fix = 500;
if (max_context_size < 0)
return;
var max_tokens = max_context_size;
var prev_tokens = CalculateTokensByModel(messages, modelName);
var calc_tokens = prev_tokens + buffer_tokens_fix;
var percentage = (double)calc_tokens * 100 / max_tokens;
if (percentage > max_tokens_perc)
{
var msg = $"Windowsize exceeded: ({prev_tokens}+{buffer_tokens_fix})/{max_tokens} ({percentage}%>{max_tokens_perc}%)";
throw new BeWoNotImplementedException(msg);
}
}
public static bool CheckSystemMessageContextSize(IEnumerable<string> messages, string modelName, int max_context_size, out string error)
{
return CheckContextSize(messages, modelName, max_context_size, MAX_TOKENS_SYSTEM_PERCENTAGE, out error);