CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-angular--fire

Angular + Firebase integration library providing Angular-native services, dependency injection, Zone.js wrappers, Observable-based APIs, and comprehensive Firebase service support.

Pending
Overview
Eval results
Files

ai.mddocs/

Firebase AI

Firebase AI services for machine learning and artificial intelligence features in Angular applications.

Capabilities

Standalone Provider

export function provideAI(fn: () => AI): EnvironmentProviders;
export function getAI(app?: FirebaseApp): AI;

Angular Services

export class AI extends AI {}
export class AIInstances extends Array<AI> {}
export const AIInstance$: Observable<AI>;

AI Functions

/**
 * 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;

Types

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>;
}

Usage Examples

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);
    }
  }
}

Install with Tessl CLI

npx tessl i tessl/npm-angular--fire

docs

ai.md

analytics.md

app-check.md

auth-guard.md

authentication.md

data-connect.md

database.md

firebase-app.md

firestore.md

functions.md

index.md

messaging.md

performance.md

remote-config.md

storage.md

vertexai.md

tile.json