Auf dieser Seite wird gezeigt, wie Sie Genkit-Abläufe als Serveraktionen in Ihren Next.js-Anwendungen verwenden können.
Hinweis
Sie sollten mit dem Genkit-Konzept von Abläufen und deren Erstellung vertraut sein.
Next.js-Projekt erstellen
Wenn Sie noch kein Next.js-Projekt haben, dem Sie generative KI-Funktionen hinzufügen möchten, können Sie eines erstellen, um die Schritte auf dieser Seite auszuführen:
npx create-next-app@latest
Genkit-Abhängigkeiten installieren
Installieren Sie die Genkit-Abhängigkeiten in Ihrer Next.js-Anwendung wie bei jedem Genkit-Projekt:
Installieren Sie die Genkit-Kernbibliothek:
npm i --save genkit
Installieren Sie mindestens ein Modell-Plug-in.
So verwenden Sie beispielsweise die KI von Google:
npm i --save @genkit-ai/googleai
So verwenden Sie Vertex AI:
npm i --save @genkit-ai/vertexai
Wenn Sie die Genkit-Befehlszeile nicht global installiert haben, können Sie sie als Entwicklungsabhängigkeit installieren. Das tsx-Tool wird ebenfalls empfohlen, da es das Testen Ihres Codes erleichtert. Beide Abhängigkeiten sind jedoch optional.
npm i --save-dev genkit-cli tsx
Genkit-Abläufe definieren
Erstellen Sie in Ihrem Next.js-Projekt eine neue Datei für Ihre Genkit-Flows, z. B. src/app/genkit.ts
. Diese Datei kann Ihre Abläufe ohne Änderungen enthalten. Da Sie Abläufe jedoch nur über ein Server-Backend ausführen können, müssen Sie die Anweisung 'use server'
oben in die Datei einfügen.
Beispiel:
'use server';
import { gemini15Flash, googleAI } from "@genkit-ai/googleai";
import { genkit, z } from "genkit";
const ai = genkit({
plugins: [googleAI()],
model: gemini15Flash,
});
export const menuSuggestionFlow = ai.defineFlow(
{
name: "menuSuggestionFlow",
inputSchema: z.string(),
outputSchema: z.string(),
},
async (restaurantTheme) => {
const { text } = await ai.generate({
model: gemini15Flash,
prompt: `Invent a menu item for a ${restaurantTheme} themed restaurant.`,
});
return text;
}
);
Abläufe aufrufen
Jetzt können Sie Ihre Workflows in Ihren Front-End-Code importieren und als Serveraktionen aufrufen.
Beispiel:
'use client';
import { menuSuggestionFlow } from './genkit';
import { useState } from 'react';
export default function Home() {
const [menuItem, setMenuItem] = useState<string>('');
async function getMenuItem(formData: FormData) {
const theme = formData.get('theme')?.toString() ?? '';
const suggestion = await menuSuggestionFlow(theme);
setMenuItem(suggestion);
}
return (
<main>
<form action={getMenuItem}>
<label htmlFor="theme">
Suggest a menu item for a restaurant with this theme:{' '}
</label>
<input type="text" name="theme" id="theme" />
<br />
<br />
<button type="submit">Generate</button>
</form>
<br />
<pre>{menuItem}</pre>
</main>
);
}
App lokal testen
Wenn Sie Ihre App lokal ausführen möchten, müssen Sie Anmeldedaten für den von Ihnen ausgewählten Modell-API-Dienst verfügbar machen.
Gemini (Google AI)
Prüfen Sie, ob Google AI in Ihrer Region verfügbar ist.
Erstellen Sie einen API-Schlüssel für die Gemini API mit Google AI Studio.
Legen Sie die Umgebungsvariable
GOOGLE_GENAI_API_KEY
auf Ihren Schlüssel fest:export GOOGLE_GENAI_API_KEY=<your API key>
Gemini (Vertex AI)
Aktivieren Sie in der Cloud Console die Vertex AI API für Ihr Projekt.
Legen Sie einige Umgebungsvariablen fest und verwenden Sie das Tool
gcloud
, um Standardanmeldedaten für die Anwendung einzurichten:export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
gcloud auth application-default login
Führen Sie die App dann wie gewohnt lokal aus:
npm run dev
Alle Entwicklungstools von Genkit funktionieren weiterhin wie gewohnt. So laden Sie beispielsweise Ihre Workflows in die Entwickler-UI:
npx genkit start -- npx tsx --watch src/app/genkit.ts
Anwendung bereitstellen
Wenn Sie Ihre App bereitstellen, müssen Sie dafür sorgen, dass die Anmeldedaten für alle verwendeten externen Dienste (z. B. der von Ihnen ausgewählte Modell-API-Dienst) für die bereitgestellte App verfügbar sind. Auf den folgenden Seiten finden Sie Informationen speziell für die von Ihnen ausgewählte Bereitstellungsplattform: