Your shopping cart

Süni intellekt

Lokal LLM-lərdə Strukturlaşdırılmış Çıxışın Tətbiqi

Lokal LLM-lərdən istifadə edərkən çıxışları əncirdən edirik. Pydantic və Ollama vasitəsilə strukturlaşdırılmış məlumatları necə əldə etmək olar, və hansı hallarda sadəcə sxema sıralanması kifayət deyil, məzmunun düzgünlüyü də vacib olur.

  • DatalabAcademy AI
  • 10 Avqust 2026
  • 9 dəq
Lokal LLM-lərdə Strukturlaşdırılmış Çıxışın Tətbiqi

Lokal dil modelləri (LLM) həssas məlumatlarınızı qorumağa və bulud xidmətlərinə asılılığı azaltmağa imkan verir. Lakin modeli lokal olaraq işlətmək yalnız ilk addımdır. Praktiki tətbiqlərdə LLM adətən daha böyük iş axınının bir hissəsidir və onun çıxışları digər komponentlər tərəfindən istifadə edilməlidir. Məhz bu yerlərdə sərbəst mətn yığını problematik olur—biz proqram modeli asanlıqla oxuya biləcəyi müəyyən strukturda cavab almaq istəyirik.

Strukturlaşdırılmış Çıxış Nədir və Nə Üçün Lazımdır?

Strukturlaşdırılmış çıxış (Structured Output), LLM-in çıxışını öncədən müəyyən edilmiş sxema (şəkil) əsasında məhdudlaşdırır. Əvvəlcə ilərin beklədiyimiz formanı Pydantic kimi bir validator istifadə edərək təyin edirik. Lokal xidmət platforması (Ollama kimi) model generasiyasını bu sxemaya tabe etdirər. Nəticədə biz standart Python obyektini alırıq ki, onu kodumuzda asanlıqla işlədə bilərik.

Praktik nümunə: ağıllı ev tətbiqində fərdi məlumatları lokal modeldə emallaşdırıb təmizləyirik, sonra isə daha güçlü bulud LLM-ə yalnız zəruri strukturlaşdırılmış məlumatları göndəririk. Bu yolla məlumat məxfiliyi qorunur, işçiliyi isə optimallaşdırırıq.

Tətbiqin Texniki Əsasları: Pydantic və Ollama

Strukturlaşdırılmış çıxışı həyata keçirmək üçün əvvəlcə Pydantic modelləri ilə sxema müəyyən edirik. Məsələn, ağıllı ev kontekstində vəzifə cədvəlinə düşən cihazları təsvir edən modeli yazırıq:

  • Cihazın adı
  • İşləmə müddəti (dəqiqə)
  • Ən erkən başlama vaxtı
  • Son bitiş vaxtı
  • Elektrik istifadəsi (kWh)

Pydantic modelinin model_json_schema() metodu bu sxemani JSON formatına çevirir. Ollama platformasına format parametri vasitəsilə göndərilən bu sxema, model generasiyasını müəyyən bir JSON strukturasına məhdudlaşdırır. Model cavab verdikdən sonra model_validate_json() metodu cavabı yenidən Pydantic modeli ilə parse edir.

Prosesi realizə etmək üçün Gemma 4 (4 milyard parametr) lokal modeli, Ollama xidmət platforması və Python Ollama klienti istifadə olunur. Əvvəlcə Ollama quraşdırılır və Gemma 4 modeli aşağı yüklənir. Sonra sadə Python funksiyası ilə modeldən strukturlaşdırılmış cavab alırıq.

Praktik Tətbiq: Ağıllı Ev Nümunəsi

Nümunədə istifadəçi "Bulaşıqcının indi və ya sonra işləməsi məsləhətmidər?" sualını soruşur. Ev kontekstində ev robotunun vakuum cihazı, bulaşıqcı, elektromobil şarj cihazı, qurutucı və çamaşırxana maşınası barədə məlumat var. Hər cihazın başlama vaxtı, işləmə müddəti, elektrik istifadəsi və vaxt məhdudiyyətləri vardır. Elektrik tarifəsi saata görə dəyişir (17:00-20:00 arası 0.45 $/kWh, 20:00-00:00 arası 0.22 $/kWh və s.). Lokal LLM-in vəzifəsi bu fərdi məlumatlardan cədvəl hazırlama üçün zəruri olan strukturlaşdırılmış konteksti çıxarmaqdır, şəxsi detalları isə aradan qaldırmaqdır.

Struktur Sıralanması Məzmun Düzgünlüyünü Təmin Etmir

Birbaşa bir addımda Gemma 4-dən bütün məlumatı strukturlaşdırılmış formada çıxarmasını istədikdə, model etibarlı JSON qaytarsa da, məzmun problemi oldu. Robot vakuum, ev qeydlərində açıq şəkildə "bugün daha çox vacuuming gərəkmir" deyilsə də, qaytarılan cihaz siyahısına daxil edildi.

Bu, mühüm bir dərs göstərir: Strukturlaşdırılmış çıxış yalnız cavabın formasını təmin edir, məzmunun düzgünlüyünü deyil. Gemma 4 bir addımda bir neçə hər-hansı vəzifə görməli idi: hansı cihazlar hələ cədvələ düşməli olduğunu müəyyənləşdirmə, onlar üçün fakt çıxarma və bu faktları doğru sxema sahələrinə xəritələmə. Kiçik lokal model üçün bu çox ağır vəzifə idi.

Həll: Vəzifə Parçalanması

Vəzifəni iki addıma bölmə stratejisi daha yaxşı nəticə verdi:

  • Addım 1: Hansı cihazlar cədvələ düşməlidir? Yalnız bulaşıqcı, elektromobil şarj cihazı və çamaşırxana maşınasını müəyyənləş (vakuumu kənarlaşdır).
  • Addım 2: Seçilmiş cihazlar üçün bütün lazımı faktları çıxar və tam SchedulingContext-i doldur.

Birinci addımda kiçik sxema (yalnız cihaz adları) istifadə olunur. İkinci addımda isə bu siyahısı orijinal sual və ev konteksti ilə birlikdə geri göndərilir. Nəticədə model vakuumu düzgün kənarlaşdırır, bütün cihazlar üçün düzgün məlumatlar çıxarır və şəxsi detalları silir.

Praktik Təsirlər: Kiçik LLM-lərlə Necə İşləmək Olar

Lokal LLM-lər miqyası və qabiliyyətinə görə məhdud olsa da, müəyyən strategiyalar onların faydalılığını artırır:

  • Kompleks tapşırıqları sadə addımlara bölün
  • İlk adımda əhatə müəyyənləşdirin, sonra detalları emallaşdırın
  • Strukturlaşdırılmış çıxışı yalnız forması yox, məzmunu da validate etmək üçün istifadə edin
  • Həssas məlumatları lokal olaraq emallaşdırıb, yalnız təmizlənmiş strukturlaşdırılmış məlumatları buluda göndərin

Bu yanaşma lokal LLM-lərin iş axınlarına inteqrasiyasını sadə və etibarlı edir.

Mənbə: Towards Data Science