AuthorBuddy/Services/IOllamaService.cs
2026-08-30 08:11:01 +02:00

25 lines
1.3 KiB
C#

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