public static LogAnalyticsRecord CalculateChatInputTokens()

in src/dotnet/AzureAI.Proxy/OpenAIHandlers/Tokens.cs [20:46]


    public static LogAnalyticsRecord CalculateChatInputTokens(HttpRequest request, LogAnalyticsRecord record)
    {
        //Rewind to first position to read the stream again
        request.Body.Position = 0;

        StreamReader reader = new StreamReader(request.Body, true);
        string bodyText = reader.ReadToEnd();
 
        JsonNode jsonNode = JsonSerializer.Deserialize<JsonNode>(bodyText);
        var modelName = jsonNode["model"].ToString();

        record.Model = modelName;

        var messages = jsonNode["messages"].AsArray();
        foreach (var message in messages)
        {
            var content = message["content"].ToString();
            //calculate tokens using a tokenizer.
            record.InputTokens += GetTokensFromString(content, modelName);
        }



        return record;


    }