Kontekst
Ten sam brytyjski fintech AI co w case study o pipeline’ach LLM, objęty tym samym NDA. Ta strona opisuje wzorzec, a nie system klienta.
Każdy klient chciał z pipeline’u własnego wyniku: własnych sekcji, własnych pytań, własnego stylu.
Problem
Wynik każdego klienta był kodem: skopiowanym z istniejącego i zmienionym. Nowy klient oznaczał czas inżynierów i release, tak samo każda późniejsza zmiana. Nawet przeredagowanie jednej sekcji wymagało developera, code review i deployu.
Wzorzec
Niech klienci sami definiują wynik. Zamiast kodu dla każdego klienta: edytor, w którym admin buduje szablon, czyli uporządkowaną listę sekcji, z których każda jest opisana zwykłym językiem: tytuł, pytania, na które ma odpowiedzieć, punkty albo akapity i poziom szczegółowości.
01 · Nowy klient albo zmiana
Admin definiuje wynik: uporządkowaną listę sekcji, z których każda jest opisana zwykłym językiem.
- 01 · Nowy klient albo zmiana Admin definiuje wynik: uporządkowaną listę sekcji, z których każda jest opisana zwykłym językiem.
- 02 · Definicja Jeden dokument na szablon, walidowany względem schematu przy każdym zapisie.
- 03 · Wejście na produkcję Publikacja tworzy niezmienną wersję. Bez release’u.
- 04 · Każde uruchomienie Szablon staje się tym samym grafem kroków, którego używają pipeline’y w kodzie.
- Walidowany względem schematu przy każdym zapisie, więc zepsuty szablon nigdy nie zostaje zapisany.
- Wersje robocze i opublikowane. Każda edycja to wersja robocza; publikacja tworzy niezmienną wersję, a uruchomienie czyta zawsze tylko wersję opublikowaną, nigdy roboczą, którą ktoś jeszcze edytuje. Każdą wcześniejszą wersję można przywrócić.
- Z zakresem: wygrywa najbardziej szczegółowy opublikowany szablon, na przykład szablon jednego użytkownika przed szablonem całego klienta.
- Wykonywany przez ten sam silnik co pipeline’y w kodzie, więc nie ma drugiego runtime’u do utrzymania.
Decyzje i kompromisy
-
Uporządkowana lista sekcji, a nie dowolny graf
Admin nie zbuduje niepoprawnego pipeline’u, więc walidacja zostaje mała: kolejność zgadza się z sekcjami, nazwy są unikalne, limity są zachowane.
KOMPROMIS Nowe rodzaje kroków wciąż wymagają kodu
-
Niezmienne opublikowane wersje
Historia przychodzi razem z wersjami, a uruchomienie czyta zawsze tylko niezmienną opublikowaną kopię.
KOMPROMIS Przywracanie i audyt są odtwarzane z wersji, a nie zapisywane
-
Szablony obok pipeline’ów w kodzie
Klienci przechodzą pojedynczo, za feature flagą, bez migracji typu big bang. Nietypowe potrzeby wciąż dostają kod.
KOMPROMIS O wyniku mogą teraz decydować dwie rzeczy
-
Zbudowany dla osób nietechnicznych
Pytania zwykłym językiem zamiast typowanych pól, kilka poziomów szczegółowości zamiast ustawień promptu i limity, o które nikt nie potknie się przypadkiem.
KOMPROMIS Mniej swobody niż w kodzie
Wyniki
Nowego klienta włącza się konfiguracją zamiast nowego kodu, a klient sam zmienia swój szablon i od razu widzi wynik. System klienta i liczby pomijam ze względu na NDA.
Stack
- React
- TypeScript
- Node.js
- AWS