Bug: UserNachricht wird nicht hinzugefügt vor Absenden
Bug: SystemPrompt werden mehrfach gesendet
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user