>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
TypeScript

Come Google cerca di portare ordine nello sviluppo di app AI con Genkit

Gli sviluppatori del team Firebase hanno reso open-source Genkit — un framework per la creazione di funzionalità AI. Scopriamo se aiuta a combinare Gemini, OpenAI e Ollama in un singolo progetto senza codice spaghetti.

Perché abbiamo bisogno di un altro framework AI

Se hai mai provato ad aggiungere una chiamata LLM al tuo backend, probabilmente hai seguito questo percorso. Prima scrivi una semplice chiamata fetch all'API di OpenAI. Poi devi parsare JSON rigorosamente valido dalla risposta del modello e ricorri a workaround con espressioni regolari. Successivamente, il business chiede di passare a Gemini o di connettere Ollama locale per i test, ma ognuno ha un SDK diverso. Il risultato è un progetto ingombro di wrapper personalizzati, sistemi di prompt templating e logging sparso ovunque.

La community Python affronta questo problema con LangChain o LlamaIndex. Ma se il tuo stack principale è TypeScript o Go, le alternative sono state scarse fino a poco tempo fa. Gli ingegneri Google del team Firebase hanno incontrato lo stesso problema internamente e hanno costruito Genkit. Ora il progetto è disponibile come open source.

Logo Genkit

Cosa può fare il framework

Il concetto di Genkit è semplice: fornire un'interfaccia unificata ai diversi provider di reti neurali e gestire il lavoro di routine. Invece di imparare SDK specifici per ogni servizio, lavori con un'API universale.

Attualmente sono supportati diversi linguaggi:

  • JavaScript e TypeScript sono production-ready
  • Go è production-ready
  • Python è in Beta
  • Dart è in Preview

Out of the box, i provider supportati includono Google Gemini, OpenAI, Anthropic e Ollama. Passare da un modello all'altro spesso richiede solo una singola modifica alla configurazione.

Vediamo un esempio minimo di inizializzazione e chiamata a un modello 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?'
});

Il codice appare pulito e non vincola il backend a richieste HTTP di basso livello.

Output tipizzato e Tool Calling

Uno dei compiti più comuni nello sviluppo di servizi AI è far restituire al modello non solo testo, ma una struttura dati. Genkit funziona con schemi Zod in TypeScript e meccanismi simili in altri linguaggi. Descrivi lo schema della risposta, lo passi al modello e ottieni un oggetto valido indietro.

La seconda funzionalità utile è chiamare funzioni esterne, o tool calling. Se il modello ha bisogno di controllare il meteo attuale o interrogare un database, registri un tool con una descrizione dei suoi argomenti di input. Genkit passa automaticamente la descrizione della funzione all'LLM, riceve la decisione di chiamata ed esegue il codice necessario.

Il framework include anche:

  • Prompt templating tramite il formato Dotprompt
  • Streaming delle risposte
  • Ricerca vettoriale e RAG per lavorare con basi di conoscenza
  • Catene di chiamate e agenti tramite i meccanismi di Flows

Debug locale tramite Developer UI

Quando si sviluppano funzionalità AI complesse, la parte più difficile è capire esattamente dove si è interrotta la catena di chiamate. Il modello ha restituito il formato sbagliato? Un tool è andato in crash con un errore? Il prompt era troppo lungo?

Gli sviluppatori di Genkit hanno creato un'utilità CLI locale e una GUI per il debugging. Esegui il comando genkit start e una dashboard si apre nel tuo browser.

Screenshot della Developer UI di Genkit

Questa UI ti permette di fare diverse cose:

  • Eseguire prompt e catene manualmente in una sandbox interattiva
  • Confrontare i risultati di modelli diversi sullo stesso prompt
  • Visualizzare trace dettagliate con analisi passo-passo, timestamp e input e output precisi per ogni fase

Avere una UI locale accelera significativamente le iterazioni. Non devi fare deploy in un ambiente di test o scrivere scaffolding di logging ogni volta.

Dove fare il deploy e come monitorare

Sebbene Genkit sia stato creato all'interno di Google e si integri con Firebase Cloud Functions e Google Cloud Run, non ti blocca nell'infrastruttura Google Cloud. Puoi fare deploy dell'applicazione su Node.js o Go in qualsiasi container Docker, su Vercel, AWS o sui tuoi server.

In produzione, il framework può inviare metriche e trace a sistemi di monitoraggio. Vedrai conteggi delle richieste, latenze, errori e costi dei token direttamente nella console Firebase o attraverso soluzioni di terze parti basate su OpenTelemetry.

Chi dovrebbe provarlo

Genkit si è rivelato uno strumento equilibrato. A differenza di alcune librerie open-source che cercano di fare tutto, mostra un approccio di ingegneria attento.

Il progetto è utile se:

  • Scrivi servizi AI in TypeScript o Go e non vuoi passare a Python
  • Hai bisogno di un livello di astrazione unificato su OpenAI, Gemini e modelli locali
  • Sei stanco di fare debug di agenti AI complessi senza trace chiare

Il supporto Python è ancora in beta e Dart è ancora in sviluppo. Ma la versione per Node.js è già abbastanza pronta per servizi in produzione. Puoi provare gli esempi e leggere la documentazione sul sito ufficiale genkit.dev o nel repository GitHub genkit-ai/genkit.

Progetti correlati