feat: add download features to llm models

This commit is contained in:
2026-04-20 22:50:16 +02:00
parent 351dd3b608
commit 6274b4a0b8
11 changed files with 910 additions and 237 deletions

View File

@ -590,6 +590,38 @@ func (r *Repository) ListSettings() ([]Setting, error) {
return settings, nil
}
// ── AI Role Providers ──────────────────────────────────────────────────────
// GetRoleProvider returns the configured provider and model for a given role (summary/report/filter).
// Falls back to the active provider if no role-specific provider is set.
func (r *Repository) GetRoleProvider(role string) (*AIProvider, string, error) {
providerID, _ := r.GetSetting("ai_role_" + role + "_provider")
model, _ := r.GetSetting("ai_role_" + role + "_model")
if providerID != "" {
p, err := r.GetAIProviderByID(providerID)
if err == nil && p != nil {
if model == "" {
model = p.Model
}
return p, model, nil
}
}
// Fallback to active provider
p, err := r.GetActiveAIProvider()
if p != nil && model == "" {
model = p.Model
}
return p, model, err
}
func (r *Repository) SetRoleProvider(role, providerID, model string) error {
if err := r.SetSetting("ai_role_"+role+"_provider", providerID); err != nil {
return err
}
return r.SetSetting("ai_role_"+role+"_model", model)
}
// ── Reports ────────────────────────────────────────────────────────────────
func (r *Repository) CreatePendingReport(userID string, summaryID *string, excerpt, question string) (*Report, error) {