Firebase AI services for machine learning and artificial intelligence features in Angular applications.
export function provideAI(fn: () => AI): EnvironmentProviders;
export function getAI(app?: FirebaseApp): AI;export class AI extends AI {}
export class AIInstances extends Array<AI> {}
export const AIInstance$: Observable<AI>;/**
* Get Firebase AI instance
* @param app - Optional Firebase app instance
* @returns Firebase AI instance
*/
export function getAI(app?: FirebaseApp): AI;
/**
* Get generative AI model
* @param ai - Firebase AI instance
* @param options - Model configuration options
* @returns Generative model instance
*/
export function getGenerativeModel(
ai: AI,
options: ModelOptions
): GenerativeModel;
/**
* Get Imagen model for image generation
* @param ai - Firebase AI instance
* @param options - Imagen model options
* @returns Imagen model instance
*/
export function getImagenModel(
ai: AI,
options: ImagenModelOptions
): ImagenModel;
/**
* Get Vertex AI instance
* @param app - Optional Firebase app instance
* @returns Vertex AI instance
*/
export function getVertexAI(app?: FirebaseApp): VertexAI;interface ModelOptions {
model: string;
generationConfig?: GenerationConfig;
safetySettings?: SafetySetting[];
tools?: Tool[];
}
interface GenerationConfig {
temperature?: number;
topP?: number;
topK?: number;
maxOutputTokens?: number;
stopSequences?: string[];
}
interface SafetySetting {
category: HarmCategory;
threshold: HarmBlockThreshold;
}
interface ImagenModelOptions {
model: string;
}
interface GenerativeModel {
generateContent(request: GenerateContentRequest): Promise<GenerateContentResult>;
generateContentStream(request: GenerateContentRequest): AsyncIterable<GenerateContentResult>;
startChat(startChatParams?: StartChatParams): ChatSession;
}
interface ImagenModel {
generateImage(request: GenerateImageRequest): Promise<GenerateImageResult>;
}import { Component, inject } from '@angular/core';
import { AI, getAI, getGenerativeModel } from '@angular/fire/ai';
@Component({
selector: 'app-ai',
template: `
<div>
<button (click)="generateText()">Generate Text</button>
<p>{{ generatedText }}</p>
</div>
`,
})
export class AIComponent {
private ai = inject(AI);
generatedText = '';
async generateText() {
try {
const model = getGenerativeModel(this.ai, {
model: 'gemini-pro',
generationConfig: {
temperature: 0.7,
maxOutputTokens: 100
}
});
const result = await model.generateContent({
contents: [{
parts: [{ text: 'Write a short poem about Angular and Firebase' }]
}]
});
this.generatedText = result.response.text();
} catch (error) {
console.error('Error generating text:', error);
}
}
}