.NET · Kredi ön değerlendirmesi
ASP.NET Core servisinde otomatik HTTP izi ve açık iş/model bilgileri.
#1. Paketleri ekleyin
Portalın .NET teslimindeki yerel NuGet kaynağını kullanın. ASP.NET Core uygulaması Sigillum.Finans.Sdk.AspNetCore paketini; worker/console yalnız çekirdek paketi kullanır.
dotnet add package Sigillum.Finans.Sdk.AspNetCore --version 0.11.0 --source ./packagesÜçüncü taraf bağımlılıklarını kurumun onaylı NuGet kaynağından çözün. Servis ayarını .sigillum/config.json altına koyun; uygulama çıktısına güvenli biçimde aktarın.
using System.Text.Json;
using Sigillum.Finans.Sdk;
var builder = WebApplication.CreateBuilder(args);
var config = Path.GetFullPath(Environment.GetEnvironmentVariable("SIGILLUM_CONFIG")
?? throw new InvalidOperationException("SIGILLUM_CONFIG mutlak dosya yolunu ayarlayın."));
builder.Services.AddSigillum(config);
builder.Services.AddHttpClient();
var app = builder.Build();
app.UseSigillum();
app.MapPost("/loans/evaluate", (LoanInput input, SigillumClient observer) =>
{
if (input.Amount <= 0 || input.Months <= 0 || input.MonthlyIncome <= 0)
return Results.BadRequest(new { error = "Tutar, ay ve gelir pozitif olmalıdır." });
observer.SetReferences(new SdkReferences(
SessionRef: input.RequestRef,
External: [new SdkExternalReference("demo.loan", input.RequestRef)]));
// Sentetik öğretim kuralı: faiz/masraf içermez; gerçek kredi kararı değildir.
using var step = observer.BeginStep("affordability-rule");
var payment = decimal.Round(input.Amount / input.Months, 2);
var ratio = payment / input.MonthlyIncome;
var outcome = new { input.RequestRef, monthlyPayment = payment,
incomeRatio = ratio, eligible = ratio <= 0.35m, demonstration = true };
observer.Policy(JsonSerializer.SerializeToUtf8Bytes(new {
name = "demo-income-ratio", version = "1", threshold = 0.35m }));
observer.Explanation(JsonSerializer.SerializeToUtf8Bytes(new {
method = "deterministic-demo", reason = "monthlyPayment / monthlyIncome",
value = ratio, threshold = 0.35m }));
observer.Custom("loan.result", JsonSerializer.SerializeToUtf8Bytes(outcome));
observer.Source(JsonSerializer.SerializeToUtf8Bytes(new {
reference = input.RequestRef, type = "demo-result" }),
[new SdkAttachment("result", "application/json", "comparison.originalContent",
JsonSerializer.SerializeToUtf8Bytes(outcome))]);
return Results.Ok(outcome);
});
app.MapGet("/sdk-status", (SigillumClient sdk) => sdk.Status);
app.Run("http://127.0.0.1:5108");
record LoanInput(string RequestRef, decimal Amount, int Months, decimal MonthlyIncome);
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup><TargetFramework>net8.0</TargetFramework><Nullable>enable</Nullable><ImplicitUsings>enable</ImplicitUsings></PropertyGroup>
<ItemGroup><PackageReference Include="Sigillum.Finans.Sdk.AspNetCore" Version="0.11.0" /></ItemGroup>
</Project>#2. Uygulama başlangıcına bağlayın
builder.Services.AddSigillum() kayıt bileşenini ekler. app.UseSigillum() gövdeyi okuyan uygulama handler’larından önce çalışmalıdır. IHttpClientFactory istemcileri hazır handler’ı alır. Doğrudan oluşturulmuş HttpClient için SigillumHttpHandler kullanın. Uygulamanın güvenlik middleware’ini kaldırmayın.
#3. Kredi senaryosunda veri ekleyin
Demo POST /loans/evaluate ile tutar ve gelir alır. BeginStep ile gerçek ön değerlendirme adımını oluşturur; politika, açıklama, iş sonucu ve kurum kaynak ekini açıkça kaydeder. Demo hesaplaması deterministik bir eğitim kuralıdır; gerçek kredi skorlama modeli gibi sunulmaz.
#4. Ek gözlem yüzeyi
Model, Classification, Retrieval, Tool, Embedding, Inference, Evaluation, Policy, Explanation hazır AI aile metotlarıdır. Custom ve Source ek veri/özgün içerik içindir. TryRecord genel aile/kind/JSON yüzeyini sağlar. SetReferences isteğe bağlı kişi, oturum ve harici referansları ekler.
Kaydedilmiş ham UTF-8 JSON kullanın. İş nesnelerinin getter’larını sırf gözlem için taramayın. Yakalama dönüşü sınırlı RAM’e kabulü ifade eder; merkezde mühürlü teslimi değil.
#5. Hata ve eşzamansız iş
SdkOperation.Fail(exception) güvenli hata türünü kaydeder. İş uygulamasının hata yönetimini ve iptal davranışını koruyun. ObserveAiAsync gerçek çağrıyı bir kez çalıştırır. Gözlem teslimi için iş isteğinde flush veya bekleme eklemeyin.
#6. Örnek projeyi çalıştırın
Aşağıdaki ZIP’i açın, servis için indirdiğiniz SDK paketlerini packages altına ve config.json dosyasını .sigillum altına yerleştirin. README’deki restore/run komutlarını izleyin. Portal başlangıç tanımı POST /loans/evaluate olmalıdır. Örnek yalnız localhost’ta çalışacak şekilde başlatılır.
