Providers

Inferrs

inferrs, yerel modelleri OpenAI uyumlu bir /v1 API'sinin arkasında sunar. OpenClaw, genel openai-completions bağdaştırıcısı üzerinden onunla iletişim kurar.

Özellik Değer
Sağlayıcı kimliği inferrs (özel; models.providers.inferrs altında yapılandırın)
Plugin yok — paketle birlikte gelen bir OpenClaw sağlayıcı Plugin'i 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 konum)

Başlarken

  • inferrs'ı 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, yalnızca bir inferrs/... modeli seçildiğinde inferrs öğesini 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 bu yolu kullanın. Tam alan başvurusu: Yerel model hizmetleri.

    Gelişmiş yapılandırma

    requiresStringContent neden önemlidir

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

    Gemma ve araç şemasıyla ilgili uyarı

    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çlardaki istem yükünü azaltır. Küçük doğrudan istekler çalışmaya devam ederken normal OpenClaw aracı turları inferrs içinde çökmeyi sürdürüyorsa bunu bir OpenClaw aktarım sorunu yerine üst kaynaklı bir model/sunucu sınırlaması olarak değerlendirin.

    Elle hızlı doğrulama testi

    Yapılandırmanın ardından 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":"2 + 2 kaç eder?"}],"stream":false}'
    bash
    openclaw infer model run \  --model inferrs/google/gemma-4-E2B-it \  --prompt "2 + 2 kaç eder? Tek bir kısa cümleyle yanıt ver." \  --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 bağdaştırıcısı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ı veya 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 makineye/bağlantı noktasına bağlı değil. Sunucunun başlatıldığını ve bu adreste dinlediğini doğrulayın.

    messages[].content bir dize bekliyordu

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

    Doğrudan /v1/chat/completions çağrıları başarılı 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ı yapın (yukarıdaki Gemma uyarısına bakın).

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

    Şema hataları giderilmiş olmasına rağmen inferrs daha büyük aracı turlarında hâlâ çöküyorsa bunu üst kaynaklı bir inferrs veya model sınırlaması olarak değerlendirin. İstem yükünü azaltın ya da arka ucu/modeli değiştirin.

    İlgili

    Was this useful?
    On this page

    On this page