Skip to content

API

नोट: Ollama की API दस्तावेज़ीकरण https://docs.ollama.com/api पर स्थानांतरित हो रही है।

एंडपॉइंट

परंपराएँ

मॉडल नाम

मॉडल नाम model:tag प्रारूप का पालन करते हैं, जहाँ model में वैकल्पिक नेमस्पेस हो सकता है जैसे example/model। कुछ उदाहरण हैं orca-mini:3b-q8_0 और llama3:70b। टैग वैकल्पिक है, और यदि प्रदान नहीं किया जाता है, तो इसका डिफॉल्ट मान latest हो जाता है। टैग का उपयोग किसी विशेष संस्करण की पहचान करने के लिए किया जाता है।

अवधि

सभी अवधियाँ नैनोसेकंड में वापसी की जाती हैं।

स्ट्रीमिंग प्रतिक्रियाएँ

कुछ एंडपॉइंट JSON ऑब्जेक्ट के रूप में प्रतिक्रियाएँ स्ट्रीम करते हैं। इन एंडपॉइंट के लिए {"stream": false} प्रदान करके स्ट्रीमिंग को अक्षम किया जा सकता है।

एक पूर्णता उत्पन्न करें

POST /api/generate

दिए गए प्रॉम्प्ट के लिए प्रदान किए गए मॉडल के साथ एक प्रतिक्रिया उत्पन्न करें। यह एक स्ट्रीमिंग एंडपॉइंट है, इसलिए यहां प्रतिक्रियाओं की एक श्रृंखला होगी। अंतिम प्रतिक्रिया ऑब्जेक्ट में अनुरोध से संबंधित आंकड़े और अतिरिक्त डेटा शामिल होंगे।

पैरामीटर

  • model: (आवश्यक) मॉडल नाम
  • prompt: जिसके लिए प्रतिक्रिया उत्पन्न करने वाला प्रॉम्प्ट
  • suffix: मॉडल प्रतिक्रिया के बाद का टेक्स्ट
  • images: (वैकल्पिक) base64-एन्कोडेड छवियों की सूची (llava जैसे मल्टीमोडल मॉडल के लिए)
  • think: (थिंकिंग मॉडल के लिए) क्या मॉडल को प्रतिक्रिया देने से पहले सोचना चाहिए? यह बूलियन या थिंकिंग लेवल ("low", "medium", "high", या "max") हो सकता है।

उन्नत पैरामीटर (वैकल्पिक):

  • format: प्रतिक्रिया वापस करने का प्रारूप। प्रारूप json या JSON स्कीमा हो सकता है
  • options: Modelfile के दस्तावेज में सूचीबद्ध अतिरिक्त मॉडल पैरामीटर जैसे temperature
  • system: सिस्टम संदेश (Modelfile में परिभाषित किए गए को ओवरराइड करता है)
  • template: उपयोग करने के लिए प्रॉम्प्ट टेम्पलेट (Modelfile में परिभाषित किए गए को ओवरराइड करता है)
  • stream: यदि false है तो प्रतिक्रिया ऑब्जेक्ट की श्रृंखला के बजाय एक ही प्रतिक्रिया ऑब्जेक्ट के रूप में वापस की जाएगी
  • raw: यदि true है तो प्रॉम्प्ट पर कोई फॉर्मेटिंग लागू नहीं की जाएगी। यदि आप API के अनुरोध में एक पूर्ण टेम्पलेटेड प्रॉम्प्ट निर्दिष्ट कर रहे हैं तो आप raw पैरामीटर का उपयोग करना चुन सकते हैं
  • keep_alive: नियंत्रित करता है कि अनुरोध के बाद मॉडल मेमोरी में लोड कितनी देर तक रहेगा (डिफॉल्ट: 5m)
  • context (अप्रचलित): /generate के पिछले अनुरोध से वापस किए गए कॉन्टेक्स्ट पैरामीटर, इसका उपयोग संक्षिप्त वार्तालाप स्मृति बनाए रखने के लिए किया जा सकता है

प्रयोगात्मक छवि निर्माण पैरामीटर (केवल छवि निर्माण मॉडल के लिए):

WARNING

ये पैरामीटर प्रयोगात्मक हैं और भविष्य के संस्करणों में बदल सकते हैं।

  • width: उत्पन्न छवि की चौड़ाई पिक्सेल में
  • height: उत्पन्न छवि की ऊंचाई पिक्सेल में
  • steps: डिफ्यूजन स्टेप्स की संख्या

संरचित आउटपुट

संरचित आउटपुट का समर्थन format पैरामीटर में JSON स्कीमा प्रदान करके किया जाता है। मॉडल स्कीमा से मेल खाती एक प्रतिक्रिया उत्पन्न करेगा। नीचे दिए गए संरचित आउटपुट उदाहरण देखें।

JSON मोड

format पैरामीटर को json पर सेट करके JSON मोड को सक्षम करें। यह प्रतिक्रिया को एक वैध JSON ऑब्जेक्ट के रूप में संरचित करेगा। नीचे दिए गए JSON मोड उदाहरण देखें।

IMPORTANT

मॉडल को prompt में JSON का उपयोग करने के लिए निर्देशित करना महत्वपूर्ण है। अन्यथा, मॉडल बड़ी मात्रा में व्हाइटस्पेस उत्पन्न कर सकता है।

उदाहरण

जनरेशन अनुरोध (स्ट्रीमिंग)

अनुरोध
shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?"
}'
प्रतिक्रिया

JSON ऑब्जेक्ट की एक श्रृंखला वापस की जाती है:

json
{
  "model": "llama3.2",
  "created_at": "2023-08-04T08:52:19.385406455-07:00",
  "response": "The",
  "done": false
}

स्ट्रीम में अंतिम प्रतिक्रिया में जनरेशन के बारे में अतिरिक्त डेटा भी शामिल होता है:

  • total_duration: प्रतिक्रिया उत्पन्न करने में बिताया गया समय
  • load_duration: मॉडल लोड करने में नैनोसेकंड में बिताया गया समय
  • prompt_eval_count: प्रॉम्प्ट में टोकनों की संख्या
  • prompt_eval_duration: प्रॉम्प्ट का मूल्यांकन करने में नैनोसेकंड में बिताया गया समय
  • eval_count: प्रतिक्रिया में टोकनों की संख्या
  • eval_duration: प्रतिक्रिया उत्पन्न करने में नैनोसेकंड में बिताया गया समय
  • context: इस प्रतिक्रिया में उपयोग की गई वार्तालाप का एन्कोडिंग, इसे वार्तालाप की स्मृति बनाए रखने के लिए अगले अनुरोध में भेजा जा सकता है
  • response: यदि प्रतिक्रिया स्ट्रीम की गई थी तो खाली, यदि स्ट्रीम नहीं की गई थी तो इसमें पूरी प्रतिक्रिया होगी

प्रति सेकंड टोकन (token/s) में प्रतिक्रिया की उत्पत्ति की गति की गणना करने के लिए, eval_count / eval_duration * 10^9 का भाग लें।

json
{
  "model": "llama3.2",
  "created_at": "2023-08-04T19:22:45.499127Z",
  "response": "",
  "done": true,
  "context": [1, 2, 3],
  "total_duration": 10706818083,
  "load_duration": 6338219291,
  "prompt_eval_count": 26,
  "prompt_eval_duration": 130079000,
  "eval_count": 259,
  "eval_duration": 4232710000
}

अनुरोध (कोई स्ट्रीमिंग नहीं)

अनुरोध

जब स्ट्रीमिंग बंद हो तो प्रतिक्रिया एक ही उत्तर में प्राप्त की जा सकती है।

shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?",
  "stream": false
}'
प्रतिक्रिया

यदि stream को false पर सेट किया गया है, तो प्रतिक्रिया एक ही JSON ऑब्जेक्ट होगी:

json
{
  "model": "llama3.2",
  "created_at": "2023-08-04T19:22:45.499127Z",
  "response": "The sky is blue because it is the color of the sky.",
  "done": true,
  "context": [1, 2, 3],
  "total_duration": 5043500667,
  "load_duration": 5025959,
  "prompt_eval_count": 26,
  "prompt_eval_duration": 325953000,
  "eval_count": 290,
  "eval_duration": 4709213000
}

अनुरोध (सफ़िक्स के साथ)

अनुरोध
shell
curl http://localhost:11434/api/generate -d '{
  "model": "codellama:code",
  "prompt": "def compute_gcd(a, b):",
  "suffix": "    return result",
  "options": {
    "temperature": 0
  },
  "stream": false
}'
प्रतिक्रिया
json5
{
  "model": "codellama:code",
  "created_at": "2024-07-22T20:47:51.147561Z",
  "response": "\n  if a == 0:\n    return b\n  else:\n    return compute_gcd(b % a, a)\n\ndef compute_lcm(a, b):\n  result = (a * b) / compute_gcd(a, b)\n",
  "done": true,
  "done_reason": "stop",
  "context": [...],
  "total_duration": 1162761250,
  "load_duration": 6683708,
  "prompt_eval_count": 17,
  "prompt_eval_duration": 201222000,
  "eval_count": 63,
  "eval_duration": 953997000
}

अनुरोध (संरचित आउटपुट के साथ)

अनुरोध
shell
curl -X POST http://localhost:11434/api/generate -H "Content-Type: application/json" -d '{
  "model": "llama3.1:8b",
  "prompt": "Ollama is 22 years old and is busy saving the world. Respond using JSON",
  "stream": false,
  "format": {
    "type": "object",
    "properties": {
      "age": {
        "type": "integer"
      },
      "available": {
        "type": "boolean"
      }
    },
    "required": [
      "age",
      "available"
    ]
  }
}'
प्रतिक्रिया
json
{
  "model": "llama3.1:8b",
  "created_at": "2024-12-06T00:48:09.983619Z",
  "response": "{\n  \"age\": 22,\n  \"available\": true\n}",
  "done": true,
  "done_reason": "stop",
  "context": [1, 2, 3],
  "total_duration": 1075509083,
  "load_duration": 567678166,
  "prompt_eval_count": 28,
  "prompt_eval_duration": 236000000,
  "eval_count": 16,
  "eval_duration": 269000000
}

अनुरोध (JSON मोड)

IMPORTANT

जब format को json पर सेट किया जाता है, तो आउटपुट हमेशा एक अच्छी तरह से फॉर्मेट किए गए JSON ऑब्जेक्ट होगा। मॉडल को JSON में प्रतिक्रिया देने के लिए भी निर्देशित करना महत्वपूर्ण है।

अनुरोध
shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "What color is the sky at different times of the day? Respond using JSON",
  "format": "json",
  "stream": false
}'
प्रतिक्रिया
json
{
  "model": "llama3.2",
  "created_at": "2023-11-09T21:07:55.186497Z",
  "response": "{\n\"morning\": {\n\"color\": \"blue\"\n},\n\"noon\": {\n\"color\": \"blue-gray\"\n},\n\"afternoon\": {\n\"color\": \"warm gray\"\n},\n\"evening\": {\n\"color\": \"orange\"\n}\n}\n",
  "done": true,
  "context": [1, 2, 3],
  "total_duration": 4648158584,
  "load_duration": 4071084,
  "prompt_eval_count": 36,
  "prompt_eval_duration": 439038000,
  "eval_count": 180,
  "eval_duration": 4196918000
}

response का मान JSON वाली एक स्ट्रिंग होगी जो इस तरह की होगी:

json
{
  "morning": {
    "color": "blue"
  },
  "noon": {
    "color": "blue-gray"
  },
  "afternoon": {
    "color": "warm gray"
  },
  "evening": {
    "color": "orange"
  }
}

अनुरोध (छवियों के साथ)

llava या bakllava जैसे मल्टीमोडल मॉडल को छवियां सबमिट करने के लिए, base64-एन्कोडेड images की एक सूची प्रदान करें:

अनुरोध

shell
curl http://localhost:11434/api/generate -d '{
  "model": "llava",
  "prompt":"What is in this picture?",
  "stream": false,
  "images": ["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"]
}'

प्रतिक्रिया

json
{
  "model": "llava",
  "created_at": "2023-11-03T15:36:02.583064Z",
  "response": "A happy cartoon character, which is cute and cheerful.",
  "done": true,
  "context": [1, 2, 3],
  "total_duration": 2938432250,
  "load_duration": 2559292,
  "prompt_eval_count": 1,
  "prompt_eval_duration": 2195557000,
  "eval_count": 44,
  "eval_duration": 736432000
}

अनुरोध (रॉ मोड)

कुछ स्थितियों में, आप टेम्पलेटिंग सिस्टम को बायपास करके एक पूर्ण प्रॉम्प्ट प्रदान करना चाहते हों। इस स्थिति में, आप टेम्पलेटिंग को अक्षम करने के लिए raw पैरामीटर का उपयोग कर सकते हैं। ध्यान दें कि रॉ मोड कॉन्टेक्स्ट वापस नहीं करेगा।

अनुरोध
shell
curl http://localhost:11434/api/generate -d '{
  "model": "mistral",
  "prompt": "[INST] why is the sky blue? [/INST]",
  "raw": true,
  "stream": false
}'

अनुरोध (पुनरुत्पादन योग्य आउटपुट)

पुनरुत्पादन योग्य आउटपुट के लिए, seed को किसी नंबर पर सेट करें:

अनुरोध
shell
curl http://localhost:11434/api/generate -d '{
  "model": "mistral",
  "prompt": "Why is the sky blue?",
  "options": {
    "seed": 123
  }
}'
प्रतिक्रिया
json
{
  "model": "mistral",
  "created_at": "2023-11-03T15:36:02.583064Z",
  "response": " The sky appears blue because of a phenomenon called Rayleigh scattering.",
  "done": true,
  "total_duration": 8493852375,
  "load_duration": 6589624375,
  "prompt_eval_count": 14,
  "prompt_eval_duration": 119039000,
  "eval_count": 110,
  "eval_duration": 1779061000
}

जनरेशन अनुरोध (विकल्पों के साथ)

यदि आप मॉडल के लिए Modelfile में नहीं बल्कि रनटाइम पर कस्टम विकल्प सेट करना चाहते हैं, तो आप options पैरामीटर के साथ ऐसा कर सकते हैं। यह उदाहरण हर उपलब्ध विकल्प को सेट करता है, लेकिन आप उन्हें व्यक्तिगत रूप से सेट कर सकते हैं और उन्हें छोड़ सकते हैं जिन्हें आप ओवरराइड नहीं करना चाहते।

अनुरोध
shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?",
  "stream": false,
  "options": {
    "num_keep": 5,
    "seed": 42,
    "num_predict": 100,
    "draft_num_predict": 4,
    "top_k": 20,
    "top_p": 0.9,
    "min_p": 0.0,
    "typical_p": 0.7,
    "repeat_last_n": 33,
    "temperature": 0.8,
    "repeat_penalty": 1.2,
    "presence_penalty": 1.5,
    "frequency_penalty": 1.0,
    "penalize_newline": true,
    "stop": ["\n", "user:"],
    "numa": false,
    "num_ctx": 1024,
    "num_batch": 2,
    "num_gpu": 1,
    "main_gpu": 0,
    "use_mmap": true,
    "num_thread": 8
  }
}'
प्रतिक्रिया
json
{
  "model": "llama3.2",
  "created_at": "2023-08-04T19:22:45.499127Z",
  "response": "The sky is blue because it is the color of the sky.",
  "done": true,
  "context": [1, 2, 3],
  "total_duration": 4935886791,
  "load_duration": 534986708,
  "prompt_eval_count": 26,
  "prompt_eval_duration": 107345000,
  "eval_count": 237,
  "eval_duration": 4289432000
}

मॉडल लोड करें

यदि एक खाली प्रॉम्प्ट प्रदान किया जाता है, तो मॉडल मेमोरी में लोड हो जाएगा।

अनुरोध
shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2"
}'
प्रतिक्रिया

एक ही JSON ऑब्जेक्ट वापस की जाती है:

json
{
  "model": "llama3.2",
  "created_at": "2023-12-18T19:52:07.071755Z",
  "response": "",
  "done": true
}

मॉडल अनलोड करें

यदि एक खाली प्रॉम्प्ट प्रदान किया जाता है और keep_alive पैरामीटर को 0 पर सेट किया गया है, तो मॉडल मेमोरी से अनलोड हो जाएगा।

अनुरोध
shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "keep_alive": 0
}'
प्रतिक्रिया

एक ही JSON ऑब्जेक्ट वापस की जाती है:

json
{
  "model": "llama3.2",
  "created_at": "2024-09-12T03:54:03.516566Z",
  "response": "",
  "done": true,
  "done_reason": "unload"
}

चैट पूर्णता उत्पन्न करें

POST /api/chat

प्रदान किए गए मॉडल के साथ चैट में अगला संदेश उत्पन्न करें। यह एक स्ट्रीमिंग एंडपॉइंट है, इसलिए यहां एक श्रृंखला के प्रतिक्रियाएं होंगी। "stream": false का उपयोग करके स्ट्रीमिंग को अक्षम किया जा सकता है। अंतिम प्रतिक्रिया ऑब्जेक्ट में अनुरोध से आँकड़े और अतिरिक्त डेटा शामिल होंगे।

पैरामीटर

  • model: (आवश्यक) मॉडल का नाम
  • messages: चैट के संदेश, इसका उपयोग चैट मेमोरी बनाए रखने के लिए किया जा सकता है
  • tools: यदि समर्थित हो तो मॉडल द्वारा उपयोग के लिए JSON में टूल्स की सूची
  • think: (थिंकिंग मॉडल के लिए) क्या मॉडल को प्रतिक्रिया देने से पहले सोचना चाहिए? यह एक बूलियन या थिंकिंग लेवल ("low", "medium", "high", या "max") हो सकता है।

message ऑब्जेक्ट में निम्नलिखित फ़ील्ड होते हैं:

  • role: संदेश की भूमिका, या तो system, user, assistant, या tool
  • content: संदेश का सामग्री
  • thinking: (थिंकिंग मॉडल के लिए) मॉडल की सोच प्रक्रिया
  • images (वैकल्पिक): संदेश में शामिल करने के लिए इमेजों की सूची (बहुमुखी मॉडल जैसे llava के लिए)
  • tool_calls (वैकल्पिक): JSON में उन टूल्स की सूची जिनका उपयोग मॉडल करना चाहता है
  • tool_name (वैकल्पिक): मॉडल को परिणाम के बारे में सूचित करने के लिए निष्पादित किए गए टूल का नाम जोड़ें

उन्नत पैरामीटर (वैकल्पिक):

  • format: प्रतिक्रिया वापस करने का प्रारूप। प्रारूप json या JSON स्कीमा हो सकता है।
  • options: [Modelfile](. /modelfile. mdx#valid-parameters-and-values) के दस्तावेज में सूचीबद्ध अतिरिक्त मॉडल पैरामीटर जैसे temperature
  • stream: यदि false है तो प्रतिक्रिया को ऑब्जेक्ट की स्ट्रीम के बजाय एक एकल प्रतिक्रिया ऑब्जेक्ट के रूप में वापस किया जाएगा
  • keep_alive: अनुरोध के बाद मॉडल मेमोरी में लोड रहने की अवधि नियंत्रित करता है (डिफ़ॉल्ट: 5m)

टूल कॉलिंग

टूल कॉलिंग का समर्थन tools पैरामीटर में टूल्स की सूची प्रदान करके किया जाता है। मॉडल एक ऐसी प्रतिक्रिया उत्पन्न करेगा जिसमें टूल कॉल की सूची होगी। नीचे दिए गए चैट अनुरोध (टूल्स के साथ स्ट्रीमिंग) उदाहरण देखें। मॉडल प्रतिक्रिया में टूल कॉल के परिणाम की भी व्याख्या कर सकता है। नीचे दिए गए चैट अनुरोध (इतिहास के साथ, टूल्स के साथ) उदाहरण देखें। [टूल कॉलिंग क्षमता वाले मॉडल देखें](https://ollama. com/search? c=tool).

संरचित आउटपुट

संरचित आउटपुट का समर्थन format पैरामीटर में JSON स्कीमा प्रदान करके किया जाता है। मॉडल एक ऐसी प्रतिक्रिया उत्पन्न करेगा जो स्कीमा से मेल खाती हो। नीचे दिए गए चैट अनुरोध (संरचित आउटपुट) उदाहरण देखें।

उदाहरण

चैट अनुरोध (स्ट्रीमिंग)

अनुरोध

स्ट्रीमिंग प्रतिक्रिया के साथ चैट संदेश भेजें।

shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "why is the sky blue? "
    }
  ]
}'
प्रतिक्रिया

JSON ऑब्जेक्ट की एक स्ट्रीम वापस की जाती है:

json
{
  "model": "llama3. 2",
  "created_at": "2023-08-04T08:52:19. 385406455-07:00",
  "message": {
    "role": "assistant",
    "content": "The",
    "images": null
  },
  "done": false
}

अंतिम प्रतिक्रिया:

json
{
  "model": "llama3. 2",
  "created_at": "2023-08-04T19:22:45. 499127Z",
  "message": {
    "role": "assistant",
    "content": ""
  },
  "done": true,
  "total_duration": 4883583458,
  "load_duration": 1334875,
  "prompt_eval_count": 26,
  "prompt_eval_duration": 342546000,
  "eval_count": 282,
  "eval_duration": 4535599000
}

चैट अनुरोध (टूल्स के साथ स्ट्रीमिंग)

अनुरोध
shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "what is the weather in tokyo? "
    }
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get the weather in a given city",
        "parameters": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string",
              "description": "The city to get the weather for"
            }
          },
          "required": ["city"]
        }
      }
    }
  ],
  "stream": true
}'
प्रतिक्रिया

JSON ऑब्जेक्ट की एक स्ट्रीम वापस की जाती है:

json
{
  "model": "llama3. 2",
  "created_at": "2025-07-07T20:22:19. 184789Z",
  "message": {
    "role": "assistant",
    "content": "",
    "tool_calls": [
      {
        "function": {
          "name": "get_weather",
          "arguments": {
            "city": "Tokyo"
          }
        }
      }
    ]
  },
  "done": false
}

अंतिम प्रतिक्रिया:

json
{
  "model": "llama3. 2",
  "created_at": "2025-07-07T20:22:19. 19314Z",
  "message": {
    "role": "assistant",
    "content": ""
  },
  "done_reason": "stop",
  "done": true,
  "total_duration": 182242375,
  "load_duration": 41295167,
  "prompt_eval_count": 169,
  "prompt_eval_duration": 24573166,
  "eval_count": 15,
  "eval_duration": 115959084
}

चैट अनुरोध (बिना स्ट्रीमिंग)

अनुरोध
shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "why is the sky blue? "
    }
  ],
  "stream": false
}'
प्रतिक्रिया
json
{
  "model": "llama3. 2",
  "created_at": "2023-12-12T14:13:43. 416799Z",
  "message": {
    "role": "assistant",
    "content": "Hello! How are you today? "
  },
  "done": true,
  "total_duration": 5191566416,
  "load_duration": 2154458,
  "prompt_eval_count": 26,
  "prompt_eval_duration": 383809000,
  "eval_count": 298,
  "eval_duration": 4799921000
}

चैट अनुरोध (बिना स्ट्रीमिंग, टूल्स के साथ)

अनुरोध
shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "what is the weather in tokyo? "
    }
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get the weather in a given city",
        "parameters": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string",
              "description": "The city to get the weather for"
            }
          },
          "required": ["city"]
        }
      }
    }
  ],
  "stream": false
}'
प्रतिक्रिया
json
{
  "model": "llama3. 2",
  "created_at": "2025-07-07T20:32:53. 844124Z",
  "message": {
    "role": "assistant",
    "content": "",
    "tool_calls": [
      {
        "function": {
          "name": "get_weather",
          "arguments": {
            "city": "Tokyo"
          }
        }
      }
    ]
  },
  "done_reason": "stop",
  "done": true,
  "total_duration": 3244883583,
  "load_duration": 2969184542,
  "prompt_eval_count": 169,
  "prompt_eval_duration": 141656333,
  "eval_count": 18,
  "eval_duration": 133293625
}

चैट अनुरोध (संरचित आउटपुट)

अनुरोध
shell
curl -X POST http://localhost:11434/api/chat -H "Content-Type: application/json" -d '{
  "model": "llama3. 1",
  "messages": [{"role": "user", "content": "Ollama is 22 years old and busy saving the world. Return a JSON object with the age and availability. "}],
  "stream": false,
  "format": {
    "type": "object",
    "properties": {
      "age": {
        "type": "integer"
      },
      "available": {
        "type": "boolean"
      }
    },
    "required": [
      "age",
      "available"
    ]
  },
  "options": {
    "temperature": 0
  }
}'
प्रतिक्रिया
json
{
  "model": "llama3. 1",
  "created_at": "2024-12-06T00:46:58. 265747Z",
  "message": {
    "role": "assistant",
    "content": "{\"age\": 22, \"available\": false}"
  },
  "done_reason": "stop",
  "done": true,
  "total_duration": 2254970291,
  "load_duration": 574751416,
  "prompt_eval_count": 34,
  "prompt_eval_duration": 1502000000,
  "eval_count": 12,
  "eval_duration": 175000000
}

चैट अनुरोध (इतिहास के साथ)

वार्तालाप इतिहास के साथ चैट संदेश भेजें। आप मल्टी-शॉट या चेन-ऑफ-थॉट प्रॉम्प्टिंग का उपयोग करके वार्तालाप शुरू करने के लिए इसी तरीका का उपयोग कर सकते हैं।

अनुरोध
shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "why is the sky blue? "
    },
    {
      "role": "assistant",
      "content": "due to rayleigh scattering. "
    },
    {
      "role": "user",
      "content": "how is that different than mie scattering? "
    }
  ]
}'
प्रतिक्रिया

JSON ऑब्जेक्ट की एक स्ट्रीम वापस की जाती है:

json
{
  "model": "llama3. 2",
  "created_at": "2023-08-04T08:52:19. 385406455-07:00",
  "message": {
    "role": "assistant",
    "content": "The"
  },
  "done": false
}

अंतिम प्रतिक्रिया:

json
{
  "model": "llama3. 2",
  "created_at": "2023-08-04T19:22:45. 499127Z",
  "done": true,
  "total_duration": 8113331500,
  "load_duration": 6396458,
  "prompt_eval_count": 61,
  "prompt_eval_duration": 398801000,
  "eval_count": 468,
  "eval_duration": 7701267000
}

चैट अनुरोध (इतिहास के साथ, टूल्स के साथ)

अनुरोध
shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "what is the weather in Toronto? "
    },
    // the message from the model appended to history
    {
      "role": "assistant",
      "content": "",
      "tool_calls": [
        {
          "function": {
            "name": "get_weather",
            "arguments": {
              "city": "Toronto"
            }
          }
        }
      ]
    },
    // the tool call result appended to history
    {
      "role": "tool",
      "content": "11 degrees celsius",
      "tool_name": "get_weather"
    }
  ],
  "stream": false,
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get the weather in a given city",
        "parameters": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string",
              "description": "The city to get the weather for"
            }
          },
          "required": ["city"]
        }
      }
    }
  ]
}'
प्रतिक्रिया
json
{
  "model": "llama3. 2",
  "created_at": "2025-07-07T20:43:37. 688511Z",
  "message": {
    "role": "assistant",
    "content": "The current temperature in Toronto is 11°C. "
  },
  "done_reason": "stop",
  "done": true,
  "total_duration": 890771750,
  "load_duration": 707634750,
  "prompt_eval_count": 94,
  "prompt_eval_duration": 91703208,
  "eval_count": 11,
  "eval_duration": 90282125
}

चैट अनुरोध (इमेज के साथ)

अनुरोध

इमेज के साथ चैट संदेश भेजें। इमेज को एक ऐरे के रूप में प्रदान किया जाना चाहिए, जिसमें व्यक्तिगत इमेजेज को Base64 में एन्कोड किया गया हो।

shell
curl http://localhost:11434/api/chat -d '{
  "model": "llava",
  "messages": [
    {
      "role": "user",
      "content": "what is in this image?
markdown
",
      "images": ["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"]
    }
  ]
}'
प्रतिक्रिया
json
{
  "model": "llava",
  "created_at": "2023-12-13T22:42:50. 203334Z",
  "message": {
    "role": "assistant",
    "content": " The image features a cute, little pig with an angry facial expression. It's wearing a heart on its shirt and is waving in the air. This scene appears to be part of a drawing or sketching project. ",
    "images": null
  },
  "done": true,
  "total_duration": 1668506709,
  "load_duration": 1986209,
  "prompt_eval_count": 26,
  "prompt_eval_duration": 359682000,
  "eval_count": 83,
  "eval_duration": 1303285000
}

चैट अनुरोध (पुनरुत्पादनशील आउटपुट)

अनुरोध
shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "Hello! "
    }
  ],
  "options": {
    "seed": 101,
    "temperature": 0
  }
}'
प्रतिक्रिया
json
{
  "model": "llama3. 2",
  "created_at": "2023-12-12T14:13:43. 416799Z",
  "message": {
    "role": "assistant",
    "content": "Hello! How are you today? "
  },
  "done": true,
  "total_duration": 5191566416,
  "load_duration": 2154458,
  "prompt_eval_count": 26,
  "prompt_eval_duration": 383809000,
  "eval_count": 298,
  "eval_duration": 4799921000
}

चैट अनुरोध (उपकरणों के साथ)

अनुरोध
shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "What is the weather today in Paris? "
    }
  ],
  "stream": false,
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_current_weather",
        "description": "Get the current weather for a location",
        "parameters": {
          "type": "object",
          "properties": {
            "location": {
              "type": "string",
              "description": "The location to get the weather for, e. g. San Francisco, CA"
            },
            "format": {
              "type": "string",
              "description": "The format to return the weather in, e. g. 'celsius' or 'fahrenheit'",
              "enum": ["celsius", "fahrenheit"]
            }
          },
          "required": ["location", "format"]
        }
      }
    }
  ]
}'
प्रतिक्रिया
json
{
  "model": "llama3. 2",
  "created_at": "2024-07-22T20:33:28. 123648Z",
  "message": {
    "role": "assistant",
    "content": "",
    "tool_calls": [
      {
        "function": {
          "name": "get_current_weather",
          "arguments": {
            "format": "celsius",
            "location": "Paris, FR"
          }
        }
      }
    ]
  },
  "done_reason": "stop",
  "done": true,
  "total_duration": 885095291,
  "load_duration": 3753500,
  "prompt_eval_count": 122,
  "prompt_eval_duration": 328493000,
  "eval_count": 33,
  "eval_duration": 552222000
}

मॉडल लोड करें

यदि messages सरणी खाली हो, तो मॉडल को मेमोरी में लोड कर दिया जाएगा। ##### अनुरोध

shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": []
}'
प्रतिक्रिया
json
{
  "model": "llama3. 2",
  "created_at": "2024-09-12T21:17:29. 110811Z",
  "message": {
    "role": "assistant",
    "content": ""
  },
  "done_reason": "load",
  "done": true
}

मॉडल अनलोड करें

यदि messages सरणी खाली हो और keep_alive पैरामीटर को 0 पर सेट किया गया हो, तो मॉडल को मेमोरी से अनलोड कर दिया जाएगा। ##### अनुरोध

shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [],
  "keep_alive": 0
}'
प्रतिक्रिया

एकल JSON ऑब्जेक्ट लौटाया जाता है:

json
{
  "model": "llama3. 2",
  "created_at": "2024-09-12T21:33:17. 547535Z",
  "message": {
    "role": "assistant",
    "content": ""
  },
  "done_reason": "unload",
  "done": true
}

मॉडल बनाएं

POST /api/create

मॉडल निम्नलिखित से बनाया जा सकता है:

  • दूसरे मॉडल से;
  • सफेटेंसर डायरेक्टरी से; या
  • GGUF फ़ाइल से।

यदि आप सफेटेंसर डायरेक्टरी या GGUF फ़ाइल से मॉडल बना रहे हैं, तो आपको प्रत्येक फ़ाइल के लिए एक ब्लॉब बनाना होगा और फिर files फ़ील्ड में प्रत्येक ब्लॉब से जुड़ा फ़ाइल नाम और SHA256 डाइजेस्ट का उपयोग करना होगा।

पैरामीटर

  • model: बनाने वाले मॉडल का नाम
  • from: (वैकल्पिक) नया मॉडल बनाने के लिए मौजूदा मॉडल का नाम
  • files: (वैकल्पिक) मॉडल बनाने के लिए ब्लॉब के फ़ाइल नामों से SHA256 डाइजेस्ट का शब्दकोश (डिक्शनरी)
  • adapters: (वैकल्पिक) LORA एडैप्टर के लिए ब्लॉब के फ़ाइल नामों से SHA256 डाइजेस्ट का शब्दकोश (डिक्शनरी)
  • template: (वैकल्पिक) मॉडल के लिए प्रॉम्प्ट टेम्पलेट
  • renderer: (वैकल्पिक) मॉडल के रेंडरर का नाम
  • parser: (वैकल्पिक) मॉडल के पार्सर का नाम
  • license: (वैकल्पिक) मॉडल के लाइसेंस या लाइसेंसों को शामिल करने वाला स्ट्रिंग या स्ट्रिंग की सूची
  • system: (वैकल्पिक) मॉडल के लिए सिस्टम प्रॉम्प्ट शामिल करने वाली स्ट्रिंग
  • parameters: (वैकल्पिक) मॉडल के पैरामीटरों का शब्दकोश (पैरामीटरों की सूची के लिए Modelfile देखें)
  • messages: (वैकल्पिक) बातचीत बनाने के लिए उपयोग किए जाने वाले संदेश ऑब्जेक्ट की सूची
  • stream: (वैकल्पिक) यदि false है तो प्रतिक्रिया एक स्ट्रीम के बजाय एकल प्रतिक्रिया ऑब्जेक्ट के रूप में लौटाई जाएगी
  • quantize (वैकल्पिक): गैर-क्वांटाइज़्ड (उदाहरण के लिए float16) मॉडल को क्वांटाइज़ करें

क्वांटाइज़ेशन प्रकार

प्रकारअनुशंसित
q4_K_M*
q4_K_S
q8_0*

उदाहरण

नया मॉडल बनाएं

एक मौजूदा मॉडल से नया मॉडल बनाएं।

अनुरोध
shell
curl http://localhost:11434/api/create -d '{
  "model": "mario",
  "from": "llama3.2",
  "system": "You are Mario from Super Mario Bros."
}'
प्रतिक्रिया

JSON ऑब्जेक्ट की स्ट्रीम लौटाई जाती है:

json
{"status":"reading model metadata"}
{"status":"creating system layer"}
{"status":"using already created layer sha256:22f7f8ef5f4c791c1b03d7eb414399294764d7cc82c7e94aa81a1feb80a983a2"}
{"status":"using already created layer sha256:8c17c2ebb0ea011be9981cc3922db8ca8fa61e828c5d3f44cb6ae342bf80460b"}
{"status":"using already created layer sha256:7c23fb36d80141c4ab8cdbb61ee4790102ebd2bf7aeff414453177d4f2110e5d"}
{"status":"using already created layer sha256:2e0493f67d0c8c9c68a8aeacdf6a38a2151cb3c4c1d42accf296e19810527988"}
{"status":"using already created layer sha256:2759286baa875dc22de5394b4a925701b1896a7e3f8e53275c36f75a877a82c9"}
{"status":"writing layer sha256:df30045fe90f0d750db82a058109cecd6d4de9c90a3d75b19c09e5f64580bb42"}
{"status":"writing layer sha256:f18a68eb09bf925bb1b669490407c1b1251c5db98dc4d3d81f3088498ea55690"}
{"status":"writing manifest"}
{"status":"success"}

मॉडल को क्वांटाइज़ करें

गैर-क्वांटाइज़्ड मॉडल को क्वांटाइज़ करें।

अनुरोध
shell
curl http://localhost:11434/api/create -d '{
  "model": "llama3.2:quantized",
  "from": "llama3.2:3b-instruct-fp16",
  "quantize": "q4_K_M"
}'
प्रतिक्रिया

JSON ऑब्जेक्ट की स्ट्रीम लौटाई जाती है:

json
{"status":"quantizing F16 model to Q4_K_M","digest":"0","total":6433687776,"completed":12302}
{"status":"quantizing F16 model to Q4_K_M","digest":"0","total":6433687776,"completed":6433687552}
{"status":"verifying conversion"}
{"status":"creating new layer sha256:fb7f4f211b89c6c4928ff4ddb73db9f9c0cfca3e000c3e40d6cf27ddc6ca72eb"}
{"status":"using existing layer sha256:966de95ca8a62200913e3f8bfbf84c8494536f1b94b49166851e76644e966396"}
{"status":"using existing layer sha256:fcc5a6bec9daf9b561a68827b67ab6088e1dba9d1fa2a50d7bbcc8384e0a265d"}
{"status":"using existing layer sha256:a70ff7e570d97baaf4e62ac6e6ad9975e04caa6d900d3742d37698494479e0cd"}
{"status":"using existing layer sha256:56bb8bd477a519ffa694fc449c2413c6f0e1d3b1c88fa7e3c9d88d3ae49d4dcb"}
{"status":"writing manifest"}
{"status":"success"}

GGUF से मॉडल बनाएं

GGUF फ़ाइल से मॉडल बनाएं। files पैरामीटर को उपयोग करने वाले GGUF फ़ाइल के फ़ाइल नाम और SHA256 डाइजेस्ट से भरा जाना चाहिए। इस API को कॉल करने से पहले GGUF फ़ाइल को सर्वर पर पुश करने के लिए /api/blobs/:digest का उपयोग करें।

अनुरोध
shell
curl http://localhost:11434/api/create -d '{
  "model": "my-gguf-model",
  "files": {
    "test.gguf": "sha256:432f310a77f4650a88d0fd59ecdd7cebed8d684bafea53cbff0473542964f0c3"
  }
}'
प्रतिक्रिया

JSON ऑब्जेक्ट की स्ट्रीम लौटाई जाती है:

json
{"status":"parsing GGUF"}
{"status":"using existing layer sha256:432f310a77f4650a88d0fd59ecdd7cebed8d684bafea53cbff0473542964f0c3"}
{"status":"writing manifest"}
{"status":"success"}

सफेटेंसर डायरेक्टरी से मॉडल बनाएं

files पैरामीटर में सफेटेंसर मॉडल की फ़ाइलों का शब्दकोश शामिल होना चाहिए जिसमें प्रत्येक फ़ाइल का फ़ाइल नाम और SHA256 डाइजेस्ट हो। इस API को कॉल करने से पहले प्रत्येक फ़ाइल को सर्वर पर पहले पुश करने के लिए /api/blobs/:digest का उपयोग करें। फ़ाइलें तब तक कैश में रहेंगी जब तक ओलामा सर्वर रीस्टार्ट नहीं किया जाता है।

अनुरोध
shell
curl http://localhost:11434/api/create -d '{
  "model": "fred",
  "files": {
    "config.json": "sha256:dd3443e529fb2290423a0c65c2d633e67b419d273f170259e27297219828e389",
    "generation_config.json": "sha256:88effbb63300dbbc7390143fbbdd9d9fa50587b37e8bfd16c8c90d4970a74a36",
    "special_tokens_map.json": "sha256:b7455f0e8f00539108837bfa586c4fbf424e31f8717819a6798be74bef813d05",
    "tokenizer.json": "sha256:bbc1904d35169c542dffbe1f7589a5994ec7426d9e5b609d07bab876f32e97ab",
    "tokenizer_config.json": "sha256:24e8a6dc2547164b7002e3125f10b415105644fcf02bf9ad8b674c87b1eaaed6",
    "model.safetensors": "sha256:1ff795ff6a07e6a68085d206fb84417da2f083f68391c2843cd2b8ac6df8538f"
  }
}'
प्रतिक्रिया

JSON ऑब्जेक्ट की स्ट्रीम लौटाई जाती है:

shell
{"status":"converting model"}
{"status":"creating new layer sha256:05ca5b813af4a53d2c2922933936e398958855c44ee534858fcfd830940618b6"}
{"status":"using autodetected template llama3-instruct"}
{"status":"using existing layer sha256:56bb8bd477a519ffa694fc449c2413c6f0e1d3b1c88fa7e3c9d88d3ae49d4dcb"}
{"status":"writing manifest"}
{"status":"success"}

ब्लॉब की उपस्थिति की जांच करें

shell
HEAD /api/blobs/:digest

यह सुनिश्चित करता है कि मॉडल बनाने के लिए उपयोग किया जाने वाला फाइल ब्लॉब (बाइनरी लार्ज ऑब्जेक्ट) सर्वर पर मौजूद है। यह आपके Ollama सर्वर की जांच करता है, न कि ollama.com की।

क्वेरी पैरामीटर

  • digest: ब्लॉब का SHA256 डाइजेस्ट

उदाहरण

अनुरोध

shell
curl -I http://localhost:11434/api/blobs/sha256:29fdb92e57cf0827ded04ae6461b5931d01fa595843f55d36f5b275a52087dd2

प्रतिक्रिया

अगर ब्लॉब मौजूद है तो 200 OK लौटाएं, अगर नहीं है तो 404 Not Found।

ब्लॉब पुश करें

POST /api/blobs/:digest

Ollama सर्वर पर एक फाइल को "ब्लॉब" (बाइनरी लार्ज ऑब्जेक्ट) बनाने के लिए पुश करें।

क्वेरी पैरामीटर

  • digest: फाइल का अपेक्षित SHA256 डाइजेस्ट

उदाहरण

अनुरोध

shell
curl -T model.gguf -X POST http://localhost:11434/api/blobs/sha256:29fdb92e57cf0827ded04ae6461b5931d01fa595843f55d36f5b275a52087dd2

प्रतिक्रिया

अगर ब्लॉब सफलतापूर्वक बनाया गया है तो 201 Created लौटाएं, अगर उपयोग किए गए डाइजेस्ट अपेक्षित नहीं है तो 400 Bad Request।

स्थानीय मॉडलों की सूची

GET /api/tags

स्थानीय रूप से उपलब्ध मॉडलों की सूची।

उदाहरण

अनुरोध

shell
curl http://localhost:11434/api/tags

प्रतिक्रिया

एकल JSON ऑब्जेक्ट लौटाया जाएगा।

json
{
  "models": [
    {
      "name": "deepseek-r1:latest",
      "model": "deepseek-r1:latest",
      "modified_at": "2025-05-10T08:06:48.639712648-07:00",
      "size": 4683075271,
      "digest": "0a8c266910232fd3291e71e5ba1e058cc5af9d411192cf88b6d30e92b6e73163",
      "details": {
        "parent_model": "",
        "format": "gguf",
        "family": "qwen2",
        "families": ["qwen2"],
        "parameter_size": "7.6B",
        "quantization_level": "Q4_K_M"
      }
    },
    {
      "name": "llama3.2:latest",
      "model": "llama3.2:latest",
      "modified_at": "2025-05-04T17:37:44.706015396-07:00",
      "size": 2019393189,
      "digest": "a80c4f17acd55265feec403c7aef86be0c25983ab279d83f3bcd3abbcb5b8b72",
      "details": {
        "parent_model": "",
        "format": "gguf",
        "family": "llama",
        "families": ["llama"],
        "parameter_size": "3.2B",
        "quantization_level": "Q4_K_M"
      }
    }
  ]
}

मॉडल की जानकारी दिखाएं

POST /api/show

एक मॉडल के बारे में विवरण, मॉडलफाइल, टेम्पलेट, पैरामीटर, लाइसेंस, सिस्टम प्रॉम्प्ट सहित जानकारी दिखाएं।

पैरामीटर

  • model: दिखाने के लिए मॉडल का नाम
  • verbose: (वैकल्पिक) अगर इसे true पर सेट किया गया है, तो वर्बोज प्रतिक्रिया फ़ील्ड के लिए पूरा डेटा लौटाता है

उदाहरण

अनुरोध

shell
curl http://localhost:11434/api/show -d '{
  "model": "llava"
}'

प्रतिक्रिया

json5
{
  modelfile: '# Modelfile generated by "ollama show"\n# To build a new Modelfile based on this one, replace the FROM line with:\n# FROM llava:latest\n\nFROM /Users/matt/.ollama/models/blobs/sha256:200765e1283640ffbd013184bf496e261032fa75b99498a9613be4e94d63ad52\nTEMPLATE """{{ .System }}\nUSER: {{ .Prompt }}\nASSISTANT: """\nPARAMETER num_ctx 4096\nPARAMETER stop "\u003c/s\u003e"\nPARAMETER stop "USER:"\nPARAMETER stop "ASSISTANT:"',
  parameters: 'num_keep                       24\nstop                           "<|start_header_id|>"\nstop                           "<|end_header_id|>"\nstop                           "<|eot_id|>"',
  template: "{{ if .System }}<|start_header_id|>system<|end_header_id|>\n\n{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>\n\n{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>\n\n{{ .Response }}<|eot_id|>",
  details: {
    parent_model: "",
    format: "gguf",
    family: "llama",
    families: ["llama"],
    parameter_size: "8.0B",
    quantization_level: "Q4_0",
  },
  model_info: {
    "general.architecture": "llama",
    "general.file_type": 2,
    "general.parameter_count": 8030261248,
    "general.quantization_version": 2,
    "llama.attention.head_count": 32,
    "llama.attention.head_count_kv": 8,
    "llama.attention.layer_norm_rms_epsilon": 0.00001,
    "llama.block_count": 32,
    "llama.context_length": 8192,
    "llama.embedding_length": 4096,
    "llama.feed_forward_length": 14336,
    "llama.rope.dimension_count": 128,
    "llama.rope.freq_base": 500000,
    "llama.vocab_size": 128256,
    "tokenizer.ggml.bos_token_id": 128000,
    "tokenizer.ggml.eos_token_id": 128009,
    "tokenizer.ggml.merges": [], // populates if `verbose=true`
    "tokenizer.ggml.model": "gpt2",
    "tokenizer.ggml.pre": "llama-bpe",
    "tokenizer.ggml.token_type": [], // populates if `verbose=true`
    "tokenizer.ggml.tokens": [], // populates if `verbose=true`
  },
  capabilities: ["completion", "vision"],
}

मॉडल की कॉपी करें

POST /api/copy

मॉडल की कॉपी करें। एक मौजूदा मॉडल से दूसरे नाम के साथ एक नया मॉडल बनाता है।

उदाहरण

अनुरोध

shell
curl http://localhost:11434/api/copy -d '{
  "source": "llama3.2",
  "destination": "llama3-backup"
}'

प्रतिक्रिया

अगर सफल होता है तो 200 OK लौटाता है, या अगर स्रोत मॉडल मौजूद नहीं है तो 404 Not Found।

मॉडल को डिलीट करें

DELETE /api/delete

मॉडल और उसके डेटा को डिलीट करें।

पैरामीटर

  • model: डिलीट करने के लिए मॉडल का नाम

उदाहरण

अनुरोध

shell
curl -X DELETE http://localhost:11434/api/delete -d '{
  "model": "llama3:13b"
}'

प्रतिक्रिया

अगर सफल होता है तो 200 OK लौटाता है, अगर डिलीट करने वाला मॉडल मौजूद नहीं है तो 404 Not Found।

मॉडल पुल करें

POST /api/pull

ollama लाइब्रेरी से एक मॉडल डाउनलोड करें। रद्द की गई पुलिंग को वहां से फिर से शुरू किया जाता है जहां से यह छोड़ा गया था, और कई कॉल समान डाउनलोड प्रोग्रेस को साझा करेंगे।

पैरामीटर

  • model: पुल करने के लिए मॉडल का नाम
  • insecure: (वैकल्पिक) लाइब्रेरी से असुरक्षित कनेक्शन की अनुमति दें। इसे केवल तभी उपयोग करें जब आप डेवलपमेंट के दौरान अपनी खुद की लाइब्रेरी से पुल कर रहे हों।
  • stream: (वैकल्पिक) अगर false है तो प्रतिक्रिया ऑब्जेक्ट के स्ट्रीम के बजाय एकल प्रतिक्रिया ऑब्जेक्ट के रूप में लौटाई जाएगी।

उदाहरण

अनुरोध

shell
curl http://localhost:11434/api/pull -d '{
  "model": "llama3.2"
}'

प्रतिक्रिया

अगर stream निर्दिष्ट नहीं किया गया है, या true पर सेट किया गया है, तो JSON ऑब्जेक्ट का एक स्ट्रीम लौटाई जाती है:

पहला ऑब्जेक्ट मेनिफेस्ट है:

json
{
  "status": "pulling manifest"
}

फिर डाउनलोड करने की एक श्रृंखला की प्रतिक्रियां होती हैं। जब तक कोई भी डाउनलोड पूरा नहीं होता है, completed की शामिल नहीं हो सकता है। डाउनलोड करने वाली फाइलों की संख्या मेनिफेस्ट में निर्दिष्ट लेयरों की संख्या पर निर्भर करती है।

json
{
  "status": "pulling digestname",
  "digest": "digestname",
  "total": 2142590208,
  "completed": 241970
}

सभी फाइलों के डाउनलोड हो जाने के बाद, अंतिम प्रतिक्रियां हैं:

json
{
    "status": "verifying sha256 digest"
}
{
    "status": "writing manifest"
}
{
    "status": "removing any unused layers"
}
{
    "status": "success"
}

अगर stream को false पर सेट किया गया है, तो प्रतिक्रिया एकल JSON ऑब्जेक्ट है:

json
{
  "status": "success"
}

मॉडल पुश करें

POST /api/push

मॉडल लाइब्रेरी पर एक मॉडल अपलोड करें। इसमें पहले ollama.ai के लिए रजिस्टर होना और पब्लिक की जोड़ना आवश्यक है।

पैरामीटर

  • model: पुश करने के लिए मॉडल का नाम <namespace>/<model>:<tag> फॉर्म में
  • insecure: (वैकल्पिक) लाइब्रेरी से असुरक्षित कनेक्शन की अनुमति दें। इसे केवल तभी उपयोग करें जब आप डेवलपमेंट के दौरान अपनी लाइब्रेरी पर पुश कर रहे हों।
  • stream: (वैकल्पिक) अगर false है तो प्रतिक्रिया ऑब्जेक्ट के स्ट्रीम के बजाय एकल प्रतिक्रिया ऑब्जेक्ट के रूप में लौटाई जाएगी।

उदाहरण

अनुरोध

shell
curl http://localhost:11434/api/push -d '{
  "model": "mattw/pygmalion:latest"
}'

प्रतिक्रिया

अगर stream निर्दिष्ट नहीं किया गया है, या true पर सेट किया गया है, तो JSON ऑब्जेक्ट का एक स्ट्रीम लौटाई जाती है:

json
{ "status": "retrieving manifest" }

और फिर:

json
{
  "status": "starting upload",
  "digest": "sha256:bc07c81de745696fdf5afca05e065818a8149fb0c77266fb584d9b2cba3711ab",
  "total": 1928429856
}

फिर अपलोड करने की एक श्रृंखला की प्रतिक्रियां होती हैं:

json
{
  "status": "starting upload",
  "digest": "sha256:bc07c81de745696fdf5afca05e065818a8149fb0c77266fb584d9b2cba3711ab",
  "total": 1928429856
}

अंत में, जब अपलोड पूरा हो जाता है:

json
{"status":"pushing manifest"}
{"status":"success"}

अगर stream को false पर सेट किया गया है, तो प्रतिक्रिया एकल JSON ऑब्जेक्ट है:

json
{ "status": "success" }

एम्बेडिंग जनरेट करें

POST /api/embed

एक मॉडल से एम्बेडिंग जनरेट करें

पैरामीटर

  • model: एम्बेडिंग जनरेट करने के लिए मॉडल का नाम
  • input: एम्बेडिंग जनरेट करने के लिए टेक्स्ट या टेक्स्ट की सूची

उन्नत पैरामीटर:

  • truncate: कॉन्टेक्स्ट लंबाई के अंदर फिट होने के लिए प्रत्येक इनपुट के अंत को ट्रंकेट करता है। अगर false है और कॉन्टेक्स्ट लंबाई से अधिक हो जाती है तो एरर लौटाता है। डिफॉल्ट true होता है।
  • options: मॉडलफाइल के दस्तावेज़ में सूचीबद्ध अतिरिक्त मॉडल पैरामीटर जैसे temperature
  • keep_alive: अनुरोध के बाद मॉडल मेमोरी में लोड रहने की अवधि नियंत्रित करता है (डिफॉल्ट: 5m)
  • dimensions: एम्बेडिंग के लिए डाइमेंशन की संख्या

उदाहरण

अनुरोध

shell
curl http://localhost:11434/api/embed -d '{
  "model": "all-minilm",
  "input": "Why is the sky blue?"
}'

प्रतिक्रिया

json
{
  "model": "all-minilm",
  "embeddings": [
    [
      0.010071029, -0.0017594862, 0.05007221, 0.04692972, 0.054916814,
      0.008599704, 0.105441414, -0.025878139, 0.12958129, 0.031952348
    ]
  ],
  "total_duration": 14143917,
  "load_duration": 1019500,
  "prompt_eval_count": 8
}

अनुरोध (एक से ज़्यादा इनपुट)

shell
curl http://localhost:11434/api/embed -d '{
  "model": "all-minilm",
  "input": ["Why is the sky blue?", "Why is the grass green?"]
}'

प्रतिक्रिया

json
{
  "model": "all-minilm",
  "embeddings": [
    [
      0.010071029, -0.0017594862, 0.05007221, 0.04692972, 0.054916814,
      0.008599704, 0.105441414, -0.025878139, 0.12958129, 0.031952348
    ],
    [
      -0.0098027075, 0.06042469, 0.025257962, -0.006364387, 0.07272725,
      0.017194884, 0.09032035, -0.051705178, 0.09951512, 0.09072481
    ]
  ]
}

चल रहे मॉडलों की सूची

GET /api/ps

वर्तमान में मेमोरी में लोड किए गए मॉडलों की सूची।

उदाहरण

अनुरोध

shell
curl http://localhost:11434/api/ps

प्रतिक्रिया

एकल JSON ऑब्जेक्ट लौटाया जाएगा।

json
{
  "models": [
    {
      "name": "mistral:latest",
      "model": "mistral:latest",
      "size": 5137025024,
      "digest": "2ae6f6dd7a3dd734790bbbf58b8909a606e0e7e97e94b7604e0aa7ae4490e6d8",
      "details": {
        "parent_model": "",
        "format": "gguf",
        "family": "llama",
        "families": ["llama"],
        "parameter_size": "7.2B",
        "quantization_level": "Q4_0"
      },
      "expires_at": "2024-06-04T14:38:31.83753-07:00",
      "size_vram": 5137025024
    }
  ]
}

एम्बेडिंग जनरेट करें

नोट: यह एंडपॉइंट /api/embed द्वारा बदल दिया गया है।

POST /api/embeddings

एक मॉडल से एम्बेडिंग जनरेट करें

पैरामीटर

  • model: एम्बेडिंग जनरेट करने के लिए मॉडल का नाम
  • prompt: एम्बेडिंग जनरेट करने के लिए टेक्स्ट

उन्नत पैरामीटर:

  • options: मॉडलफाइल के दस्तावेज़ में सूचीबद्ध अतिरिक्त मॉडल पैरामीटर जैसे temperature
  • keep_alive: अनुरोध के बाद मॉडल मेमोरी में लोड रहने की अवधि नियंत्रित करता है (डिफॉल्ट: 5m)

उदाहरण

अनुरोध

shell
curl http://localhost:11434/api/embeddings -d '{
  "model": "all-minilm",
  "prompt": "Here is an article about llamas..."
}'

प्रतिक्रिया

json
{
  "embedding": [
    0.5670403838157654, 0.009260174818336964, 0.23178744316101074,
    -0.2916173040866852, -0.8924556970596313, 0.8785552978515625,
    -0.34576427936553955, 0.5742510557174683, -0.04222835972905159,
    -0.137906014919281
  ]
}

वर्शन

GET /api/version

Ollama का वर्शन प्राप्त करें

उदाहरण

अनुरोध

shell
curl http://localhost:11434/api/version

प्रतिक्रिया

json
{
  "version": "0.5.1"
}

प्रायोगिक सुविधाएं

इमेज जनरेशन (प्रायोगिक)

[!चेतावनी] इमेज जनरेशन प्रायोगिक है और भविष्य के वर्शन में बदल सकता है।

इमेज जनरेशन मॉडल का उपयोग करते समय मानक /api/generate एंडपॉइंट के माध्यम से अब इमेज जनरेशन का समर्थन किया जाता है। API स्वचालित रूप से पता लगाता है कि कब इमेज जनरेशन मॉडल का उपयोग किया जा रहा है।

पूरी API दस्तावेज़ के लिए कंप्लीशन जनरेट करें सेक्शन देखें। प्रायोगिक इमेज जनरेशन पैरामीटर (width, height, steps) वहां दस्तावेजित हैं।

उदाहरण

अनुरोध
shell
curl http://localhost:11434/api/generate -d '{
  "model": "x/z-image-turbo",
  "prompt": "a sunset over mountains",
  "width": 1024,
  "height": 768
}'
प्रतिक्रिया (स्ट्रीमिंग)

जनरेशन के दौरान प्रोग्रेस अपडेट:

json
{
  "model": "x/z-image-turbo",
  "created_at": "2024-01-15T10:30:00.000000Z",
  "completed": 5,
  "total": 20,
  "done": false
}
अंतिम प्रतिक्रिया
json
{
  "model": "x/z-image-turbo",
  "created_at": "2024-01-15T10:30:15.000000Z",
  "image": "iVBORw0KGgoAAAANSUhEUg...",
  "done": true,
  "done_reason": "stop",
  "total_duration": 15000000000,
  "load_duration": 2000000000
}