Przejdź do treści
Biblioteka skilli
Programowanie · Budowanie i kod

elevenlabs-sdk-patterns

/elevenlabs-sdk-patterns

Stosuje produkcyjne wzorce SDK ElevenLabs dla TypeScripta i Pythona przy implementacji integracji, refaktoryzacji i ustalaniu standardów kodowania zespołu.

Licencja
MIT
Ostatnia zmiana repozytorium
26.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
2
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
3
Przestarzałość

Brak sygnałów. Repozytorium zmienione 26.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Stosuje produkcyjne wzorce SDK ElevenLabs dla TypeScripta i Pythona przy implementacji integracji, refaktoryzacji i ustalaniu standardów kodowania zespołu.

Wyzwalacze z opisu

elevenlabs SDK patternselevenlabs best practiceselevenlabs code patternsidiomatic elevenlabselevenlabs typescript
Oryginalny opis (EN)

Apply production-ready ElevenLabs SDK patterns for TypeScript and Python. Use when implementing ElevenLabs integrations, refactoring SDK usage, or establishing team coding standards for audio AI applications. Trigger with "elevenlabs SDK patterns", "elevenlabs best practices", "elevenlabs code patterns", "idiomatic elevenlabs", "elevenlabs typescript".

Jak działa

  1. Overview
  2. Prerequisites
  3. Instructions
  4. Output
  5. Error Handling
  6. Examples
  7. Resources
  8. Next Steps
Sekcje z nagłówków SKILL.md, w oryginale · 126 linii, 631 słów
Podgląd SKILL.md
---
name: elevenlabs-sdk-patterns
description: |
  Apply production-ready ElevenLabs SDK patterns for TypeScript and Python.
  Use when implementing ElevenLabs integrations, refactoring SDK usage, or
  establishing team coding standards for audio AI applications.
  Trigger with "elevenlabs SDK patterns", "elevenlabs best practices",
  "elevenlabs code patterns", "idiomatic elevenlabs", "elevenlabs typescript".
allowed-tools: Read, Write, Edit
version: 1.6.0
license: MIT
author: Jeremy Longshore <jeremy@intentsolutions.io>
tags:
- saas
- voice
- ai
- elevenlabs
- sdk
- patterns
compatibility: Designed for Claude Code
---
# ElevenLabs SDK Patterns

## Overview

Production-ready patterns for the ElevenLabs TypeScript and Python SDKs. Covers singleton
clients, type-safe TTS wrappers, error classification, retry with a concurrency queue, and
multi-tenant client factories. Adopt them incrementally — the singleton client alone fixes the
most common mistakes; add error classification and the queue as throughput grows.

The full, copy-ready code for all six patterns lives in
[references/implementation.md](references/implementation.md). This file gives the high-level
workflow plus the essential skeleton so you can follow it end to end, then drill into the
reference for depth.

## Prerequisites

- `@elevenlabs/elevenlabs-js` installed (TypeScript) or `elevenlabs` (Python)
- `ELEVENLABS_API_KEY` exported in the environment (never hardcode the key)
- Familiarity with async/await patterns and error handling best practices

## Instructions

Apply the patterns in order — each builds on the previous one:

1. **Singleton client.** Create one lazily-initialized `ElevenLabsClient` guarded by an
   `ELEVENLABS_API_KEY` check so misconfiguration fails fast at startup. Expose a `resetClient()`
   for tests. This is the skeleton every other pattern imports:

   ```typescript
   let instance: ElevenLabsClient | null = null;
   export function getClient(): ElevenLabsClient {
     if (!instance) {
       if (!process.env.ELEVENLABS_API_KEY) {
         throw new Error("ELEVENLABS_API_KEY environment variable is required");
       }
       instance = new ElevenLabsClient({
         apiKey: process.env.ELEVENLABS_API_KEY,
         maxRetries: 3,
         timeoutInSeconds: 60,
       });
     }
     return instance;
   }
   ```

2. **Type-safe TTS service.** Wrap `textToSpeech.convert` behind a typed `TTSOptions` interface
   and named `VoicePreset` records (narration / conversational / dramatic / neutral) so voice
   settings are compile-time checked and consistent across the codebase.
3. **Error classification.** Map raw SDK errors to an `ElevenLabsServiceError` carrying a stable
   `code` (auth_failed, quota_exceeded, rate_limited, concurrent_limit, voice_not_found,
   invalid_request, server_error, network_error) and a `retryable` flag driven by HTTP status.
4. **Retry with a concurrency queue.** Route calls through a `p-queue` sized to your plan's
   concurrent-request limit, retrying only `retryable` errors with exponential backoff + jitter.
5. **Multi-tenant factory.** For SaaS platforms, key one client per tenant in a `Map` so each
   customer's API key stays isolated.
6. **Python async.** Mirror the singleton + streaming-to-file pattern with `AsyncElevenLabsClient`
   for non-blocking Python backends.

See [references/implementation.md](references/implementation.md) for the complete code for every
step above.

## Output

Applying these patterns produces a small set of focused SDK modules in the target project:

- `src/elevenlabs/client.ts` — singleton client with config + `resetClient()`
- `src/elevenlabs/tts-service.ts` — typed `generateSpeech()` / `generateToFile()` with voice presets
- `src/elevenlabs/errors.ts` — `ElevenLabsServiceError` + `classifyError()`
- `src/elevenlabs/queue.ts` — `queuedRequest()` with backoff and plan-aware concurrency
- `src/elevenlabs/multi-tenant.ts` — per-tenant client factory (SaaS only)
- `elevenlabs_service.py` — async singleton + streaming generator (Python backends)

TTS calls return an audio stream you pipe to a file or HTTP response; `mp3_44100_128` is the
default output format.

## Error Handling

| Pattern | Error Type | Benefit |
|---------|-----------|---------|
| `classifyError()` | All API errors | Maps HTTP status to actionable codes |
| `queuedRequest()` | 429, 5xx | Auto-retry with exponential backoff + jitter |
| Singleton guard | Missing env var | Fails fast at startup, not at first call |

Only `retryable` codes (`rate_limited`, `concurrent_limit`, `server_error`, `network_error`) are
retried; `auth_failed`, `quota_exceeded`, `voice_not_found`, and `invalid_request` throw
immediately so callers surface a real problem instead of looping.

## Examples

**Generate speech to a file (TypeScript):**

```typescript
import { generateToFile } from "./elevenlabs/tts-service";

await generateToFile(
  { voiceId: "21m00Tcm4TlvDq8ikWAM", text: "Welcome aboard.", preset: "narration" },
  "welcome.mp3"
);
```

**Wrap a call in the retry queue:**

```typescript
import { queuedRequest } from "./elevenlabs/queue";
import { generateSpeech } from "./elevenlabs/tts-service";

const audio = await queuedRequest(() =>
  generateSpeech({ voiceId: "21m00Tcm4TlvDq8ikWAM", text: "High-throughput job." })
);
```

Full runnable examples — including the Python async path and multi-tenant usage — are in
[references/implementation.md](references/implementation.md).

## Resources

- [ElevenLabs JS SDK Source](https://github.com/elevenlabs/elevenlabs-js)
- [ElevenLabs Python SDK](https://pypi.org/project/elevenlabs/)
- [p-queue (Concurrency)](https://github.com/sindresorhus/p-queue)
- [Full implementation walkthrough](references/implementation.md)

## Next Steps

Apply these patterns in `elevenlabs-core-workflow-a` for TTS generation, or see
`elevenlabs-rate-limits` for advanced throttling and plan-aware concurrency tuning.
Pliki w paczce (2)
  • SKILL.md 6 KB
  • references/implementation.md 8 KB

Wersje

W bazie nie ma innych skilli o nazwie elevenlabs-sdk-patterns.

Identyczna treść występuje jeszcze w 1 innych folderach na GitHubie. Tu pokazujemy jedną, najlepiej ocenioną kopię.

Migawka bazy z 28.10.2026 · wersja paczki 3569533b3417 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100deepgram-sdk-patterns
    Stosuje produkcyjne wzorce SDK Deepgram dla TypeScript i Pythona przy implementacji integracji, refaktoryzacji użycia SDK i ustalaniu standardów kodowania zespołu.
  • 100instantly-sdk-patterns
    Stosuje produkcyjne wzorce SDK Instantly dla TypeScript i Pythona, przy implementacji integracji, refaktoryzacji i ustalaniu standardów kodowania zespołu.
  • 100windsurf-sdk-patterns
    Stosuje produkcyjne wzorce SDK Windsurf dla TypeScript i Pythona przy implementacji integracji, refaktoryzacji i ustalaniu standardów zespołu.
  • 100framer-sdk-patterns
    Stosuje gotowe do produkcji wzorce SDK Framer dla TypeScript i Pythona, przy implementacji integracji, refaktoryzacji użycia SDK i ustalaniu standardów kodowania zespołu.
  • 95elevenlabs:sdk-migration
    Prowadzi migrację do następnej wersji głównej @elevenlabs/client, @elevenlabs/react i @elevenlabs/react-native, w tym zmiany w Conversation, useConversation i ElevenLabsProvider.
  • 100elevenlabs
    Generuje realistyczną mowę przez API ElevenLabs i jego SDK dla Pythona i Node.js: zamiana tekstu na mowę, strumieniowanie audio, klonowanie głosu, wybór modelu TTS i agenci głosowi.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.