void LogAndAddAssistantReply()

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);
    }