Побудова " Lawier GPT " для вашого блогу - Частина 1: Вступ і архітектура (Українська (Ukrainian))

Побудова " Lawier GPT " для вашого блогу - Частина 1: Вступ і архітектура

Wednesday, 12 November 2025

//

15 minute read

ПОПЕРЕДЖЕННЯ: ТАКІ ПОСТА, ЯКІ ВАЖЛИВІ.

Це, ймовірно, багато з того, що нижче не спрацює, я генерую їх як як як як як-до мене, а потім роблю всі кроки і отримати зразок додатку працює... ви були підступні і бачили їх! вони ймовірно будуть готові до середини грудня.

## Вступ

Пристебнися, бо це буде довга серія!

Якщо ви стежите разом з цим блогом, ви зрозумієте, що я трохи одержимий пошуками цікавих способів використання 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

  1. До 50 ТОПІВВажливим є те, що NPU призначено лише для підрахунку!
  2. Ви не "будуєте" і не тренуєте моделі на NPU - вони призначені дляrun
  3. **Ефективно розроблені моделі.**Моделі тренують на хмарних GPU (або робочих станціях), а потім завантажують і розсилають у NPU для вираховування.
  4. **Поточний стан запуску моделей на NPU (як запис):**Чому б вам не скористатися NPU для цієї серії статей?
  5. Екосистема програм: 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);

**Вы можете использовать NPU для осведомления?**Так, але:ВимагаєтьсяDirectMLпровайдер виконання у ONNX RuntimeМоделі мають бути у форматі ONNX (не GGUF)

Підтримка C# є експериментальноюЗараз швидкодію недооцінюють проти CUDA

Як спробувати визначити NPU (додаткові користувачі):

Поміркованість у майбутньому

  1. : Один разONNX Runtime
  2. іDirectML
  3. **Зростити підтримку НПУ (правдоподібно 2024-2025), вони стануть життєздатними альтернативами для вираховування!**Нижній рядок
  4. **: Я покажу вам маршрут GPU, але бачитиму варіанти, які стосуються лише процесора.**Ви можете запустити лише процесор і оновити його пізніше!
  5. Що ми будуємоОстаточна система матиме декілька компонентів:
  6. Лінія розмітки трубопроводу- Оброблює всі дописи блогу, пов'язує їх з розумом і створює вбудовування

База даних векторів

- Зберігає вбудовування і вмикає семантичний пошук подібного вмісту

Програма для роботи з клієнтами WindowsName

    • Помічник запису на стільниці з інтерфейсом редактора і панелі пропозицій
  • Інтеграція LLM

    • Локальні висновки щодо створення вмісту GPU
  • Створення посилання

  • Автоматично встановлювати внутрішні посилання і посилання на пов' язані з ними дописи

  • Рушій сумісності стилюName

    • Вчиться візерунків з існуючих постів, щоб підтримувати голос і структуру
  • Думайте про це як про "GitHub Copilot" - "Grammarly," але спеціально тренувався на змісті та стилі вашого блогу.

  • Почему "Лауиер-ГПД"?

  • Сучасні юридичні фірми користуються ЛЛМС, вивченими у великих бібліотеках судового права, щоб допомогти у створенні правових документів.

Коли пишеш рух, система:

Посилання на важливі прецеденти і попередні успішні аргументи

Запропонує шаблони мови, які раніше працювали

Підтримує відповідність з нормами, що стосуються юридичного запису

Джерела Cites автоматично

Це наша модель.

Коли я починаю писати " Додавання блоку сутності для... ," система повинна:Знайти мої попередні повідомлення, пов' язані з EF, Запропонувати структурні візерунки, які я використовував ранішеПропонувати відповідні фрагменти коду з попередніх статей

Автоматично створювати посилання на споріднені дописи

Підтримую стиль письма і технічну глибинуНа відміну від звичайних асистентів ШІ, наша система базується на реальному змісті минулого, тому вона не натякає на суперечність того, що я вже написав.Огляд серіїОсь що ми покриємо протягом наступних тижнів.).

Частина 1 (цьий допис): Вступ і архітектура

Ми встановимо те, що ми будуємо, і чому, плюс розглянути архітектурні рішення.

Частина 2: налаштування і налаштування CUDA у C#

Отримання налаштувань вікон для завантажених комп' ютером GPU, встановленняNameКУДА, кДНunit description in listsІ тестування того, що C# дійсно може бачити і використовувати ваш ВПУ.Частина 3: Розуміння вбудовування баз даних та векторівГлибоко занурившись у те, чим насправді є вбудовування, як уможливити семантичний пошук і обрати правильну векторну базу даних (скупець: ми, ймовірно, використаємо

Qdrant

абоpgvector, Частина 4.Обробка файлів з відміткою, інтелектуальні стратегії поділу (ви не можете просто розділити на абзаци!), і створення вбудовування для всього нашого вмісту.

Частина 5: Клієнт Windows

Вибір правої оболонки (

WPF

Авалоніяgreece_ prefectures. kgm

, або

МАУЇ

?), будування інтерфейсу, і зробити його дійсно приємно вживати.

Частина 6: Інтеграція локального LLM

  1. Запуск моделей локального використанняONNX Runtime
  2. Lama. cppПрив'язки, або інші підходи.
  3. **Повністю користуюся цим A4000!**Частина 7: створення вмісту і сприяння інженерії
  4. **Об'єднання всього цього - семантичний пошук відповідної інформації, керування контекстним вікном, спонукання до розробки допомоги в написанні та створення послідовних пропозицій.**Частина 8: Додаткові можливості і підвищення виробництва
  5. **Автоматично з'єднуватися з відповідними дописами, перевіркою у стилі, пропозиціями фрагментів коду та створенням системи для щоденного запису.**Чому RAG?

Перед тим, як ми зануримося в архітектуру, давайте поговоримо про те, чому РАГ (Rrieval Augmented Generation) - це правильний підхід.

Проблема з якісним налаштуванням

Ви можете подумати: "Чому б не налагодити LLM на всіх блогових дописах?" Існує декілька проблем з цим:

  1. & Складність вартості
    • Точне налаштування дорого коштує (як обчислення, так і зусилля)
  2. Невтомність
    • Кожен допис нового блогу означає повторне повторення
  3. Чорна скринька
  • Важко зрозуміти, що таке "навчений"

  • ✅ 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.**Нам потрібні фрагменти, які семантично змістовні, - повна думка або розділ, а не випадкові перерви абзаців.

Вибір технології

: Скоріше за все, ми використаємо такі варіанти:

речення- передавач

моделі (можна запустити за допомогою ONNX Runtime у C#)

  • ✅ Mature, stable, lots of resources
  • ✅ Native Windows performance
  • ❌ Windows-only
  • ❌ Looks dated unless you invest in UI libraries

Моделі вбудовування OpenAI (за допомогою API)

  • ✅ Cross-platform (XAML-based)
  • ✅ Modern, actively developed
  • ✅ Similar to WPF
  • ❌ Smaller ecosystem

Моделі BGE

  • ✅ Cross-platform
  • ✅ Microsoft-backed
  • ❌ Still maturing
  • ❌ More mobile-focused

(встановлення відкритого джерела)**3.База даних векторів**Вбудовування баз даних у векторах і пришвидшення пошуку подібності.**Коли ви пишете про "Скомпонований Докер," він знаходить K найбільш семантично схожий з минулого зміст - не лише відповідники ключових слів, але, концептуально пов'язаний матеріал.**Вибір технології

Ми підрахуємо:

Qdrant

    • Сучасний, написаний на Rust, чудовий клієнт C#, дружній Docker
  • pgvector
    • Розширення для PostgreSQL (ми вже використовуємо Postgres!)
  • Тяжкі

- Ще один надійний варіант з хорошою підтримкою. NET:

Хрома

    • Популярний в країні Python, менше в C#
  • Я схиляюся до Кданта за його простоту та швидкодію, або Pgvector, щоб тримати все в Postgres.
  • Клієнт Windows

Нам нужен хороший информатор, чтобы писать за помощью информатора.Розділений режим редактора з пропозиціями.

  • Параметри:WPF (Фонд презентації вікон))
  • Авалоніяgreece_ prefectures. kgm
  • Інтерфейс програми MAUI (Multi- platform)
  • Оскільки ми круті на Windows, і я хочу чогось стабільного, я схиляюся до

WPF з

  • Сучасний інтерфейс WWPF
  • або
  • Авалоніяgreece_ prefectures. kgm

для цього міжплатформного потенціалу.**5.**Інтеграція локального LLM

Здесь светит A4000 GPU.

Ми хочемо запустити LLM локально для:

  • Конфіденційність (без даних, надісланих до API)
  • Швидкість (швидка локальна оцінка)
  • Вартість (без внесків API)
  • Керування (ми обираємо модель)

Параметри технології

  • ONNX Runtime
  • Перетворити моделі у формат ONNX
  • Чудове прискорення GPU
  • Підтримка C# рідної

Внизу: не всі моделі конвертуються добре.

Lama. cpp

  • прив' язки
  • Бібліотека C++ з прив' язками C# (
  • LLamaSap
  • Підтримує СУДУ
  • Підтримка широкої моделі (Llama, Mistral тощо)

Дуже активний розвиток

TorchSap

Прив' язки PyTorch для.NET

  1. Найбільш гнучкийКрива навчання уніфікатора
  2. Я прив'язуюся доLLamaSap
  3. **за його зрілість і легкість у використанні у популярних моделях.**6.
  4. Керування контекстними вікнами і запити до інженеріїУ LLM обмежені контекстні вікна (наприклад, 4K, 8K, 32K- маркери).
  5. **Нам потрібно:**Отримати найвідповідніший попередній вміст (верхній K з векторного пошуку)

Вмістити їх у контекстне вікно з поточним чернетом

Структурувати запит на допомогу у запису

Залишати місце для створеної пропозиції

  • **Це складніше, ніж здається.**Ми будемо вивчати стратегії, такі як:
  • Динамічний K- вибір, заснований на тому, що ви зараз пишетеПеревпорядкування отриманих шматків за допомогою рецензування

Інтелектуальне придушення контексту

Використані фрагменти коду

- Більшість прикладів з РАГ є в Python.

- Оптимізовано для допомоги в записуванні блогів, а не для загального створення вмісту

(заклади на час написання)

  • **C# 13- Сучасні особливості мови.**Бібліотеки AI/ML
  • **ONNX Runtime**або

LLamaSap

  • LM Culse

Microsoft.ML

  • - Потенційно для деяких завданьRecordTranssexer через ONNX
  • - ВбудованіБаза даних векторів
  • Qdrantабо
  • pgvector- Щоб бути визначеним

Робота з блоками інтерфейсу

  • WPFна
  • Сучасний WPFабо
  • Авалоніяgreece_ prefectures. kgm- Сучасний інтерфейс стільниці

Підтримувальні інструменти

  • Markdig- Вже використано для аналізу.
  • Панель- За запуск QDrant або інших служб
  • Ядро блокування сутності- Якщо ми використаємо pgvector
  • Стек GPUКУДА

12.x

  • **(заклади на час написання)**кДНunit description in lists
  • - Примітиви глибокого навчанняОбмірковування швидкодії
  • **Різні налаштування обладнання мають різні можливості:**З 8GB VRAM (minimum)
  • Розмір моделі: моделі параметрів 7Б з квантизацією Q4

Пакетна обробка

: Вбудовування процесів у менші пакети

  1. Керування пам' яттю
  2. : Потрібні ретельні моніторинги VRAM
  3. Працює добре для
  4. : Помічник написання, створення вбудовування
  5. З 12GB+ VRAM (Comfortable)
  6. Розмір моделі

: 7Б з високою якістю квантування (Q5/Q6)

Пакетна обробка

: Більші пакети для швидшого проходження**Крім того, можна запустити**: Деякі моделі 13Б з агресивною квантацією

  • З 16GB+ VRAM (Моє налаштування)
  • Розмір моделі
  • : зручно використовувати моделі параметрів 7B- 13B
  • Пакетна обробка
  • : Повні пакети, мінімальні обмеження

Швидкі висновки

: Час напівсекунди відповіді

Верхня кімната

  • : Може експериментувати з різними моделямиЛише ЦП (зворотна)
  • Все працює, тільки повільніше
  • Вбудовані: 5- 10x повільніше, ніж GPU
  • Підсумок LLM: 10- 50x повільніше, ніж GPU
  • Все ще придатний для використання: За помічника з терпінням!

Наближається розвиток

Ми побудуємо це поступово:

Почати з найпростіших компонентів (читання знаків, кусочок)

Додати створення вбудовування (можна почати з API, заснованого на локальному інтерфейсі)

Отримати роботу з векторним пошуком

Створити базовий інтерфейс

Інтегрувати LLM

Запис простої програми C# для перевірки доступу до GPU

Виконання базової перевірки оцінки з ONNX Runtime

Технічна документація- Збереження послідовного стилю у великих наборах документів!

Finding related posts...
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.