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
Побудова " Lawier GPT " для вашого блогу - Частина 1: Вступ і архітектура
Wednesday, 12 November 2025
ПОПЕРЕДЖЕННЯ: ТАКІ ПОСТА, ЯКІ ВАЖЛИВІ.
Це, ймовірно, багато з того, що нижче не спрацює, я генерую їх як як як як як-до мене, а потім роблю всі кроки і отримати зразок додатку працює... ви були підступні і бачили їх! вони ймовірно будуть готові до середини грудня.
## Вступ
Пристебнися, бо це буде довга серія!
Якщо ви стежите разом з цим блогом, ви зрозумієте, що я трохи одержимий пошуками цікавих способів використання LLM та ШІ у практичних програмах.
У мене є новий проект, який поєднує мою любов до блогу, блогу C#, і ШІ: будівництво асистента-письменника, який допомагає мені складати нові блогові дописи, використовуючи мій існуючий контент як базу знань.
ЗАУВАЖЕННЯ: це частина мого експерименту з комп'ютером (заступною чернеткою) + моїм власним редагуванням.
Той самий голос, той самий прагматизм, тільки швидші пальці.
Подумайте про те, як сучасні законні практики використовують LLMs навчений з права справи, щоб складати брифси, рухи та контракти.
Вони не починаються з нуля - системні посилання, що стосуються справи, пропонують мову, засновану на успішних минулих документах, і підтримують послідовність з усталеними шаблонами.
Це саме те, що ми тут створюємо, але для вмісту блогу.
Метою створення досвідченого асистента письма комп' ютерів, який сказав:
Автоматично створює внутрішні посилання на споріднені статті
Діяє як "GitHub Copilot для вашого блогу"
**Ця серія статей охопить повне будівництво.**Покоління, яке отримує аугенція (RAG) Noun, a currency
system у C#, запущеному на Windows. DescriptionМи використаємо останні підходи та рамки, і я поясню кожну нову технологію, коли ми стикаємося з нею.
**Мої налаштування обладнання (і мінімізації)**Мій комп' ютер розробки:
GPU**: NVIDIA RTX A4000 (16GB VRAM)**Процесор
: AMD Richen 9 9 9950X
RAM: 96GB DDR5
Це моя конкретна установа, але ти
мені не потрібне це обладнання
**слідувати за ними.**Ось мінімальні специфікації для різних компонентів:
Прискорення GPU (завершено, не обов' язково)
Мінімальний: NVIDIA GPU з 8GB VRAM (наприклад, RTX 3060, GTX 1070 Ti)
Може запускати моделі параметрів 7Б з квантуванням
Швидкість вбудовування відсоткуЗручний
**: 12GB+ VRAM (наприклад, RTX 3060 12GB, RTX 4060 Ti)**Запускати більші моделі або високоякісні класифікації
Мої налаштування
: 16GB (A4000) - Може працювати з 13B моделей комфортно
Альтернативна лише ЦП
Мінімальний
: Сучасний критерій ЦП
Рекомендовано: 8+ ядер (для розумного створення вбудовування)
Все працює лише для процесора, лише повільніше:
Покоління вбудовування: ~5- 10x повільнішеLLMCE: ~10- 50x повільніший
Все еще подходящий для сценариста!
Вимоги до RAMМінімальний
: 16GB системна пам'ять
Вибір ЦП лише для моделей 7БЗручний
: 32 ГБКраща для більших моделей процесора
Мої налаштування
: 96GB - overkille, 32GB досить
ЗберіганняSSD
: Рекомендовано для зразкового завантаженняПробіл
: ~20GB для моделей і векторної бази данихА як щодо Intel/AMD NPU?
**У сучасних процесорах тепер є присвячені акселератори AI:*Core Intel Ultra(Meteor Lake+) - Intel AI Boost (NPU)*AMD Richen 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 Richen AI Max
До 50 ТОПІВВажливим є те, що NPU призначено лише для підрахунку!
Ви не "будуєте" і не тренуєте моделі на NPU - вони призначені дляrun
**Ефективно розроблені моделі.**Моделі тренують на хмарних GPU (або робочих станціях), а потім завантажують і розсилають у NPU для вираховування.
**Поточний стан запуску моделей на NPU (як запис):**Чому б вам не скористатися NPU для цієї серії статей?
Екосистема програм: CUDA має 15+довжину зрілості, підтримка NPU в NET є наочним
Сумісність з моделлю
: більшість моделей GGUF спрямовані на CUDA/CPU, моделі NPU-оптимізовані дуже рідкоДокументація: Обмежені ресурси для розробки NPU у C#
Швидкодія
: Зараз повільніше, ніж дискретні GPU для нашої роботи
Підтримка DirectML
: все ще експериментально для LLM Culture
# 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);
Отримання налаштувань вікон для завантажених комп' ютером GPU, встановленняNameКУДА, кДНunit description in listsІ тестування того, що C# дійсно може бачити і використовувати ваш ВПУ.Частина 3: Розуміння вбудовування баз даних та векторівГлибоко занурившись у те, чим насправді є вбудовування, як уможливити семантичний пошук і обрати правильну векторну базу даних (скупець: ми, ймовірно, використаємо
абоpgvector, Частина 4.Обробка файлів з відміткою, інтелектуальні стратегії поділу (ви не можете просто розділити на абзаци!), і створення вбудовування для всього нашого вмісту.
?), будування інтерфейсу, і зробити його дійсно приємно вживати.
Частина 6: Інтеграція локального LLM
Запуск моделей локального використанняONNX Runtime
Lama. cppПрив'язки, або інші підходи.
**Повністю користуюся цим A4000!**Частина 7: створення вмісту і сприяння інженерії
**Об'єднання всього цього - семантичний пошук відповідної інформації, керування контекстним вікном, спонукання до розробки допомоги в написанні та створення послідовних пропозицій.**Частина 8: Додаткові можливості і підвищення виробництва
**Автоматично з'єднуватися з відповідними дописами, перевіркою у стилі, пропозиціями фрагментів коду та створенням системи для щоденного запису.**Чому RAG?
Перед тим, як ми зануримося в архітектуру, давайте поговоримо про те, чому РАГ (Rrieval Augmented Generation) - це правильний підхід.
Проблема з якісним налаштуванням
Ви можете подумати: "Чому б не налагодити LLM на всіх блогових дописах?" Існує декілька проблем з цим:
& Складність вартості
Точне налаштування дорого коштує (як обчислення, так і зусилля)
Невтомність
Кожен допис нового блогу означає повторне повторення
Чорна скринька
Важко зрозуміти, що таке "навчений"
✅ 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
Без посилань
Не можу легко відстежити відповіді до джерел
Як RAG вирішує це
RAG поєднує найкращі з обох світів: потужність LLM з точністю пошуку, щоб створити створення вмісту контексту.
Потік:
Користувач починає запис (наприклад, " Побудова програмного інтерфейсу REST з ядром ASP. NET...)
Система знаходить семантичні статті, подібні до попередніх
Система постачає відповідні шматки як контекст для LLMLLM створює пропозиції/ продовження, засновані на минулому змісті
Система пропонує пропозиції з посиланнями на дописи джерела
Це означає:
Архітектура системи
Дозвольте мені розбити ключові компоненти, які ми будемо будувати:
Лінія розмітки трубопроводу
**Цей компонент:**Прочитує файли з каталогу блогуName
**Завелика і ви марнуєте контекстне вікно LLM.**Нам потрібні фрагменти, які семантично змістовні, - повна думка або розділ, а не випадкові перерви абзаців.
(встановлення відкритого джерела)**3.База даних векторів**Вбудовування баз даних у векторах і пришвидшення пошуку подібності.**Коли ви пишете про "Скомпонований Докер," він знаходить K найбільш семантично схожий з минулого зміст - не лише відповідники ключових слів, але, концептуально пов'язаний матеріал.**Вибір технології
Ми підрахуємо:
Qdrant
Сучасний, написаний на Rust, чудовий клієнт C#, дружній Docker
pgvector
Розширення для PostgreSQL (ми вже використовуємо Postgres!)
Тяжкі
- Ще один надійний варіант з хорошою підтримкою. NET:
We're going full .NETВікна і GPUName- Передача NVIDIA CUDA на Windows, а не Linux/ WSLВиробництво готове**- Не просто доказ-концепт, а реальний код.**Залежно від домену
- Оптимізовано для допомоги в записуванні блогів, а не для загального створення вмісту