> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kazzle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AI w aplikacjach

> Podłącz Kazzle AI API do komponentu aplikacji.

# AI w aplikacjach

Aplikacje otrzymują AI (czat, obrazy, mowę, transkrypcję, wideo) przez **Kazzle AI API** — jeden endpoint, rozliczany w kredytach wobec przestrzeni. Nie pytaj użytkowników o klucze OpenAI/Anthropic/innych dostawców, chyba że konkretnie chcą rozliczać tych dostawców bezpośrednio.

Endpointy, rozliczenia i przykłady są udokumentowane raz w [referencji AI API](/platform/ai-api). Ta strona obejmuje tylko podłączenie do aplikacji.

## Podłączanie klucza API

1. Utwórz ograniczony klucz Kazzle API dla aplikacji za pomocą narzędzia `api_key`.
2. Przechowuj go w kolekcji sekretów + środowisku pod nazwą `KAZZLE_API_KEY` (nazwa sekretu staje się zmienną środowiskową).
3. Wskaż komponent procesu na tę kolekcję + środowisko.
4. Wywołuj `https://api.kazzle.app/ai/*` tylko z kodu po stronie serwera.

```ts theme={"theme":"material-theme-darker"}
export default defineConfig({
  components: [
    {
      name: 'server',
      type: 'process',
      path: './server',
      env: { collection: 'my-app', environment: 'default' },
    },
  ],
});
```

W czasie wykonywania proces widzi `process.env.KAZZLE_API_KEY`, rozwiązany z sejfu. Nie ma pola `env.vars` — sekrety docierają do komponentów tylko przez kolekcję + środowisko, na które wskazują.

```ts theme={"theme":"material-theme-darker"}
const apiKey = process.env.KAZZLE_API_KEY;
if (!apiKey) throw new Error('KAZZLE_API_KEY is required');

const res = await fetch('https://api.kazzle.app/ai/audio/transcriptions', {
  method: 'POST',
  headers: { Authorization: `Bearer ${apiKey}` },
  body: formData,
});
```

Nigdy nie umieszczaj klucza w kodzie frontendu ani w zmiennej `VITE_*`. Zapoznaj się z [Sekretami](/apps/secrets) w celu podłączenia sejfu i [referencją AI API](/platform/ai-api) dla każdego endpointu.
