This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
AI
AI-Article
C#
LLM
mostlylucid.blogllm
RAG
Κατασκευή ενός "δικηγόρου GPT" για το blog σας - Μέρος 1: Εισαγωγή & Αρχιτεκτονική
Wednesday, 12 November 2025
ΠΡΟΕΙ∆ΟΠΟΙΗΣΗ: ΤΙΣ ΠΡΟΘΕΣΜΙΕΣ ΠΟΥ "ΠΕΡΙΛΑΜΒΑΝΟΝΤΑΙ."
Πιθανότατα πολλά από αυτά που είναι κάτω δεν θα δουλέψουν; Εγώ τα δημιουργώ ως το πώς-για μένα και στη συνέχεια να κάνουμε όλα τα βήματα και να πάρει το δείγμα εφαρμογή εργασίας...Έχετε sneaky και να τους δει! Θα είναι πιθανώς έτοιμα μέσα Δεκεμβρίου.
## Εισαγωγή
Μπες μέσα γιατί θα είναι μεγάλη σειρά!
Αν παρακολουθείτε μαζί με αυτό το blog, θα ξέρετε ότι έχω εμμονή με το να βρω ενδιαφέροντες τρόπους να χρησιμοποιήσω LLMs και AI σε πρακτικές εφαρμογές.
Λοιπόν, έχω ένα νέο πρόγραμμα που συνδυάζει την αγάπη μου για το blogging, C#, και AI: την κατασκευή ενός βοηθού γραφής που με βοηθά να σχεδιάσω νέες δημοσιεύσεις blog χρησιμοποιώντας το υπάρχον περιεχόμενό μου ως βάση γνώσεων.
ΣΗΜΕΙΩΣΗ: Αυτό είναι μέρος των πειραμάτων μου με AI (βοηθητική σύνταξη) + δικό μου μοντάζ.
Ίδια φωνή, ίδιος πραγματισμός, απλά γρηγορότερα δάχτυλα.
Σκεφτείτε πώς οι σύγχρονες νομικές πρακτικές χρησιμοποιούν LLMs εκπαιδευμένες στη νομολογία για την κατάρτιση σλιπ, προτάσεις και συμβάσεις.
Δεν ξεκινούν από το μηδέν - το σύστημα αναφέρει σχετικά προηγούμενα, προτείνει γλώσσα που βασίζεται σε επιτυχημένα παλαιότερα έγγραφα, και διατηρεί συνέπεια με καθιερωμένα πρότυπα.
Αυτό ακριβώς φτιάχνουμε εδώ, αλλά για το περιεχόμενο του μπλογκ.
Ο στόχος είναι να δημιουργηθεί ένας βοηθός γραφής με ισχύ AI που:
Αυτοδημιουργεί εσωτερικούς συνδέσμους με συναφή αντικείμενα
Ενεργεί όπως "GitHub Copilot για το blog σας"
Η σειρά αυτή θα καλύψει την κατασκευή ενός πλήρουςΑνακτήσιμη Αυξημένη Γενιά (RAG)
**σύστημα σε C# που τρέχει σε Windows.**Θα χρησιμοποιήσουμε τις τελευταίες προσεγγίσεις και πλαίσια, και θα εξηγήσω κάθε νέα τεχνολογία όπως την συναντάμε.
**Ρύθμιση υλικού μου (και ελάχιστα spec)**My Development Machine:
GPU**: NVIDIA RTX A4000 (16GB VRAM)**CPU
: AMD Ryzen 9 9950X
RAM: 96GB DDR5
Αυτό είναι το συγκεκριμένο στήσιμο μου, αλλά εσύ
Δεν χρειάζομαι αυτό το υλικό.
**Για να ακολουθήσουμε.**Εδώ είναι οι ελάχιστες προδιαγραφές για διάφορα συστατικά:
: 16GB (A4000) - Μπορεί να τρέξει 13B μοντέλα άνετα
CPU-Μόνο εναλλακτική
Ελάχιστη
: Μοντέρνα τετράγωνη CPU
Συνιστώμενη: 8+ πυρήνας (για τη λογική γενιά ενσωμάτωσης)
Όλα λειτουργούν μόνο σε CPU, απλά πιο αργά:
Γενιά ενσωμάτωσης: ~5-10x πιο αργάLLM inference: ~10-50x slower
Εξακολουθεί να είναι χρήσιμος για βοηθός γραφής!
Απαιτήσεις RAMΕλάχιστη
: 16GB σύστημα RAM
Συνέπεια μόνο για μοντέλα 7ΒΆνετα.
: 32GBΚαλύτερα για μεγαλύτερα μοντέλα σε CPU
Το στήσιμο μου
: 96GB - Υπερβολή, 32GB είναι άφθονο
ΑποθήκευσηSSD
: Συνιστάται για τη φόρτωση μοντέλουΔιάστημα
~20GB για μοντέλα και διανυσματική βάση δεδομένωνΤι γίνεται με την Intel/AMD NPUs;
**Οι σύγχρονοι επεξεργαστές περιλαμβάνουν τώρα αφοσιωμένους επιταχυντές AI:*Intel Core Ultra(Meteor Lake+) - Intel AI Boost (NPU)*AMD Ryzen AI
(7040/8040 σειρά) - XDNA NPU
✅ Great for: On-device inference, battery efficiency (laptops)
⚠️ Limited for our use: Immature .NET/ONNX Runtime support
❌ Not ready for: This project's primary path
AMD Ryzen AI Max
(Strix Point) - Έως 50 TOPSΣημαντικό: Τα ΕΠΠΑ είναι μόνο για συμπεράσματα!
Δεν "κατασκευάζει" ή τρένο μοντέλα σε NPU - είναι σχεδιασμένα νατρέξιμο
**Προεκπαιδευμένα μοντέλα αποτελεσματικά.**Τα μοντέλα εκπαιδεύονται σε GPU σύννεφο (ή θέσεις εργασίας), στη συνέχεια κατεβάσετε και να αναπτυχθεί σε NPU για συμπεράσματα.
**Τρέχον καθεστώς για μοντέλα λειτουργίας σε NPU (από τη συγγραφή):**Γιατί όχι NPUs για αυτή τη σειρά;
Λογισμικό οικοσύστημα: CUDA έχει 15+ έτη ωριμότητας, NPU υποστήριξη σε .NET είναι nascent
Μοντέλο συμβατότητας
: Τα περισσότερα μοντέλα GGUF στοχεύουν CUDA/CPU, NPU-optimized μοντέλα είναι σπάνιαΤεκμηρίωση: Περιορισμένοι πόροι για την ανάπτυξη NPU σε C#
Επιδόσεις
: Επί του παρόντος βραδύτερα από τα διακριτά GPU για το φόρτο εργασίας μας
Υποστήριξη DirectML
: Εξακολουθεί να είναι πειραματικό για το συμπέρασμα LLM
# Use DirectML execution provider (supports NPU)
dotnet add package Microsoft.ML.OnnxRuntime.DirectML
# In code:
var sessionOptions = new SessionOptions();
sessionOptions.AppendExecutionProvider("DML"); // DirectML
var session = new InferenceSession("model.onnx", sessionOptions);
**Μπορείς να χρησιμοποιήσεις τα ΕΠΠΕ για να συμπεράνεις;**Ναι, αλλάΑπαιτείDirectMLπάροχος εκτέλεσης σε Runtime ONNXΤα μοντέλα πρέπει να είναι σε μορφή ONNX (όχι GGUF)
Η υποστήριξη C# είναι πειραματικήΗ απόδοση είναι προς το παρόν υποσυνείδητη εναντίον CUDA
Πώς να δοκιμάσετε το συμπέρασμα NPU (προχωρημένοι χρήστες):
Μελλοντική εξέταση
: Μια φοράONNX Runtime
καιDirectML
**ωριμάζουν NPU υποστήριξη τους (πιθανόν 2024-2025), αυτές θα γίνουν βιώσιμες εναλλακτικές λύσεις για συμπεράσματα!**Συμπέρασμα
**: Θα δείξω το GPU-επιταχυνόμενο μονοπάτι, αλλά θα σημειώσω CPU-μόνο εναλλακτικές σε όλη τη διάρκεια.**Μπορείτε να ξεκινήσετε CPU-μόνο και την αναβάθμιση αργότερα!
**Τι φτιάχνουμε;**Το τελικό σύστημα θα έχει διάφορα στοιχεία:
Σωλήνας κατάποσης σήμανσης- Επεξεργάζεται όλες τις αναρτήσεις στο blog, τις κόβει έξυπνα, και δημιουργεί καταχωρήσεις
Βάση δεδομένων Vector
- Καταστήματα ενσωμάτωσης και επιτρέπει σημασιολογική αναζήτηση για παρόμοιο περιεχόμενο
Εφαρμογή πελάτη των Windows
Ένας βοηθός γραφείου εργασίας UI με τον επεξεργαστή και τον πίνακα προτάσεων
Ενσωμάτωση LLM
Τοπική GPU-επιταχυνόμενο συμπέρασμα για την παραγωγή περιεχομένου
Citation & Link Generation
Auto-προτείνει εσωτερικούς συνδέσμους και αναφορές σε σχετικές θέσεις
Κινητήρας συνοχής στυλ
Μαθαίνει πρότυπα από τις υπάρχουσες θέσεις για να διατηρήσει τη φωνή και τη δομή
Σκεφτείτε το ως "GitHub Copilot συναντά Grammarly" αλλά έχει εκπαιδευτεί ειδικά στο περιεχόμενο και το στυλ του blog σας.
Γιατί "δικηγόρος GPT";
Οι σύγχρονες δικηγορικές εταιρείες χρησιμοποιούν LLMs εκπαιδευμένες σε τεράστιες βιβλιοθήκες νομολογίας για να βοηθήσουν στη σύνταξη νομικών εγγράφων.
Όταν γράφετε μια κίνηση, το σύστημα:
Αναφορές σχετικά προηγούμενα και προηγούμενα επιτυχημένα επιχειρήματα
Προτείνει τα γλωσσικά πρότυπα που έχουν λειτουργήσει πριν
ήpgvector, Μέρος 4: Κατασκευή του σωλήνα κατάποσηςΕπεξεργασία αρχείων markdown, έξυπνες στρατηγικές chunking (δεν μπορείτε απλά να μοιραστείτε τις παραγράφους!), και τη δημιουργία καταχωρήσεων για όλο το περιεχόμενό μας.
ΑβαλόνιαCity name (optional, probably does not need a translation)
, ή
ΜΑΟΥΙConstellation name (optional, probably does not need a translation)
?), building the UI, and making it really pleasant to use.
Μέρος 6: Τοπική ενσωμάτωση LLM
Εκτέλεση τοπικών μοντέλων που χρησιμοποιούνONNX Runtime
llama. cppΔεσμεύσεις ή άλλες προσεγγίσεις.
**Κάνοντας πλήρη χρήση αυτού του A4000!**Μέρος 7: Παραγωγή Περιεχομένου & Prompt Engineering
**Φέρνοντάς τα όλα μαζί - σημασιολογική αναζήτηση για σχετικό περιεχόμενο, διαχείριση παραθύρου πλαισίου, άμεση μηχανική για τη βοήθεια συγγραφής, και δημιουργώντας συνεκτικές προτάσεις.**Μέρος 8: Προηγμένα Χαρακτηριστικά & Ανάπτυξη Παραγωγής
**Αυτόματη σύνδεση με σχετικές δημοσιεύσεις, έλεγχος συνέπειας στυλ, προτάσεις snippet κώδικα, και καθιστώντας το σύστημα πραγματικά χρήσιμο για την καθημερινή γραφή.**Γιατί Ράγκερ;
Πριν βουτήξουμε στην αρχιτεκτονική, ας μιλήσουμε για το γιατί RAG (Αναδρομική Αυξανόμενη Γενιά) είναι η σωστή προσέγγιση εδώ.
Το Πρόβλημα με την Πρόστιμο-Τούνινγκ
Θα μπορούσατε να σκεφτείτε: "Γιατί όχι μόνο πρόστιμο-tune ένα LLM σε όλες τις αναρτήσεις blog;" Υπάρχουν αρκετά θέματα με αυτό:
Κόστος & πολυπλοκότητα
Η ρύθμιση είναι δαπανηρή (τόσο σε υπολογισμό όσο και σε προσπάθεια)
Καθυστέρηση
Κάθε νέο blog post σημαίνει επανεκπαίδευση
Μαύρο κουτί
Δύσκολο να καταλάβεις τι έμαθε το μοντέλο.
✅ Always up-to-date (just re-index new posts as you write them)
✅ Grounded in your actual writing (maintains consistency)
✅ Traceable (know which past posts influenced suggestions)
✅ Efficient (no expensive retraining for every new post)
✅ Flexible (can swap out LLMs or adjust search strategies)
✅ Privacy-preserving (everything runs locally)
Ψευδαίσθηση
Δεν είναι σίγουρο ότι το μοντέλο δεν θα τα βγάλει πέρα.
graph TB
A[Markdown Files] -->|Ingest| B[Chunking Service]
B -->|Text Chunks| C[Embedding Model]
C -->|Vectors| D[Vector Database]
E[User Writing] -->|Current Draft| F[Windows Client]
F -->|Embed Context| C
C -->|Query Vector| D
D -->|Similar Content| G[Context Builder]
G -->|Relevant Past Articles| H[Prompt Engineer]
H -->|Prompt + Context| I[Local LLM]
I -->|Generated Suggestions| J[Link Generator]
J -->|Suggestions + Citations| F
F -->|Display| K[Editor with Suggestions]
class C,I embedding
class D,K output
classDef embedding stroke:#333,stroke-width:4px
classDef output stroke:#333,stroke-width:4px
Δεν υπάρχουν αναφορές
Δεν μπορούμε εύκολα να εντοπίσουμε απαντήσεις στις πηγές.
Πώς το Λύνει αυτό το Λύτρο
RAGs συνδυάζει το καλύτερο και των δύο κόσμων: τη δύναμη των LLMs με την ακρίβεια της αναζήτησης για τη δημιουργία μιας γενιάς περιεχομένου context-aware.
Η ροή είναι:
Ο χρήστης αρχίζει να γράφει (π.χ., "Χτίζοντας ένα REST API με ASP.NET Core...")
Σύστημα βρίσκει σημασιολογικά παρόμοια παλιά αντικείμενα
Το σύστημα τροφοδοτεί τα σχετικά κομμάτια ως πλαίσιο για το LLMΗ LLM δημιουργεί προτάσεις/συνέχειες με βάση το περιεχόμενο του παρελθόντος
Το σύστημα προσφέρει προτάσεις με αναφορές σε θέσεις πηγής
Αυτό σημαίνει:
Αρχιτεκτονική συστήματος
Επιτρέψτε μου να αναλύσω τα βασικά συστατικά που θα φτιάξουμε:
Σωλήνας κατάποσης σήμανσης
**Το παρόν συστατικό:**Διαβάζει αρχεία markdown από τον κατάλογο blog
: Η στρατηγική για το κυνήγι έχει τεράστια σημασία.
Πολύ μικρό και χάνεις τα συμφραζόμενα.
**Πολύ μεγάλο και σπαταλάς το παράθυρο του LLM.**Χρειαζόμαστε κομμάτια που έχουν σημασιολογική σημασία - μια πλήρη σκέψη ή τμήμα, όχι αυθαίρετες διαλείμματα παραγράφων.
(κατάσταση της τεχνολογίας ανοικτού κώδικα)**3.Βάση δεδομένων Vector**Η διανυσματική βάση δεδομένων αποθηκεύει την ενσωμάτωση και επιτρέπει γρήγορη αναζήτηση ομοιότητας.**Όταν γράφετε για το "Docker συνθέτουν," βρίσκει το πιο σημασιολογικά παρόμοιο περιεχόμενο του παρελθόντος - όχι μόνο ταιριάζει η λέξη-κλειδί, αλλά και εννοιολογικά σχετικό υλικό.**Επιλογή τεχνολογίας
: Θα αξιολογήσουμε:
QdrantCity name (optional, probably does not need a translation)
Μοντέρνο, γραμμένο στο Rust, εξαιρετικός πελάτης C#, φιλικός προς τον Ντόκερ
pgvector
Επέκταση για PostgreSQL (χρησιμοποιούμε ήδη Postgres!)
Υγρασία
- Μια άλλη σταθερή επιλογή με καλή υποστήριξη .NET: