AgentSkillsCN

frontend-angular-ai

在 Angular 应用程序中使用 Genkit、Firebase AI Logic 或 Gemini API 实现 AI 集成模式。包括流式响应、工具调用,以及 RAG 模式。适用于在 Angular 应用中构建 AI 驱动的功能时使用。

SKILL.md
--- frontmatter
name: frontend-angular-ai
description: AI integration patterns for Angular applications using Genkit, Firebase AI Logic, or Gemini API. Includes streaming responses, tool calling, and RAG patterns. Use when building AI-powered features in Angular apps.
trigger-terms: Genkit, Firebase AI Logic, Gemini API, Angular AI integration, streaming responses

Angular AI Integration

Patterns for integrating AI capabilities into Angular 21+ applications.

Integration Approaches

ApproachWhereBest For
GenkitServer-sideMulti-model, complex flows, tool calling
Firebase AI LogicClient-sideFirebase apps, quota management
Gemini APIDirectMaximum flexibility, multimodal

Quick Decision

code
Need server-side processing? → Genkit
Using Firebase already? → Firebase AI Logic
Need image/audio analysis? → Gemini API (multimodal)
Building chatbot with history? → Genkit (server-side state)
Simple text completion? → Firebase AI Logic

Genkit Overview (Recommended)

Google's open-source toolkit for production AI applications.

typescript
// Server: Express + Genkit
import { genkit } from 'genkit';
import { googleAI, gemini20Flash } from '@genkit-ai/googleai';

const ai = genkit({ plugins: [googleAI()] });

app.post('/api/chat', async (req, res) => {
  const { message, history } = req.body;

  const response = await ai.generate({
    model: gemini20Flash,
    messages: [...history, { role: 'user', content: message }]
  });

  res.json({ reply: response.text });
});

Key Patterns

Streaming Responses

typescript
// Use Resource API for signal-based streaming
streamingResponse = resource({
  stream: async () => {
    const data = signal<{ value: string }>({ value: '' });
    // Stream handling logic
    return data;
  }
});

Tool Calling

typescript
// Define tools for LLM to call
const tools = [
  {
    name: 'searchProducts',
    description: 'Search product catalog',
    parameters: { query: 'string' }
  }
];

Temperature Control

TemperatureUse Case
0.0 - 0.3Factual, deterministic
0.4 - 0.7Balanced creativity
0.8 - 1.0Creative, varied

Security Patterns

PatternDescription
API Key ProtectionKeys stored server-side only, never exposed to client
Output SanitizationAI responses sanitized before DOM rendering
Rate LimitingRequest throttling to prevent quota exhaustion
Server ProxyAll LLM API calls routed through backend proxy

See reference.md for detailed patterns and examples.md for implementations.

Related skills: angular (Angular core); angular-best-practices (performance).