Skip to content

Pembekal LLM dan Failover

Triggerfish menyokong berbilang pembekal LLM dengan failover automatik, pemilihan model per-ejen, dan penukaran model peringkat sesi. Tiada kunci masuk pembekal tunggal.

Pembekal yang Disokong

PembekalAuthModelNota
AnthropicKunci APIClaude Opus, Sonnet, HaikuAPI Anthropic standard
OpenAIKunci APIGPT-4o, o1, o3API OpenAI standard
GoogleKunci APIGemini Pro, FlashAPI Google AI Studio
TempatanTiadaLlama, Mistral, dll.Serasi Ollama, format OpenAI
OpenRouterKunci APIMana-mana model di OpenRouterAkses bersatu ke banyak pembekal
Z.AIKunci APIGLM-4.7, GLM-4.5, GLM-5Z.AI Coding Plan, serasi OpenAI

Antara Muka LlmProvider

Semua pembekal melaksanakan antara muka yang sama:

typescript
interface LlmProvider {
  /** Jana penyempurnaan dari sejarah mesej. */
  complete(
    messages: Message[],
    options?: CompletionOptions,
  ): Promise<CompletionResult>;

  /** Strim penyempurnaan token demi token. */
  stream(
    messages: Message[],
    options?: CompletionOptions,
  ): AsyncIterable<StreamChunk>;

  /** Sama ada pembekal ini menyokong panggilan alat/fungsi. */
  supportsTools: boolean;

  /** Pengecam model (contoh, "claude-sonnet-4-5", "gpt-4o"). */
  modelId: string;
}

Ini bermakna anda boleh menukar pembekal tanpa mengubah sebarang logik aplikasi. Gelung ejen dan semua pengorkestra alat berfungsi identik tanpa mengira pembekal mana yang aktif.

Konfigurasi

Persediaan Asas

Konfigurasi model utama dan kelayakan pembekal anda dalam triggerfish.yaml:

yaml
models:
  primary:
    provider: anthropic
    model: claude-sonnet-4-5
  providers:
    anthropic:
      model: claude-sonnet-4-5
    openai:
      model: gpt-4o
    google:
      model: gemini-pro
    ollama:
      model: llama3
      baseUrl: "http://localhost:11434/v1" # Lalai Ollama
    openrouter:
      model: anthropic/claude-sonnet-4-5
    zai:
      model: glm-4.7

Rantaian Failover

FailoverChain menyediakan sandaran automatik apabila pembekal tidak tersedia. Konfigurasi senarai model sandaran yang tersusun:

yaml
models:
  primary:
    provider: anthropic
    model: claude-opus-4-5
  failover:
    - claude-sonnet-4-5 # Sandaran pertama
    - gpt-4o # Sandaran kedua
    - ollama/llama3 # Sandaran tempatan (tiada internet diperlukan)

  failover_config:
    max_retries: 3
    retry_delay_ms: 1000
    conditions:
      - rate_limited
      - server_error
      - timeout

Apabila model utama gagal akibat keadaan yang dikonfigurasi (had kadar, ralat pelayan, atau tamat masa), Triggerfish secara automatik mencuba pembekal seterusnya dalam rantaian. Ini berlaku secara telus — perbualan diteruskan tanpa gangguan.

Keadaan Failover

KeadaanKeterangan
rate_limitedPembekal mengembalikan respons had kadar 429
server_errorPembekal mengembalikan ralat pelayan 5xx
timeoutPermintaan melebihi tamat masa yang dikonfigurasi

Pemilihan Model Per-Ejen

Dalam persediaan berbilang ejen, setiap ejen boleh menggunakan model yang berbeza yang dioptimumkan untuk peranannya:

yaml
agents:
  list:
    - id: research
      model: claude-opus-4-5 # Penaakulan terbaik untuk penyelidikan
    - id: quick-tasks
      model: claude-haiku-4-5 # Cepat dan murah untuk tugas mudah
    - id: coding
      model: claude-sonnet-4-5 # Keseimbangan baik untuk kod

Penukaran Model Peringkat Sesi

Ejen boleh menukar model di pertengahan sesi untuk pengoptimuman kos. Gunakan model cepat untuk pertanyaan mudah dan tingkatkan ke model yang lebih berkemampuan untuk penaakulan kompleks. Ini tersedia melalui alat session_status.

Had Kadar

Triggerfish merangkumi had kadar tetingkap gelongsor terbina dalam yang menghalang mencapai had API pembekal. Had kadar membungkus mana-mana pembekal secara telus — ia menjejak token-per-minit (TPM) dan permintaan-per-minit (RPM) dalam tetingkap gelongsor dan melewatkan panggilan apabila had dihampiri.

Had kadar berfungsi bersama failover: jika had kadar pembekal habis dan had kadar tidak dapat menunggu dalam tamat masa, rantaian failover diaktifkan dan mencuba pembekal seterusnya.

Lihat Had Kadar untuk butiran penuh termasuk had peringkat OpenAI.

Kunci API tidak pernah disimpan dalam fail konfigurasi. Gunakan keychain OS anda melalui triggerfish config set-secret. Lihat Model Keselamatan untuk butiran pengurusan rahsia. :::