>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
TypeScript

Hoe Google probeert orde te scheppen in AI-app-ontwikkeling met Genkit

Ontwikkelaars van het Firebase-team hebben Genkit open source gemaakt — een framework voor het bouwen van AI-functies. Laten we ontdekken of het helpt om Gemini, OpenAI en Ollama in één project te combineren zonder rommelige code.

Waarom hebben we nog een AI-framework nodig

Als je ooit een LLM-call aan je backend hebt toegevoegd, heb je waarschijnlijk dit pad bewandeld. Eerst schrijf je een eenvoudige fetch-call naar de OpenAI API. Vervolgens moet je strikt geldige JSON parseren uit het antwoord van het model, en je neemt je toevlucht tot workarounds met reguliere expressies. Daarna vraagt de business om over te schakelen naar Gemini of een lokale Ollama te verbinden voor testen, maar elk heeft een ander SDK. Het resultaat is een project vol met aangepaste wrappers, prompt-templatingsystemen en verspreide logging.

De Python-community pakt dit aan met LangChain of LlamaIndex. Maar als je primaire stack TypeScript of Go is, waren alternatieven tot voor kort schaars. Google-engineers van het Firebase-team kwamen intern hetzelfde probleem tegen en bouwden Genkit. Nu is het project beschikbaar als open source.

Genkit logo

Wat het framework kan doen

Het concept van Genkit is eenvoudig: bied een uniforme interface naar verschillende neural network-providers en neem het routinematige werk voor je rekening. In plaats van specifieke SDK's voor elke service te leren, werk je met een universele API.

Er worden momenteel verschillende talen ondersteund:

  • JavaScript en TypeScript zijn productierijp
  • Go is productierijp
  • Python is in bèta
  • Dart is in preview

Out of the box worden providers ondersteund zoals Google Gemini, OpenAI, Anthropic en Ollama. Overschakelen tussen modellen vereist vaak slechts één configuratieregel-aanpassing.

Laten we een minimaal voorbeeld bekijken van het initialiseren en aanroepen van een model in 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?'
});

De code ziet er clean uit en bindt de backend niet aan low-level HTTP-requests.

Getypte output en tool calling

Een van de meest voorkomende taken bij AI-serviceontwikkeling is het model laten retourneren niet alleen tekst, maar een datastructuur. Genkit werkt met Zod-schemas in TypeScript en vergelijkbare mechanismen in andere talen. Je beschrijft het antwoordschema, geeft het door aan het model, en krijgt een geldig object terug.

De tweede nuttige feature is het aanroepen van externe functies, oftewel tool calling. Als het model de huidige weersomstandigheden moet controleren of een database moet bevragen, registreer je een tool met een beschrijving van de invoerargumenten. Genkit geeft automatisch de functiebeschrijving door aan de LLM, ontvangt de aanroepbeslissing en voert de benodigde code uit.

Het framework omvat ook:

  • Prompt-templating via het Dotprompt-formaat
  • Streaming responses
  • Vector search en RAG voor het werken met kennisbanken
  • Call chains en agents via Flows-mechanismen

Lokaal debuggen via Developer UI

Bij het ontwikkelen van complexe AI-features is het moeilijkste deel begrijpen waar de call chain precies is gebroken. Heeft het model het verkeerde formaat geretourneerd? Is een tool gecrasht met een fout? Was de prompt te lang?

De Genkit-ontwikkelaars hebben een lokale CLI-hulpprogramma en GUI voor debugging gemaakt. Je voert de genkit start opdracht uit, en er opent een dashboard in je browser.

Genkit Developer UI screenshot

Met deze UI kun je verschillende dingen doen:

  • Prompts en chains handmatig uitvoeren in een interactieve sandbox
  • Resultaten van verschillende modellen op dezelfde prompt vergelijken
  • Gedetailleerde traces bekijken met stapsgewijze breakdowns, timestamps en nauwkeurige inputs en outputs voor elke fase

Een lokale UI versnelt iteraties aanzienlijk. Je hoeft niet te deployen naar een testomgeving of elke keer logging-scaffolding te schrijven.

Waar te deployen en hoe te monitoren

Hoewel Genkit binnen Google is gemaakt en integreert met Firebase Cloud Functions en Google Cloud Run, lockt het je niet vast aan Google Cloud-infrastructuur. Je kunt de applicatie deployen op Node.js of Go in elke Docker-container, op Vercel, AWS, of je eigen servers.

In productie kan het framework metrics en traces sturen naar monitoring-systemen. Je ziet request-aantallen, latenties, fouten en token-kosten direct in de Firebase-console of via third-party oplossingen gebaseerd op OpenTelemetry.

Wie zou het moeten proberen

Genkit blijkt een gebalanceerd hulpmiddel te zijn. In tegenstelling tot sommige open-source-bibliotheken die alles willen doen, toont het een zorgvuldige engineering-aanpak.

Het project is nuttig als:

  • Je AI-services schrijft in TypeScript of Go en niet wilt overschakelen naar Python
  • Je een uniforme abstractielaag nodig hebt over OpenAI, Gemini en lokale modellen
  • Je het beu bent om complexe AI-agents te debuggen zonder duidelijke traces

Python-ondersteuning is nog in bèta en Dart is nog in ontwikkeling. Maar de Node.js-versie is al behoorlijk klaar voor productiediensten. Je kunt voorbeelden uitproberen en de documentatie lezen op de officiële genkit.dev-website of in de genkit-ai/genkit GitHub-repository.

Gerelateerde projecten