Обновить значение ChatMessageContent в ответе семантического ядра.C#

Место общения программистов C#
Ответить
Anonymous
 Обновить значение ChatMessageContent в ответе семантического ядра.

Сообщение Anonymous »

У меня есть простой чат-бот, созданный с использованием семантического ядра:

Код: Выделить всё

 var response = _chatCompletionService.GetChatMessageContentAsync(
chatHistory,
executionSettings: execSettings,
kernel: kernel);
В некоторых случаях я хочу проверить ответ модели и заменить текстовое содержимое перефразированной версией (взятой из другого вызова _chatCompletionService, но не связанной с исходным разговором).
Я делаю это следующим образом:

Код: Выделить всё

return new ChatMessageContent(
role: response.Role,
content: rephrasedContent)
а затем я сохраняю это сообщение в ChatHistory. Интересно, лучший ли это вариант или нет, поскольку я теряю ModelId, InnerContent и другие поля из исходного ответа LLM. Однако оставить этот вариант также кажется неидеальным, поскольку он может привести к несоответствию между обновленным содержимым и оставшимися полями исходного ответа.
Буду признателен за любую помощь.
ОБНОВЛЕНИЕ:
На этом этапе я просто переназначаю значение Content.

Код: Выделить всё

  originalLlmResponse.Content = parsed.OutputMessage;
который за сценой вызывает:

Код: Выделить всё

var textContent = this.Items.OfType().FirstOrDefault();
if (textContent is not null)
{
textContent.Text = value;
}
else if (value is not null)
{
this.Items.Add(new TextContent(
text: value,
modelId: this.ModelId,
innerContent: this.InnerContent,
encoding: this.Encoding,
metadata: this.Metadata
)
{ MimeType = this.MimeType });
}
что, вероятно, нормально, пока вы работаете только с TextContent, в моем случае, хотя я вызываю инструменты и mcp, я не работаю с их результатом напрямую, вместо этого я полагаюсь на ту модель, которую мне предоставляет.

Подробнее здесь: https://stackoverflow.com/questions/798 ... l-response
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»