Providers

Inferrs

inferrs स्थानीय मॉडलों को OpenAI-संगत /v1 API के पीछे उपलब्ध कराता है। OpenClaw सामान्य openai-completions अडैप्टर के माध्यम से इससे संचार करता है।

गुण मान
प्रदाता आईडी inferrs (कस्टम; models.providers.inferrs के अंतर्गत कॉन्फ़िगर करें)
Plugin कोई नहीं — यह बंडल किया गया OpenClaw प्रदाता Plugin नहीं है
प्रमाणीकरण env var आवश्यक नहीं; यदि आपके inferrs सर्वर पर प्रमाणीकरण नहीं है, तो कोई भी मान काम करता है
API OpenAI-संगत (openai-completions)
सुझाया गया आधार URL http://127.0.0.1:8080/v1 (या जहाँ भी आपका inferrs सर्वर अनुरोध सुनता है)

आरंभ करना

  • किसी मॉडल के साथ inferrs शुरू करें

    bash
    inferrs serve google/gemma-4-E2B-it \  --host 127.0.0.1 \  --port 8080 \  --device metal
  • सत्यापित करें कि सर्वर पहुँच योग्य है

    bash
    curl http://127.0.0.1:8080/healthcurl http://127.0.0.1:8080/v1/models
  • OpenClaw प्रदाता प्रविष्टि जोड़ें

    एक स्पष्ट प्रदाता प्रविष्टि जोड़ें और अपने डिफ़ॉल्ट मॉडल को उस पर इंगित करें। नीचे दिया गया कॉन्फ़िगरेशन उदाहरण देखें।

  • पूर्ण कॉन्फ़िगरेशन उदाहरण

    स्थानीय inferrs सर्वर पर 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,            },          },        ],      },    },  },}

    माँग पर स्टार्टअप

    OpenClaw केवल तभी inferrs को स्वयं शुरू कर सकता है, जब कोई inferrs/... मॉडल चुना गया हो। उसी प्रदाता प्रविष्टि में localService जोड़ें:

    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 एक निरपेक्ष पथ होना चाहिए। Gateway होस्ट पर which inferrs चलाएँ और उस पथ का उपयोग करें। फ़ील्ड का पूर्ण संदर्भ: स्थानीय मॉडल सेवाएँ

    उन्नत कॉन्फ़िगरेशन

    requiresStringContent क्यों महत्वपूर्ण है

    कुछ inferrs Chat Completions रूट संरचित सामग्री-भाग सरणियों के बजाय केवल स्ट्रिंग messages[].content स्वीकार करते हैं।

    Gemma और टूल-स्कीमा संबंधी सावधानी

    कुछ inferrs + Gemma संयोजन छोटे प्रत्यक्ष /v1/chat/completions अनुरोध स्वीकार करते हैं, लेकिन पूर्ण OpenClaw एजेंट-रनटाइम टर्न पर विफल हो जाते हैं। पहले टूल स्कीमा सतह को अक्षम करने का प्रयास करें:

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

    इससे अधिक सख्त स्थानीय बैकएंड पर प्रॉम्प्ट का दबाव कम होता है। यदि छोटे प्रत्यक्ष अनुरोध अब भी काम करते हैं, लेकिन सामान्य OpenClaw एजेंट टर्न inferrs के भीतर लगातार क्रैश होते हैं, तो इसे OpenClaw ट्रांसपोर्ट समस्या के बजाय अपस्ट्रीम मॉडल/सर्वर की सीमा मानें।

    मैन्युअल स्मोक परीक्षण

    कॉन्फ़िगर करने के बाद दोनों स्तरों का परीक्षण करें:

    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 क्या है?"}],"stream":false}'
    bash
    openclaw infer model run \  --model inferrs/google/gemma-4-E2B-it \  --prompt "2 + 2 क्या है? एक छोटे वाक्य में उत्तर दें।" \  --json

    यदि पहला कमांड काम करता है, लेकिन दूसरा विफल होता है, तो नीचे समस्या निवारण देखें।

    प्रॉक्सी-जैसा व्यवहार

    चूँकि inferrs सामान्य openai-completions अडैप्टर का उपयोग करता है (openai-responses का नहीं), इसलिए केवल मूल OpenAI के लिए अनुरोध संरचना कभी लागू नहीं होती: कोई service_tier नहीं, कोई Responses store नहीं, कोई प्रॉम्प्ट-कैश संकेत नहीं, और कोई OpenAI रीजनिंग-संगत पेलोड संरचना नहीं भेजी जाती।

    समस्या निवारण

    curl /v1/models विफल होता है

    inferrs चल नहीं रहा है, पहुँच योग्य नहीं है, या आपके कॉन्फ़िगर किए गए होस्ट/पोर्ट से बँधा नहीं है। पुष्टि करें कि सर्वर शुरू है और उस पते पर अनुरोध सुन रहा है।

    messages[].content के लिए स्ट्रिंग अपेक्षित थी

    मॉडल प्रविष्टि में compat.requiresStringContent: true सेट करें (ऊपर देखें)।

    प्रत्यक्ष /v1/chat/completions कॉल सफल हैं, लेकिन openclaw infer model run विफल होता है

    टूल स्कीमा सतह को अक्षम करने के लिए compat.supportsTools: false सेट करें (ऊपर Gemma संबंधी सावधानी देखें)।

    बड़े एजेंट टर्न पर inferrs अब भी क्रैश होता है

    यदि स्कीमा त्रुटियाँ समाप्त हो गई हैं, लेकिन inferrs बड़े एजेंट टर्न पर अब भी क्रैश होता है, तो इसे अपस्ट्रीम inferrs या मॉडल की सीमा मानें। प्रॉम्प्ट का दबाव कम करें या बैकएंड/मॉडल बदलें।

    संबंधित

    Was this useful?
    On this page

    On this page