Ein Großteil relevanter Business-Daten existiert nicht in sauberen Datenbanken, sondern ist in PDFs "eingesperrt". Für mein gemeinsames Projekt FaStep (ein AI Cover Letter Generator) musste das C#-Backend hochgeladene Lebensläufe auslesen, bevor die Mistral AI das Anschreiben verfassen konnte.
Die Qual der Wahl: PDF-Bibliotheken
In der .NET Welt gibt es viele PDF-Bibliotheken (iText7, PDFsharp), doch viele sind extrem teuer oder haben strikte Open-Source-Lizenzen (AGPL), die für kommerzielle APIs problematisch sind. Meine Wahl fiel daher auf PdfPig, eine fantastische Apache-2.0 lizenzierte Bibliothek.
Auslesen eines IFormFile in ASP.NET Core
In der Program.cs dieses Portfolios existiert ein Endpoint /api/fastep.
Wenn ein Nutzer einen PDF-Lebenslauf hochlädt, landet dieser als IFormFile im Speicher.
Wir laden den Stream in den RAM und übergeben ihn an PdfPig:
using UglyToad.PdfPig;
// ...
if (cvFile.FileName.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
{
using var stream = cvFile.OpenReadStream();
using var memoryStream = new MemoryStream();
await stream.CopyToAsync(memoryStream);
var bytes = memoryStream.ToArray();
using var pdfDocument = PdfDocument.Open(bytes);
var pdfText = new StringBuilder();
foreach (var page in pdfDocument.GetPages())
{
pdfText.AppendLine(page.Text);
}
extractedText += "\n\n" + pdfText.ToString();
}
Von rohem Text zum AI Prompt
Sobald extractedText gefüllt ist, haben wir einen – oft unformatierten – Block aus rohem Text.
Hier kommt die Magie moderner LLMs ins Spiel. Einem Modell wie Mistral AI oder GPT-4 ist es völlig egal, ob der Text
sauberes Markdown ist oder Absätze fehlen. Es extrahiert die semantischen Kerninformationen mühelos.
Wir füttern den Text lediglich als "User Message" in den Payload ein, zusammen mit einem starken System Prompt:
var systemPrompt = "Du bist ein Experte für Karriere und Bewerbungen. Verfasse ein...";
var userMessage = $"Das bin ich (Profil/Lebenslauf):\n{extractedText}\n\nDiesen Job suche ich: {jobTitle}...";
// HTTP POST an Mistral API ...
Mit dieser relativ simplen Architektur lassen sich unglaubliche Business-Werte schaffen. Die Brücke zwischen klassischer Dateiverarbeitung (PDF Parsing) und KI ist heute schmaler denn je.