Providers

Çıkarım yapar

inferrs, yerel modelleri OpenAI uyumlu bir /v1 API'sinin arkasından sunar. OpenClaw, genel openai-completions adaptörü üzerinden onunla iletişim kurar.

Özellik Değer
Sağlayıcı kimliği inferrs (özel; models.providers.inferrs altında yapılandırılır)
Plugin yok — paketle birlikte gelen bir OpenClaw sağlayıcı plugini değildir
Kimlik doğrulama ortam değişkeni gerekli değil; inferrs sunucunuzda kimlik doğrulama yoksa herhangi bir değer çalışır
API OpenAI uyumlu (openai-completions)
Önerilen temel URL http://127.0.0.1:8080/v1 (veya inferrs sunucunuzun dinlediği adres)

Başlarken

  • inferrs'i bir modelle başlatın

    bash
    inferrs serve google/gemma-4-E2B-it \  --host 127.0.0.1 \  --port 8080 \  --device metal
  • Sunucuya erişilebildiğini doğrulayın

    bash
    curl http://127.0.0.1:8080/healthcurl http://127.0.0.1:8080/v1/models
  • Bir OpenClaw sağlayıcı girdisi ekleyin

    Açık bir sağlayıcı girdisi ekleyin ve varsayılan modelinizi ona yönlendirin. Aşağıdaki yapılandırma örneğine bakın.

  • Tam yapılandırma örneği

    Yerel bir inferrs sunucusunda Gemma 4:

    json5
    {  agents: {    defaults: {      model: { primary: "inferrs/google/gemma-4-E2B-it" },      models: {        "inferrs/google/gemma-4-E2B-it": {          alias: "Gemma 4 (inferrs)",        },      },    },  },  models: {    mode: "merge",    providers: {      inferrs: {        baseUrl: "http://127.0.0.1:8080/v1",        apiKey: "inferrs-local",        api: "openai-completions",        models: [          {            id: "google/gemma-4-E2B-it",            name: "Gemma 4 E2B (inferrs)",            reasoning: false,            input: ["text"],            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },            contextWindow: 131072,            maxTokens: 4096,            compat: {              requiresStringContent: true,            },          },        ],      },    },  },}

    İsteğe bağlı başlatma

    OpenClaw, inferrs'i yalnızca bir inferrs/... modeli seçildiğinde kendisi başlatabilir. Aynı sağlayıcı girdisine localService ekleyin:

    json5
    {  models: {    providers: {      inferrs: {        baseUrl: "http://127.0.0.1:8080/v1",        apiKey: "inferrs-local",        api: "openai-completions",        timeoutSeconds: 300,        localService: {          command: "/opt/homebrew/bin/inferrs",          args: [            "serve",            "google/gemma-4-E2B-it",            "--host",            "127.0.0.1",            "--port",            "8080",            "--device",            "metal",          ],          healthUrl: "http://127.0.0.1:8080/v1/models",          readyTimeoutMs: 180000,          idleStopMs: 0,        },        models: [          {            id: "google/gemma-4-E2B-it",            name: "Gemma 4 E2B (inferrs)",            reasoning: false,            input: ["text"],            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },            contextWindow: 131072,            maxTokens: 4096,            compat: {              requiresStringContent: true,            },          },        ],      },    },  },}

    command mutlak bir yol olmalıdır. Gateway ana makinesinde which inferrs komutunu çalıştırın ve döndürülen yolu kullanın. Tüm alanların başvurusu: Yerel model hizmetleri.

    Gelişmiş yapılandırma

    requiresStringContent neden önemlidir?

    Bazı inferrs Chat Completions rotaları, yapılandırılmış içerik parçası dizileri yerine yalnızca dize biçimindeki messages[].content değerlerini kabul eder.

    Gemma ve araç şemasıyla ilgili dikkat edilmesi gereken nokta

    Bazı inferrs + Gemma birleşimleri küçük ve doğrudan /v1/chat/completions isteklerini kabul ederken tam OpenClaw aracı çalışma zamanı turlarında başarısız olur. Önce araç şeması yüzeyini devre dışı bırakmayı deneyin:

    json5
    compat: {  requiresStringContent: true,  supportsTools: false}

    Bu, daha katı yerel arka uçlar üzerindeki istem baskısını azaltır. Küçük doğrudan istekler çalışmaya devam ettiği hâlde normal OpenClaw aracı turları inferrs içinde çökmeye devam ediyorsa bunu bir OpenClaw aktarım sorunu yerine üst kaynaklı bir model/sunucu sınırlaması olarak değerlendirin.

    Elle temel doğrulama testi

    Yapılandırmadan sonra her iki katmanı da bir kez test edin:

    bash
    curl http://127.0.0.1:8080/v1/chat/completions \  -H 'content-type: application/json' \  -d '{"model":"google/gemma-4-E2B-it","messages":[{"role":"user","content":"What is 2 + 2?"}],"stream":false}'
    bash
    openclaw infer model run \  --model inferrs/google/gemma-4-E2B-it \  --prompt "What is 2 + 2? Reply with one short sentence." \  --json

    İlk komut çalışıyor ancak ikincisi başarısız oluyorsa aşağıdaki Sorun giderme bölümüne bakın.

    Proxy tarzı davranış

    inferrs, openai-responses yerine genel openai-completions adaptörünü kullandığından yalnızca yerel OpenAI'ye özgü istek biçimlendirmesi hiçbir zaman uygulanmaz: service_tier, Responses store, istem önbelleği ipuçları ve OpenAI akıl yürütme uyumluluğu yükü biçimlendirmesi gönderilmez.

    Sorun giderme

    curl /v1/models başarısız oluyor

    inferrs çalışmıyor, erişilebilir değil veya yapılandırdığınız ana makine/porta bağlanmamış. Sunucunun başlatıldığını ve bu adreste dinlediğini doğrulayın.

    messages[].content bir dize bekliyor

    Model girdisinde compat.requiresStringContent: true ayarını kullanın (yukarıya bakın).

    Doğrudan /v1/chat/completions çağrıları başarılı oluyor ancak openclaw infer model run başarısız oluyor

    Araç şeması yüzeyini devre dışı bırakmak için compat.supportsTools: false ayarını kullanın (yukarıdaki Gemma uyarısına bakın).

    inferrs daha büyük aracı turlarında hâlâ çöküyor

    Şema hataları giderildiği hâlde inferrs daha büyük aracı turlarında çökmeye devam ediyorsa bunu üst kaynaklı bir inferrs veya model sınırlaması olarak değerlendirin. İstem baskısını azaltın ya da arka ucu/modeli değiştirin.

    İlgili içerikler

    Was this useful?
    On this page

    On this page