Questa pagina mostra come utilizzare i flussi Genkit nelle app Angular.
Prima di iniziare
Devi conoscere il concetto di flussi di Genkit e come scriverli.
Creare un progetto Angular
Questa guida utilizzerà un'app Angular con SSR con routing del server.
Puoi creare un nuovo progetto con il routing lato server con l'interfaccia a riga di comando Angular:
ng new --ssr --server-routing
Puoi anche aggiungere il routing lato server a un progetto esistente con il comando ng add
:
ng add @angular/ssr --server-routing
Installa le dipendenze Genkit
Installa le dipendenze Genkit nella tua app Angular, come faresti per qualsiasi progetto Genkit:
Installa la libreria Genkit di base:
npm i --save genkit
Installa almeno un plug-in del modello.
Ad esempio, per utilizzare l'IA di Google:
npm i --save @genkit-ai/googleai
In alternativa, per utilizzare Vertex AI:
npm i --save @genkit-ai/vertexai
Installa la libreria Genkit Express:
npm i --save @genkit-ai/express
Installa Zod:
npm i --save zod
Se non hai installato Genkit CLI a livello globale, puoi installarlo come dipendenza di sviluppo. È consigliato anche lo strumento tsx, in quanto semplifica il test del codice. Tuttavia, entrambe queste dipendenze sono facoltative.
npm i --save-dev genkit-cli tsx
Definire i flussi Genkit
Crea un nuovo file nel progetto Angular per contenere i flussi Genkit: ad esempio src/genkit.ts
. Questo file può contenere i tuoi flussi senza modifiche.
Ad esempio:
import { gemini20Flash, googleAI } from "@genkit-ai/googleai";
import { genkit } from "genkit";
import { z } from "zod";
const ai = genkit({
plugins: [googleAI()],
model: gemini20Flash,
});
export const menuSuggestionFlow = ai.defineFlow(
{
name: "menuSuggestionFlow",
inputSchema: z.string(),
outputSchema: z.string(),
},
async (restaurantTheme) => {
const { text } = await ai.generate(
`Invent a menu item for a ${restaurantTheme} themed restaurant.`
);
return text;
}
);
Aggiungere route del server
Aggiungi le seguenti importazioni a src/server.ts
:
import { expressHandler } from '@genkit-ai/express';
import { menuSuggestionFlow } from './genkit';
Aggiungi la seguente riga dopo l'inizializzazione della variabile app
:
app.use(express.json());
Quindi, aggiungi un percorso per pubblicare il flusso:
app.post('/menu', expressHandler(menuSuggestionFlow));
Chiamare i flussi
Ora puoi eseguire i flussi dall'applicazione client.
Ad esempio, puoi sostituire i contenuti di
src/app/app.component.ts
con quanto segue:
import { Component, resource, signal } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { runFlow } from 'genkit/beta/client';
@Component({
selector: 'app-root',
imports: [FormsModule],
templateUrl: './app.component.html',
})
export class AppComponent {
menuInput = '';
theme = signal('');
menuResource = resource({
request: () => this.theme(),
loader: ({request}) => runFlow({ url: 'menu', input: request })
});
}
Apporta gli aggiornamenti corrispondenti a src/app/app.component.html
:
<h3>Generate a custom menu item</h3>
<input type="text" [(ngModel)]="menuInput" />
<button (click)="this.theme.set(menuInput)">Generate</button>
<br />
@if (menuResource.isLoading()) {
Loading...
} @else {
<pre>{{menuResource.value()}}</pre>
}
Testa la tua app in locale
Se vuoi eseguire l'app localmente, devi rendere disponibili le credenziali per il servizio API del modello che hai scelto.
Assicurati che l'AI di Google sia disponibile nella tua regione.
Genera una chiave API per l'API Gemini utilizzando Google AI Studio.
Imposta la variabile di ambiente
GEMINI_API_KEY
sulla tua chiave:export GEMINI_API_KEY=<your API key>
Nella console Cloud, abilita l'API Vertex AI per il tuo progetto.
Imposta alcune variabili di ambiente e utilizza lo strumento
gcloud
per configurare le credenziali predefinite dell'applicazione:export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
gcloud auth application-default login
Quindi, esegui l'app localmente come di consueto:
ng serve
Tutti gli strumenti di sviluppo di Genkit continuano a funzionare normalmente. Ad esempio, per caricare i flussi nell'interfaccia utente per sviluppatori:
npx genkit start -- ng serve
esegui il deployment dell'app
Quando esegui il deployment dell'app, devi assicurarti che le credenziali di tutti i servizi esterni che utilizzi (ad esempio il servizio API del modello scelto) siano disponibili per l'app di cui è stato eseguito il deployment. Consulta le seguenti pagine per informazioni specifiche sulla piattaforma di deployment scelta:
Passaggi successivi
- Esplora Genkit in un'app Angular di cui è stato eseguito il deployment: esamina un'implementazione di riferimento di più flussi Genkit che alimentano un'app Angular, quindi passa al codice in Firebase Studio.