Standaardinstellingen zijn geweldig om mee te beginnen, maar productieapplicaties vereisen fijnmazige controle. Hazina’s gelaagde configuratiesysteem stelt je in staat om alles af te stemmen, van tokenlimieten tot retry-beleid, zonder je code te vervuilen.
Configuratielagen
Hazina gebruikt een cascade-configuratiemodel:
- Hardcoded defaults – direct bruikbaar
- appsettings.json – standaard .NET-configuratie
- Omgevingsvariabelen – voor geheimen en implementatie-overschrijvingen
- Code-gebaseerde setup – voor dynamische of programmatische configuratie
appsettings.json Voorbeeld
{
"Hazina": {
"AI": {
"DefaultProvider": "openai",
"OpenAI": {
"ApiKey": - , // Gebruik in plaats daarvan een omgevingsvariabele
"Model": "gpt-4o",
"MaxTokens": 4096,
"Temperature": 0.7
},
"Anthropic": {
"ApiKey": - ,
"Model": "claude-sonnet-4-5-20250929",
"MaxTokens": 4096
}
},
"Storage": {
"Type": "sqlite",
"ConnectionString": "Data Source=hazina.db"
}
}
}
Programmatische Configuratie
builder.Services.AddHazina(config => {
config.AI.DefaultProvider = "openai";
config.AI.MaxTokens = 8192;
config.AI.Temperature = 0.3f; // Meer deterministisch
config.AI.RetryPolicy = new RetryPolicy {
MaxRetries = 3,
BackoffMultiplier = 2.0
};
config.Storage.UseSqlite("hazina.db");
// Of voor productie:
// config.Storage.UsePostgreSQL(connectionString);
});
Omgevingsvariabele Overschrijvingen
Elke configuratiewaarde kan worden overschreven via omgevingsvariabelen met behulp van de dubbele-underscore conventie:
HAZINA__AI__DEFAULTPROVIDER=anthropic
HAZINA__AI__MAXTOKENS=8192
HAZINA__STORAGE__TYPE=postgresql
Overschrijvingen per Verzoek
Heb je andere instellingen nodig voor een specifieke oproep? Overschrijf inline:
var response = await Hazina.AskAsync("Vat dit document samen",
options: new RequestOptions {
Model = "gpt-4o-mini", // Goedkoper model voor eenvoudige taken
MaxTokens = 500,
Temperature = 0.0f // Deterministisch
});
Configuratievalidatie
Hazina valideert je configuratie bij het opstarten en geeft duidelijke foutmeldingen:
// Dit zal een foutmelding geven:
// "Geen API-sleutel geconfigureerd voor provider 'openai'.
// Stel de OPENAI_API_KEY omgevingsvariabele in of configureer via appsettings.json"
Geen stille fouten of cryptische 401-fouten meer. Hazina vertelt je precies wat er mis is.
In de volgende post verkennen we het Generic API Framework – Hazina’s aanpak om boilerplate CRUD-code te elimineren.
Veelgestelde Vragen
Je kunt de Hazina AI-configuratie fijn afstemmen met behulp van het gelaagde configuratiesysteem, dat hardcoded defaults, appsettings.json, omgevingsvariabelen en programmatische setups omvat. Dit stelt je in staat om instellingen zoals tokenlimieten, retry-beleid en modelkeuzes aan te passen zonder je code te vervuilen.
Hazina-configuratiewaarden kunnen worden overschreven met behulp van omgevingsvariabelen met een dubbele-underscore conventie, wat gemakkelijke implementatie-overschrijvingen mogelijk maakt. Daarnaast kun je per-verzoek overschrijvingen direct in de code instellen voor specifieke oproepen, waarbij je opties zoals model en tokenlimieten kunt aanpassen.
Hazina valideert je configuratie bij het opstarten en geeft duidelijke foutmeldingen als er iets mis is, zoals ontbrekende API-sleutels. Dit voorkomt stille fouten en helpt je snel problemen te identificeren en op te lossen, waardoor de betrouwbaarheid van je AI-applicatie verbetert.
Hazina ondersteunt meerdere opslagtypen, waaronder SQLite voor ontwikkeling en PostgreSQL voor productieomgevingen. Je kunt je opslagtype en verbindingsreeks in de configuratie specificeren om ervoor te zorgen dat je applicatie aan zijn gegevensbeheerbehoeften voldoet.