This commit is contained in:
@@ -17,13 +17,13 @@ public class OllamaMessage
|
||||
public static class OllamaService
|
||||
{
|
||||
private static readonly HttpClient _httpClient = new() { Timeout = TimeSpan.FromMinutes(5) };
|
||||
private const string BaseUrl = "http://localhost:11434/api";
|
||||
private static string BaseUrl => SettingsManager.Current.OllamaBaseUrl;
|
||||
|
||||
public static async IAsyncEnumerable<string> SendChatStreamAsync(string model, List<OllamaMessage> messages, string? toolsJson = null)
|
||||
{
|
||||
var requestBody = new Dictionary<string, object>
|
||||
{
|
||||
{ "model", model },
|
||||
{ "model", string.IsNullOrEmpty(model) ? SettingsManager.Current.OllamaModel : model },
|
||||
{ "messages", messages },
|
||||
{ "stream", true } // ВКЛЮЧАЕМ СТРИМИНГ
|
||||
};
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace VisionAsist.Models;
|
||||
public class Selector
|
||||
{
|
||||
private static List<OllamaMessage> _chatHistory = new();
|
||||
public static string CurrentModel = "qwen3.5:4b";
|
||||
public static string CurrentModel => SettingsManager.Current.OllamaModel;
|
||||
|
||||
public static event Action<string>? OnLogUpdate;
|
||||
private static void UpdateUI(string text) => OnLogUpdate?.Invoke(text);
|
||||
|
||||
57
VisionAsist/Models/Settings.cs
Normal file
57
VisionAsist/Models/Settings.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace VisionAsist.Models;
|
||||
|
||||
public class AppSettings
|
||||
{
|
||||
public string OllamaBaseUrl { get; set; } = "http://localhost:11434/api";
|
||||
public string OllamaModel { get; set; } = "llama3";
|
||||
}
|
||||
|
||||
public static class SettingsManager
|
||||
{
|
||||
private static readonly string SettingsFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "settings.json");
|
||||
private static AppSettings _current = new();
|
||||
|
||||
public static AppSettings Current => _current;
|
||||
|
||||
static SettingsManager()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
public static void Load()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (File.Exists(SettingsFilePath))
|
||||
{
|
||||
var json = File.ReadAllText(SettingsFilePath);
|
||||
_current = JsonSerializer.Deserialize<AppSettings>(json) ?? new AppSettings();
|
||||
}
|
||||
else
|
||||
{
|
||||
Save();
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
_current = new AppSettings();
|
||||
}
|
||||
}
|
||||
|
||||
public static void Save()
|
||||
{
|
||||
try
|
||||
{
|
||||
var json = JsonSerializer.Serialize(_current, new JsonSerializerOptions { WriteIndented = true });
|
||||
File.WriteAllText(SettingsFilePath, json);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"Error saving settings: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user