in src/WebJobs.Extensions.OpenAI/Assistants/AssistantService.cs [316:344]
void LogAndAddAssistantReply(
string assistantId,
string replyMessage,
ClientResult<ChatCompletion> response,
InternalChatState chatState,
List<TableTransactionAction> batch)
{
this.logger.LogInformation(
"[{Id}] Got LLM response consisting of {Count} tokens: [{Text}] && {Count} ToolCalls",
assistantId,
response.Value.Usage.OutputTokenCount,
replyMessage,
response.Value.ToolCalls.Count);
ChatMessageTableEntity replyFromAssistantEntity = new(
partitionKey: assistantId,
messageIndex: ++chatState.Metadata.TotalMessages,
content: replyMessage,
role: ChatMessageRole.Assistant,
toolCalls: response.Value.ToolCalls);
chatState.Messages.Add(replyFromAssistantEntity);
batch.Add(new TableTransactionAction(TableTransactionActionType.Add, replyFromAssistantEntity));
this.logger.LogInformation(
"[{Id}] Chat length is now {Count} messages",
assistantId,
chatState.Metadata.TotalMessages);
}