using AuthorBuddy.Web.Models; namespace AuthorBuddy.Web.Services; public interface IOllamaService { Task> GetLocalModelsAsync(); Task PullModelAsync(string modelName, IProgress progress); Task QuickSpellCheckAsync(string text); Task GetEmbeddingAsync(string text); Task TestEmbeddingAsync(string model); Task Chat(string model, string userMessage, string? systemPrompt = null, double? temperature = null); Task ChatStream(string model, string userMessage, Func onToken, string? systemPrompt = null, double? temperature = null); Task AnswerBasedOnFactsAsync(string question, string facts); Task<(bool Success, long LatencyMs)> TestConnectionAsync(); Task ModelExistsAsync(string model); Task DeleteModelAsync(string modelName); Task<(bool Success, int ContextWindow)> GetModelContextWindowAsync(string model); Task MeasureLatencyAsync(string model); void Reconfigure(string ollamaUrl); }