На этой странице показано, как вы можете использовать потоки Genkit в качестве действий сервера в ваших приложениях Next.js.
Прежде чем начать
Вы должны быть знакомы с концепцией потоков Genkit и тем, как их писать.
Создайте проект Next.js
Если у вас еще нет проекта Next.js, в который вы хотите добавить функции генеративного ИИ, вы можете создать его, чтобы следить за этой страницей:
npx create-next-app@latest
Установите зависимости Genkit
Установите зависимости Genkit в свое приложение Next.js так же, как и для любого проекта Genkit:
Установите основную библиотеку Genkit:
npm i --save genkit
Установите хотя бы один плагин модели.
Например, чтобы использовать Google AI:
npm i --save @genkit-ai/googleai
Или использовать Vertex AI:
npm i --save @genkit-ai/vertexai
Если вы не установили Genkit CLI глобально, вы можете установить его как зависимость разработки. Также рекомендуется использовать инструмент tsx, поскольку он делает тестирование вашего кода более удобным. Однако обе эти зависимости не являются обязательными.
npm i --save-dev genkit-cli tsx
Определить потоки Genkit
Создайте новый файл в проекте Next.js, который будет содержать потоки Genkit: например, src/app/genkit.ts
. Этот файл может содержать ваши потоки без изменений; однако, поскольку вы можете запускать потоки только с серверной части сервера, вам необходимо добавить директиву 'use server'
в начало файла.
Например:
'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;
}
);
Вызовите свои потоки
Теперь в коде внешнего интерфейса вы можете импортировать потоки и вызывать их как действия сервера.
Например:
'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>
);
}
Протестируйте свое приложение локально
Если вы хотите запустить свое приложение локально, вам необходимо предоставить учетные данные для выбранной вами службы API модели.
Близнецы (ИИ Google)
Убедитесь, что Google AI доступен в вашем регионе .
Создайте ключ API для Gemini API с помощью Google AI Studio.
Установите для переменной среды
GOOGLE_GENAI_API_KEY
свой ключ:export GOOGLE_GENAI_API_KEY=<your API key>
Близнецы (Vertex AI)
В облачной консоли включите API Vertex AI для своего проекта.
Установите некоторые переменные среды и используйте инструмент
gcloud
для настройки учетных данных приложения по умолчанию:export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
gcloud auth application-default login
Затем запустите приложение локально, как обычно:
npm run dev
Все инструменты разработки Genkit продолжают работать в обычном режиме. Например, чтобы загрузить потоки в пользовательский интерфейс разработчика:
npx genkit start -- npx tsx --watch src/app/genkit.ts
Разверните свое приложение
При развертывании приложения вам необходимо убедиться, что учетные данные для всех используемых вами внешних служб (например, службы API выбранной модели) доступны для развернутого приложения. См. следующие страницы для получения информации, относящейся к выбранной вами платформе развертывания:
,На этой странице показано, как вы можете использовать потоки Genkit в качестве действий сервера в ваших приложениях Next.js.
Прежде чем начать
Вы должны быть знакомы с концепцией потоков Genkit и тем, как их писать.
Создайте проект Next.js
Если у вас еще нет проекта Next.js, в который вы хотите добавить функции генеративного ИИ, вы можете создать его, чтобы следить за этой страницей:
npx create-next-app@latest
Установите зависимости Genkit
Установите зависимости Genkit в свое приложение Next.js так же, как и для любого проекта Genkit:
Установите основную библиотеку Genkit:
npm i --save genkit
Установите хотя бы один плагин модели.
Например, чтобы использовать Google AI:
npm i --save @genkit-ai/googleai
Или использовать Vertex AI:
npm i --save @genkit-ai/vertexai
Если вы не установили Genkit CLI глобально, вы можете установить его как зависимость разработки. Также рекомендуется использовать инструмент tsx, поскольку он делает тестирование вашего кода более удобным. Однако обе эти зависимости не являются обязательными.
npm i --save-dev genkit-cli tsx
Определить потоки Genkit
Создайте новый файл в проекте Next.js, который будет содержать потоки Genkit: например, src/app/genkit.ts
. Этот файл может содержать ваши потоки без изменений; однако, поскольку вы можете запускать потоки только с серверной части сервера, вам необходимо добавить директиву 'use server'
в начало файла.
Например:
'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;
}
);
Вызовите свои потоки
Теперь в коде внешнего интерфейса вы можете импортировать потоки и вызывать их как действия сервера.
Например:
'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>
);
}
Протестируйте свое приложение локально
Если вы хотите запустить свое приложение локально, вам необходимо предоставить учетные данные для выбранной вами службы API модели.
Близнецы (ИИ Google)
Убедитесь, что Google AI доступен в вашем регионе .
Создайте ключ API для Gemini API с помощью Google AI Studio.
Установите для переменной среды
GOOGLE_GENAI_API_KEY
свой ключ:export GOOGLE_GENAI_API_KEY=<your API key>
Близнецы (Vertex AI)
В облачной консоли включите API Vertex AI для своего проекта.
Установите некоторые переменные среды и используйте инструмент
gcloud
для настройки учетных данных приложения по умолчанию:export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
gcloud auth application-default login
Затем запустите приложение локально, как обычно:
npm run dev
Все инструменты разработки Genkit продолжают работать в обычном режиме. Например, чтобы загрузить потоки в пользовательский интерфейс разработчика:
npx genkit start -- npx tsx --watch src/app/genkit.ts
Разверните свое приложение
При развертывании приложения вам необходимо убедиться, что учетные данные для всех используемых вами внешних служб (например, службы API выбранной модели) доступны для развернутого приложения. См. следующие страницы для получения информации, относящейся к выбранной вами платформе развертывания: