using System.Net.Http.Headers;
namespace AnchorCli.Providers;
///
/// Token extractor for Ollama responses.
/// Ollama doesn't provide official token counts, so we estimate.
///
internal sealed class OllamaTokenExtractor : ITokenExtractor
{
public string ProviderName => "Ollama";
public (int inputTokens, int outputTokens)? ExtractTokens(HttpResponseHeaders headers, string? responseBody)
{
// Ollama doesn't provide token headers
return null;
}
public int? ExtractLatency(HttpResponseHeaders headers)
{
// Ollama doesn't provide latency headers
return null;
}
///
/// Estimates token count from text length (rough approximation).
/// Assumes ~4 characters per token on average.
///
public static int EstimateTokens(string text)
{
if (string.IsNullOrEmpty(text))
{
return 0;
}
// Rough estimate: 4 characters per token
return text.Length / 4;
}
}