>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
TypeScript

Jak Google próbuje uporządkować tworzenie aplikacji AI za pomocą Genkit

Deweloperzy z zespołu Firebase udostępnili Genkit jako otwarte oprogramowanie — framework do budowania funkcji AI. Przyjrzyjmy się, czy pomaga łączyć Gemini, OpenAI i Ollama w jednym projekcie bez kodu spaghetti.

Dlaczego potrzebujemy kolejnego frameworka AI

Jeśli próbowałeś dodać wywołanie LLM do swojego backendu, prawdopodobnie podążałeś tą ścieżką. Najpierw piszesz proste wywołanie fetch do API OpenAI. Następnie musisz parsować ściśle poprawny JSON z odpowiedzi modelu i uciekasz się do obejść z wyrażeniami regularnymi. Wkrótce strona biznesowa prosi o przejście na Gemini lub połączenie lokalnego Ollama do testowania, ale każdy z nich ma inny SDK. Rezultatem jest projekt zaśmiecony niestandardowymi wrapperami, systemami szablonów promptów i rozproszonym logowaniem.

Społeczność Pythona radzi sobie z tym za pomocą LangChain lub LlamaIndex. Ale jeśli Twój główny stos to TypeScript lub Go, alternatywy były do niedawna ograniczone. Inżynierowie Google z zespołu Firebase napotkali ten sam problem wewnętrznie i zbudowali Genkit. Teraz projekt jest dostępny jako otwarte oprogramowanie.

Genkit logo

Co oferuje ten framework

Koncepcja Genkit jest prosta: zapewnić ujednoliconą interfejs do różnych dostawców sieci neuronowych i zająć się rutynową pracą. Zamiast uczyć się konkretnych SDK dla każdej usługi, pracujesz z uniwersalnym API.

Obecnie wspierane są następujące języki:

  • JavaScript i TypeScript są gotowe do produkcji
  • Go jest gotowe do produkcji
  • Python jest w wersji Beta
  • Dart jest w wersji Preview

Out of the box wspierani są dostawcy tacy jak Google Gemini, OpenAI, Anthropic i Ollama. Przełączanie między modelami często wymaga jedynie zmiany jednej linii konfiguracji.

Przyjrzyjmy się minimalnemu przykładowi inicjalizacji i wywołania modelu w TypeScript:

import { genkit } from 'genkit';
import { googleAI } from '@genkit-ai/google-genai';

const ai = genkit({ plugins: [googleAI()] });

const { text } = await ai.generate({
    model: googleAI.model('gemini-flash-latest'),
    prompt: 'What is the meaning of life?'
});

Kod wygląda przejrzyście i nie wiąże backendu z niskopoziomowymi żądaniami HTTP.

Typowane odpowiedzi i wywoływanie narzędzi

Jednym z najczęstszych zadań w tworzeniu usług AI jest sprawienie, by model zwracał nie tylko tekst, ale strukturę danych. Genkit współpracuje ze schematami Zod w TypeScript i podobnymi mechanizmami w innych językach. Opisujesz schemat odpowiedzi, przekazujesz go do modelu i otrzymujesz prawidłowy obiekt.

Drugą przydatną funkcją jest wywoływanie zewnętrznych funkcji, czyli tool calling. Jeśli model musi sprawdzić aktualną pogodę lub wykonać zapytanie do bazy danych, rejestrujesz narzędzie z opisem jego argumentów wejściowych. Genkit automatycznie przekazuje opis funkcji do LLM, odbiera decyzję o wywołaniu i wykonuje niezbędny kod.

Framework oferuje również:

  • Szablony promptów w formacie Dotprompt
  • Strumieniowe odpowiedzi
  • Wyszukiwanie wektorowe i RAG do pracy z bazami wiedzy
  • Łańcuchy wywołań i agentów za pomocą mechanizmów Flows

Debugowanie lokalne za pomocą Developer UI

Przy tworzeniu złożonych funkcji AI najtrudniejsze jest zrozumienie, gdzie dokładnie łańcuch wywołań się przerwał. Czy model zwrócił nieprawidłowy format? Czy narzędzie zawiodło z błędem? Czy prompt był zbyt długi?

Twórcy Genkit stworzyli lokalne narzędzie CLI i GUI do debugowania. Uruchamiasz polecenie genkit start, a w przeglądarce otwiera się dashboard.

Zrzut ekranu Genkit Developer UI

To UI umożliwia:

  • Uruchamianie promptów i łańcuchów ręcznie w interaktywnej piaskownicy
  • Porównywanie wyników z różnych modeli na tym samym prompcie
  • Przeglądanie szczegółowych śladów z krok po kroku podziałami, znacznikami czasu oraz precyzyjnymi danymi wejściowymi i wyjściowymi dla każdego etapu

Posiadanie lokalnego UI znacząco przyspiesza iteracje. Nie musisz za każdym razem wdrażać do środowiska testowego ani pisać szkieletu logowania.

Gdzie wdrażać i jak monitorować

Chociaż Genkit powstał w Google i integruje się z Firebase Cloud Functions oraz Google Cloud Run, nie blokuje Cię w infrastrukturze Google Cloud. Możesz wdrożyć aplikację na Node.js lub Go w dowolnym kontenerze Docker, na Vercel, AWS lub na własnych serwerach.

W produkcji framework może wysyłać metryki i ślady do systemów monitoringu. Zobaczysz liczbę żądań, opóźnienia, błędy i koszty tokenów bezpośrednio w konsoli Firebase lub poprzez rozwiązania stron trzecich oparte na OpenTelemetry.

Dla kogo to jest

Genkit okazał się zrównoważonym narzędziem. W przeciwieństwie do niektórych bibliotek open-source próbujących robić wszystko, wykazuje przemyślane podejście inżynieryjne.

Projekt jest przydatny, jeśli:

  • Tworzysz usługi AI w TypeScript lub Go i nie chcesz przełączać się na Pythona
  • Potrzebujesz ujednoliconej warstwy abstrakcji nad OpenAI, Gemini i modelami lokalnymi
  • Masz dość debugowania złożonych agentów AI bez wyraźnych śladów

Wsparcie dla Pythona jest nadal w wersji beta, a Dart nadal się rozwija. Ale wersja Node.js jest już całkiem gotowa do usług produkcyjnych. Możesz wypróbować przykłady i przeczytać dokumentację na oficjalnej stronie genkit.dev lub w repozytorium GitHub genkit-ai/genkit.

Powiązane projekty