Korrektur Abfrage
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user