Cronjobs + AnthropicService Singleton Refactoring
Cronjobs: - CronjobService (BackgroundService) prüft jede Minute auf fällige Jobs - Cron-Expression in Server-Lokalzeit via Cronos (CronFormat.Standard) - Cronjob-Ausführung: Prompt → Session → Agent-Antwort in Chat-History - Optionale Benachrichtigungs-Session (notify_session_id): Zusammenfassung wird in separate Session geschrieben (z.B. mit Telegram) - Telegram-Benachrichtigung mit Cronjob-Name + Ursprungs-Session - REST API: CRUD + toggle + manuelles Ausführen (/run) - Frontend: Dashboard-Cards, Cronjob-Formular mit Cron-Vorschau, Session-Dropdown, Notify-Session-Dropdown, Status-Box Refactoring: - AnthropicService als Singleton in DI registriert - ChatEndpoint + TelegramService nutzen injizierte Instanz - Redundante Dependencies (Token, ToolService, MemoryService) entfernt Neue Dateien: - Models/CronjobRecord.cs - Services/CronjobService.cs - Endpoints/CronjobEndpoint.cs - wwwroot/js/pages/cronjob-page.js - PLAN-Cronjob.md
This commit is contained in:
1 parent
0120bb8f73
commit
b645625b56
16 files changed
+1132
-28
No files matched your search
+14
-3
@@ -33,16 +33,26 @@ builder.Services.AddSingleton(toolService);
|
||||
var chatService = new ChatService(dbService, toolService, memoryService, skillService);
|
||||
builder.Services.AddSingleton(chatService);
|
||||
|
||||
// Telegram Bot (pro Session – Token aus Session-Config)
|
||||
// AnthropicService (Singleton – shared zwischen ChatEndpoint und TelegramService)
|
||||
var anthropicToken = builder.Configuration["AnthropicToken"] ?? "";
|
||||
builder.Services.AddSingleton<AnthropicService>(sp =>
|
||||
new AnthropicService(
|
||||
sp.GetRequiredService<IHttpClientFactory>(),
|
||||
anthropicToken, toolService, dbService, memoryService));
|
||||
|
||||
// Telegram Bot (pro Session – Token aus Session-Config)
|
||||
var maxIterations = builder.Configuration.GetValue<int>("MaxIterations", 100);
|
||||
builder.Services.AddSingleton<TelegramService>(sp =>
|
||||
new TelegramService(
|
||||
anthropicToken,
|
||||
sp.GetRequiredService<IHttpClientFactory>(),
|
||||
dbService, toolService, memoryService, chatService,
|
||||
dbService, chatService,
|
||||
sp.GetRequiredService<AnthropicService>(),
|
||||
maxIterations));
|
||||
|
||||
// Cronjob-Service (BackgroundService)
|
||||
builder.Services.AddSingleton<CronjobService>();
|
||||
builder.Services.AddHostedService<CronjobService>(sp => sp.GetRequiredService<CronjobService>());
|
||||
|
||||
var app = builder.Build();
|
||||
app.UseDefaultFiles();
|
||||
app.UseStaticFiles();
|
||||
@@ -60,5 +70,6 @@ app.MapSkillEndpoints();
|
||||
app.MapProfileEndpoints();
|
||||
app.MapSettingsEndpoints();
|
||||
app.MapTelegramEndpoints();
|
||||
app.MapCronjobEndpoints();
|
||||
|
||||
app.Run("http://0.0.0.0:19000");
|
||||
Reference in new issue
Block a user