Initial commit working version.
This commit is contained in:
parent
985eb20a38
commit
b56011d3cc
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
*.bak
|
||||
*.db
|
||||
bin
|
||||
obj
|
14
AISApp/AISApp.csproj
Normal file
14
AISApp/AISApp.csproj
Normal file
@ -0,0 +1,14 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.9" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -92,13 +92,15 @@ namespace AISApp
|
||||
double backoff = 1,
|
||||
string? name = null,
|
||||
double temperature = 0.0,
|
||||
string dbName = ":memory:",
|
||||
string dbName = "tuna_ais_client.db",
|
||||
bool safeMode = true,
|
||||
string baseUrl = "openrouter.ai",
|
||||
string rel = "/api",
|
||||
string? apiKey = null
|
||||
|
||||
)
|
||||
{
|
||||
Console.WriteLine($"[INFO] Initializing AIS name={name} model={model} db={dbName} api_key={apiKey}");
|
||||
Loaded = dbName != ":memory:" && File.Exists(dbName);
|
||||
DbName = dbName;
|
||||
|
||||
@ -395,8 +397,8 @@ namespace AISApp
|
||||
if (firstColon >= 0 && rest.IndexOf(':', firstColon + 1) < 0)
|
||||
{
|
||||
var user = rest[..firstColon];
|
||||
var assistant = rest[(firstColon + 1)..];
|
||||
Append(user, assistant);
|
||||
var assistantMessage = rest[(firstColon + 1)..];
|
||||
Append(user, assistantMessage);
|
||||
return "true";
|
||||
}
|
||||
}
|
||||
@ -419,7 +421,7 @@ namespace AISApp
|
||||
Console.WriteLine(url);
|
||||
|
||||
int attempt = 0;
|
||||
string assistant = "ERROR";
|
||||
string assistantResponse = "ERROR";
|
||||
double backoff = Backoff;
|
||||
|
||||
while (attempt < MaxRetries)
|
||||
@ -435,15 +437,27 @@ namespace AISApp
|
||||
using var resp = await Http.SendAsync(req, ct);
|
||||
var text = await resp.Content.ReadAsStringAsync(ct);
|
||||
|
||||
//var parsed = JsonSerializer.Deserialize<ChatResponse>(text, JsonOpts);
|
||||
//assistantResponse = parsed?.Choices?[0]?.Message?.Content ?? "ERROR";
|
||||
var parsed = JsonSerializer.Deserialize<ChatResponse>(text, JsonOpts);
|
||||
assistant = parsed?.Choices?[0]?.Message?.Content ?? "ERROR";
|
||||
if (parsed?.Choices != null && parsed.Choices.Count > 0)
|
||||
{
|
||||
var msg = parsed.Choices[0]?.Message?.Content;
|
||||
assistantResponse = string.IsNullOrEmpty(msg) ? "ERROR" : msg!;
|
||||
}
|
||||
else
|
||||
{
|
||||
assistantResponse = text;
|
||||
// assistantResponse = "ERROR";
|
||||
}
|
||||
|
||||
|
||||
SaveSettings();
|
||||
|
||||
_messages.Add(new ChatMessage { Role = "assistant", Content = assistant });
|
||||
SaveMessage("assistant", assistant);
|
||||
_messages.Add(new ChatMessage { Role = "assistant", Content = assistantResponse });
|
||||
SaveMessage("assistant", assistantResponse);
|
||||
|
||||
return TryJson(assistant);
|
||||
return TryJson(assistantResponse);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -624,3 +638,4 @@ namespace AISApp
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user