Esta página mostra como usar os fluxos do Genkit em apps do Angular.
Antes de começar
Você precisa conhecer o conceito de fluxos do Genkit e como programá-los.
Criar um projeto do Angular
Este guia vai usar um app Angular com SSR com roteamento do servidor.
É possível criar um novo projeto com roteamento do lado do servidor usando a CLI do Angular:
ng new --ssr --server-routing
Também é possível adicionar o roteamento do lado do servidor a um projeto existente com o comando ng add
:
ng add @angular/ssr --server-routing
Instalar dependências do Genkit
Instale as dependências do Genkit no seu app Angular da mesma forma que você faria para qualquer projeto do Genkit:
Instale a biblioteca principal do Genkit:
npm i --save genkit
Instale pelo menos um plug-in de modelo.
Por exemplo, para usar a IA do Google:
npm i --save @genkit-ai/googleai
Ou, para usar a Vertex AI:
npm i --save @genkit-ai/vertexai
Instale a biblioteca Genkit Express:
npm i --save @genkit-ai/express
Instale o Zod:
npm i --save zod
Se você não tiver instalado a CLI do Genkit globalmente, poderá fazer isso como uma dependência de desenvolvimento. A ferramenta tsx também é recomendada, porque facilita o teste do código. No entanto, essas duas dependências são opcionais.
npm i --save-dev genkit-cli tsx
Definir fluxos do Genkit
Crie um novo arquivo no projeto do Angular para conter os fluxos do Genkit, por
exemplo, src/genkit.ts
. Esse arquivo pode conter seus fluxos sem
modificações.
Exemplo:
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;
}
);
Adicionar rotas de servidor
Adicione as seguintes importações a src/server.ts
:
import { expressHandler } from '@genkit-ai/express';
import { menuSuggestionFlow } from './genkit';
Adicione a linha a seguir após a inicialização da variável app
:
app.use(express.json());
Em seguida, adicione uma rota para veicular seu fluxo:
app.post('/menu', expressHandler(menuSuggestionFlow));
Chamar seus fluxos
Agora você pode executar seus fluxos no aplicativo cliente.
Por exemplo, é possível substituir o conteúdo de
src/app/app.component.ts
por este:
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 })
});
}
Faça as atualizações correspondentes em 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>
}
Testar o app localmente
Se você quiser executar o app localmente, disponibilize as credenciais do serviço de API do modelo escolhido.
Garanta que a IA do Google disponíveis na sua região.
Gere uma chave de API para à API Gemini usando o Google AI Studio.
Defina a variável de ambiente
GEMINI_API_KEY
como sua chave:export GEMINI_API_KEY=<your API key>
No console do Cloud, Ative a API Vertex AI para seu projeto.
Defina algumas variáveis de ambiente e use a ferramenta
gcloud
para configurar as credenciais padrão do aplicativo:export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
gcloud auth application-default login
Em seguida, execute o app localmente normalmente:
ng serve
Todas as ferramentas de desenvolvimento do Genkit continuam funcionando normalmente. Por exemplo, para carregar seus fluxos na interface do desenvolvedor:
npx genkit start -- ng serve
implantar o app
Ao implantar o app, você precisa garantir que as credenciais de todos os serviços externos que você usa (como o serviço de API de modelo escolhido) estejam disponíveis para o app implantado. Consulte as páginas a seguir para informações específicas da plataforma de implantação escolhida:
Próximas etapas
- Conheça o Genkit em um app Angular implantado: confira uma implementação de referência de vários fluxos do Genkit que alimentam um app Angular e, em seguida, acesse o código no Firebase Studio.