Skip to content

API ​

Not: Ollama'nın API belgeleri https://docs.ollama.com/api adresine taşınıyor.

Uç Noktalar ​

Kullanım Kuralları ​

Model isimleri ​

Model isimleri model:etiket formatını takip eder, burada model isteğe bağlı bir ad alanına (namespace) sahip olabilir, örneğin example/model. Bazı örnekler orca-mini:3b-q8_0 ve llama3:70b'dir. Etiket isteğe bağlıdır ve sağlanmazsa varsayılan olarak latest kullanılır. Etiket, belirli bir sürümü tanımlamak için kullanılır.

Süreler ​

Tüm süreler nanosaniye cinsinden döndürülür.

Akışlı yanıtlar ​

Bazı uç noktalar JSON nesneleri olarak akışlı yanıtlar döndürür. Akış, bu uç noktalar için {"stream": false} sağlanarak devre dışı bırakılabilir.

Tamamlama oluştur ​

POST /api/generate

Belirli bir modelle verilen bir prompt için yanıt oluşturun. Bu bir akışlı uç noktadır, bu nedenle bir dizi yanıt olacaktır. Son yanıt nesnesi, istekten gelen istatistikleri ve ek verileri içerecektir.

Parametreler ​

  • model: (gerekli) model ismi
  • prompt: yanıt oluşturulacak prompt
  • suffix: model yanıtından sonraki metin
  • images: (isteğe bağlı) base64 ile kodlanmış görseller listesi (llava gibi çok modlu modeller için)
  • think: (düşünen modeller için) model yanıt vermeden önce düşünsün mü? Boolean bir değer ya da düşünce seviyesi ("low", "medium", "high" veya "max") olabilir.

Gelişmiş parametreler (isteğe bağlı):

  • format: yanıtın döndürüleceği biçim. Biçim json ya da bir JSON şeması olabilir
  • options: Modelfile dokümanında listelenen ek model parametreleri, örneğin temperature gibi
  • system: sistem mesajı (Modelfile'de tanımlananı geçersiz kılar)
  • template: kullanılacak prompt şablonu (Modelfile'de tanımlananı geçersiz kılar)
  • stream: false ise yanıt, nesneler akışı yerine tek bir yanıt nesnesi olarak döndürülür
  • raw: true ise prompt'a hiçbir biçimlendirme uygulanmaz. API'ye gönderdiğiniz istekte tam bir şablonlu prompt belirtiyorsanız raw parametresini kullanmayı seçebilirsiniz
  • keep_alive: istekten sonra modelin bellekte ne kadar süre yüklü kalacağını kontrol eder (varsayılan: 5m)
  • context (kullanımdan kaldırıldı): /generate uç noktasına yapılan önceki bir istekten dönen bağlam parametresi, bu, kısa bir konuşma belleği tutmak için kullanılabilir

Deneysel görsel oluşturma parametreleri (sadece görsel oluşturma modelleri için):

WARNING

Bu parametreler deneyseldir ve gelecek sürümlerde değişebilir.

  • width: oluşturulan görselin piksel cinsinden genişliği
  • height: oluşturulan görselin piksel cinsinden yüksekliği
  • steps: difüzyon adımı sayısı

Yapılandırılmış çıktılar ​

format parametresine bir JSON şeması sağlayarak yapılandırılmış çıktılar desteklenir. Model, şemaya uygun bir yanıt oluşturacaktır. Aşağıdaki yapılandırılmış çıktılar örneğine bakın.

JSON modu ​

format parametresini json olarak ayarlayarak JSON modunu etkinleştirin. Bu, yanıtı geçerli bir JSON nesnesi olarak yapılandırır. Aşağıdaki JSON modu örneğine bakın.

IMPORTANT

Modelin prompt içinde JSON kullanmasını talimat etmek önemlidir. Aksi takdirde model çok miktarda boşluk üretebilir.

Örnekler ​

Tamamlama isteği (Akışlı) ​

İstek ​
shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?"
}'
Yanıt ​

Bir JSON nesneleri akışı döndürülür:

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

Akıştaki son yanıt ayrıca oluşturma ile ilgili ek verileri içerir:

  • total_duration: yanıt oluşturmak için harcanan süre
  • load_duration: modeli yüklemek için harcanan nanosaniye cinsinden süre
  • prompt_eval_count: prompt'taki token sayısı
  • prompt_eval_duration: prompt'u değerlendirmek için harcanan nanosaniye cinsinden süre
  • eval_count: yanıttaki token sayısı
  • eval_duration: yanıtı oluşturmak için harcanan nanosaniye cinsinden süre
  • context: bu yanıtta kullanılan konuşmanın kodlaması, bu, konuşma belleği tutmak için bir sonraki isteğe gönderilebilir
  • response: yanıt akışlı ise boş, akışlı değilse tüm yanıtı içerir

Yanıtın saniye başına token (token/s) hızında ne kadar hızlı oluşturulduğunu hesaplamak için eval_count / eval_duration * 10^9 bölmesini yapın.

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
}

İstek (Akış yok) ​

İstek ​

Akış kapalıyken yanıt tek bir istekte alınabilir.

shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?",
  "stream": false
}'
Yanıt ​

stream false olarak ayarlanırsa, yanıt tek bir JSON nesnesi olacaktır:

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
}

İstek (sonek ile) ​

İstek ​
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
}'
Yanıt ​
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
}

İstek (Yapılandırılmış çıktılar) ​

İstek ​
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"
    ]
  }
}'
Yanıt ​
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
}

İstek (JSON modu) ​

IMPORTANT

format json olarak ayarlandığında, çıktı her zaman geçerli bir JSON nesnesi olacaktır. Modelin JSON formatında yanıt vermesini de talimat etmek önemlidir.

İstek ​
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
}'
Yanıt ​
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 alanının değeri, şuna benzer JSON içeren bir dize olacaktır:

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

İstek (görseller ile) ​

llava veya bakllava gibi çok modlu modellere görseller göndermek için base64 ile kodlanmış images listesi sağlayın:

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

İstek (Ham Mod) ​

Bazı durumlarda şablonlama sistemini atlamak ve tam bir prompt sağlamak isteyebilirsiniz. Bu durumda raw parametresini kullanarak şablonlamayı devre dışı bırakabilirsiniz. Ayrıca ham modun bir bağlam döndürmeyeceğini unutmayın.

İstek ​
shell
curl http://localhost:11434/api/generate -d '{
  "model": "mistral",
  "prompt": "[INST] why is the sky blue? [/INST]",
  "raw": true,
  "stream": false
}'

İstek (Tekrarlanabilir çıktılar) ​

Tekrarlanabilir çıktılar için seed parametresini bir sayıya ayarlayın:

İstek ​
shell
curl http://localhost:11434/api/generate -d '{
  "model": "mistral",
  "prompt": "Why is the sky blue?",
  "options": {
    "seed": 123
  }
}'
Yanıt ​
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
}

Tamamlama isteği (Seçenekler ile) ​

Modeli çalışma zamanında Modelfile yerine özel seçenekler ayarlamak istiyorsanız, bunu options parametresi ile yapabilirsiniz. Bu örnek tüm kullanılabilir seçenekleri ayarlar, ancak bunları tek tek ayarlayıp geçmek istemediğiniz seçenekleri çıkarabilirsiniz.

İstek ​
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
  }
}'
Yanıt ​
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
}

Model yükleme ​

Boş bir prompt sağlanırsa model belleğe yüklenir.

İstek ​
shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2"
}'
Yanıt ​

Tek bir JSON nesnesi döndürülür:

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

Bellekten model kaldırma ​

Boş bir prompt sağlanır ve keep_alive parametresi 0 olarak ayarlanırsa, model bellekten kaldırılır.

İstek ​
shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "keep_alive": 0
}'
Yanıt ​

Tek bir JSON nesnesi döndürülür:

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

Sohbet tamamlama oluştur ​

POST /api/chat

Sağlanan bir model ile sohbetteki bir sonraki mesajı oluşturun. Bu bir akış uç noktasıdır, bu nedenle bir dizi yanıt dönecektir. Akış, "stream": false kullanılarak devre dışı bırakılabilir. Son yanıt nesnesi, istekten gelen istatistikleri ve ek verileri içerecektir.

Parameters ​

  • model: (zorunlu) model adı
  • messages: sohbetin mesajları, bu sohbet belleğini korumak için kullanılabilir
  • tools: destekleniyorsa modelin kullanması için JSON formatında araç listesi
  • think: (düşünen modeller için) Model yanıt vermeden önce düşünmeli mi? Boolean bir değer veya düşünme seviyesi ("low", "medium", "high" veya "max") olabilir.

message nesnesi aşağıdaki alanlara sahiptir:

  • role: mesajın rolü, system, user, assistant veya tool değerlerinden biri
  • content: mesajın içeriği
  • thinking: (düşünen modeller için) modelin düşünme süreci
  • images (isteğe bağlı): mesaja dahil edilecek görsellerin listesi (llava gibi çok modlu modeller için)
  • tool_calls (isteğe bağlı): modelin kullanmak istediği JSON formatında araçların listesi
  • tool_name (isteğe bağlı): sonucu modele bildirmek için çalıştırılan aracın adını ekleyin

Gelişmiş parametreler (isteğe bağlı):

  • format: yanıtın döndürüleceği format. Format json veya bir JSON şeması olabilir.
  • options: [Modelfile](. /modelfile. mdx#valid-parameters-and-values) belgelerinde listelenen, temperature gibi ek model parametreleri
  • stream: false ise yanıt, nesne akışı yerine tek bir yanıt nesnesi olarak döndürülür
  • keep_alive: istekten sonra modelin belleğe yüklenmiş kalacağı süreyi kontrol eder (varsayılan: 5m)

Tool calling ​

Araç çağırma, tools parametresine bir araç listesi sağlanarak desteklenir. Model, araç çağrılarının listesini içeren bir yanıt oluşturur. Aşağıdaki Sohbet isteği (Araçlarla akış) örneğine bakın. Modeller ayrıca yanıtta araç çağrısının sonucunu açıklayabilir. Aşağıdaki Sohbet isteği (Geçmiş ile, araçlarla) örneğine bakın. [Araç çağırma yeteneğine sahip modelleri görüntüleyin](https://ollama. com/search? c=tool).

Structured outputs ​

Yapılandırılmış çıktılar, format parametresine bir JSON şeması sağlanarak desteklenir. Model, şemaya uyan bir yanıt oluşturur. Aşağıdaki Sohbet isteği (Yapılandırılmış çıktılar) örneğine bakın.

Examples ​

Sohbet isteği (Akışlı) ​

Request ​

Akışlı yanıt ile bir sohbet mesajı gönderin. ```shell curl http://localhost:11434/api/chat -d '{ "model": "llama3. 2", "messages": [ { "role": "user", "content": "why is the sky blue? " } ] }'


##### Response

Bir JSON nesne akışı döndürülür:

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

Son yanıt:

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
}

Sohbet isteği (Araçlarla akış) ​

Request ​
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
}'
Response ​

Bir JSON nesne akışı döndürülür:

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
}

Son yanıt:

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
}

Sohbet isteği (Akışsız) ​

Request ​
shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "why is the sky blue? "
    }
  ],
  "stream": false
}'
Response ​
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
}

Sohbet isteği (Akışsız, araçlarla) ​

Request ​
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
}'
Response ​
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
}

Sohbet isteği (Yapılandırılmış çıktılar) ​

Request ​
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
  }
}'
Response ​
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
}

Sohbet isteği (Geçmiş ile) ​

Bir konuşma geçmişi ile sohbet mesajı gönderin. Aynı yöntemi çoklu örnek veya chain-of-thought prompting kullanarak konuşmayı başlatmak için de kullanabilirsiniz.

Request ​
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? "
    }
  ]
}'
Response ​

Bir JSON nesne akışı döndürülür:

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

Son yanıt:

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
}

Sohbet isteği (Geçmiş ile, araçlarla) ​

Request ​
shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "what is the weather in Toronto? "
    },
    // modele gelen mesaj geçmişe eklendi
    {
      "role": "assistant",
      "content": "",
      "tool_calls": [
        {
          "function": {
            "name": "get_weather",
            "arguments": {
              "city": "Toronto"
            }
          }
        }
      ]
    },
    // araç çağrısı sonucu geçmişe eklendi
    {
      "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"]
        }
      }
    }
  ]
}'
Response ​
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
}

Sohbet isteği (görseller ile) ​

Request ​

Görseller ile bir sohbet mesajı gönderin. Görseller bir dizi olarak sağlanmalıdır, tek tek görseller Base64 ile kodlanmış olmalıdır. ```shell curl http://localhost:11434/api/chat -d '{ "model": "llava", "messages": [ { "role": "user", "content": "what is in this image?"

Yanıt ​
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
}

Sohbet isteği (Tekrarlanabilir çıktılar) ​

İstek ​
shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "Hello! "
    }
  ],
  "options": {
    "seed": 101,
    "temperature": 0
  }
}'
Yanıt ​
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
}

Araçlı sohbet isteği ​

İstek ​
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"]
        }
      }
    }
  ]
}'
Yanıt ​
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
}

Modeli yükle ​

Eğer messages dizisi boşsa, model belleğe yüklenecektir. ##### İstek

shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": []
}'
Yanıt ​
json
{
  "model": "llama3. 2",
  "created_at": "2024-09-12T21:17:29. 110811Z",
  "message": {
    "role": "assistant",
    "content": ""
  },
  "done_reason": "load",
  "done": true
}

Modeli kaldır ​

Eğer messages dizisi boş ve keep_alive parametresi 0 olarak ayarlanmışsa, model bellekten kaldırılacaktır. ##### İstek

shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [],
  "keep_alive": 0
}'
Yanıt ​

Tek bir JSON nesnesi döndürülür:

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

Model Oluştur ​

POST /api/create

Bir modeli şu kaynaklardan oluşturabilirsiniz:

  • başka bir model;
  • bir safetensors dizini; veya
  • bir GGUF dosyası.

Eğer bir modeli safetensors dizininden veya GGUF dosyasından oluşturuyorsanız, her bir dosya için bir blob oluşturmalısınız ve ardından files alanında her blob ile ilişkili dosya adını ve SHA256 özetini kullanmalısınız.

Parametreler ​

  • model: oluşturulacak modelin adı
  • from: (isteğe bağlı) yeni modelin kaynak olarak kullanılacağı mevcut modelin adı
  • files: (isteğe bağlı) modelin oluşturulacağı blob'ların SHA256 özetlerine eşlenen dosya adları sözlüğü
  • adapters: (isteğe bağlı) LORA adaptörleri için blob'ların SHA256 özetlerine eşlenen dosya adları sözlüğü
  • template: (isteğe bağlı) model için prompt şablonu
  • renderer: (isteğe bağlı) model için renderer'ın adı
  • parser: (isteğe bağlı) model için parser'ın adı
  • license: (isteğe bağlı) modelin lisansını veya lisanslarını içeren bir dize veya dize listesi
  • system: (isteğe bağlı) model için sistem prompt'u içeren bir dize
  • parameters: (isteğe bağlı) model için parametreler sözlüğü (parametrelerin listesi için Modelfile sayfasına bakın)
  • messages: (isteğe bağlı) bir konuşma oluşturmak için kullanılan mesaj nesneleri listesi
  • stream: (isteğe bağlı) false ise yanıt, nesne akışı yerine tek bir yanıt nesnesi olarak döndürülür
  • quantize (isteğe bağlı): nicemlenmemiş (örneğin float16) bir modeli nicemle

Nicemleme türleri ​

TypeRecommended
q4_K_M*
q4_K_S
q8_0*

Örnekler ​

Yeni bir model oluştur ​

Mevcut bir modelden yeni bir model oluşturun.

İstek ​
shell
curl http://localhost:11434/api/create -d '{
  "model": "mario",
  "from": "llama3.2",
  "system": "You are Mario from Super Mario Bros."
}'
Yanıt ​

Bir JSON nesnesi akışı döndürülür:

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"}

Bir modeli nicemle ​

Nicemlenmemiş bir modeli nicemleyin.

İstek ​
shell
curl http://localhost:11434/api/create -d '{
  "model": "llama3.2:quantized",
  "from": "llama3.2:3b-instruct-fp16",
  "quantize": "q4_K_M"
}'
Yanıt ​

Bir JSON nesnesi akışı döndürülür:

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'dan model oluştur ​

Bir GGUF dosyasından model oluşturun. files parametresi, kullanmak istediğiniz GGUF dosyasının dosya adı ve SHA256 özeti ile doldurulmalıdır. Bu API'yi çağırmadan önce GGUF dosyasını sunucuya göndermek için /api/blobs/:digest kullanın.

İstek ​
shell
curl http://localhost:11434/api/create -d '{
  "model": "my-gguf-model",
  "files": {
    "test.gguf": "sha256:432f310a77f4650a88d0fd59ecdd7cebed8d684bafea53cbff0473542964f0c3"
  }
}'
Yanıt ​

Bir JSON nesnesi akışı döndürülür:

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

Safetensors dizininden model oluştur ​

files parametresi, safetensors modeli için her bir dosyanın dosya adı ve SHA256 özetini içeren bir dosya sözlüğü içermelidir. Bu API'yi çağırmadan önce her bir dosyayı önce sunucuya göndermek için /api/blobs/:digest kullanın. Dosyalar, Ollama sunucusu yeniden başlatılana kadar önbellekte kalır.

İstek ​
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"
  }
}'
Yanıt ​

Bir JSON nesnesi akışı döndürülür:

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"}

Blob'ın Var Olup Olmadığını Kontrol Et ​

shell
HEAD /api/blobs/:digest

Bir model oluşturmak için kullanılan dosya blob'unun (İkili Büyük Nesne) sunucuda var olup olmadığını doğrular. Bu işlem sizin Ollama sunucunuzu kontrol eder, ollama.com'u değil.

Sorgu Parametreleri ​

  • digest: blob'un SHA256 özeti

Örnekler ​

İstek ​

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

Yanıt ​

Blob varsa 200 OK, yoksa 404 Not Found döndürür.

Blob Gönderme ​

POST /api/blobs/:digest

Bir "blob" (İkili Büyük Nesne) oluşturmak için dosyayı Ollama sunucusuna gönderin.

Sorgu Parametreleri ​

  • digest: dosyanın beklenen SHA256 özeti

Örnekler ​

İstek ​

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

Yanıt ​

Blob başarıyla oluşturulduysa 201 Created, kullanılan özet beklenen değilse 400 Bad Request döndürür.

Yerel Modelleri Listele ​

GET /api/tags

Yerel olarak kullanılabilir modelleri listeler.

Örnekler ​

İstek ​

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

Yanıt ​

Tek bir JSON nesnesi döndürülür.

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"
      }
    }
  ]
}

Model Bilgilerini Göster ​

POST /api/show

Bir model hakkında detaylar, Modelfile, şablon, parametreler, lisans, sistem istemini içeren bilgileri gösterir.

Parametreler ​

  • model: gösterilecek modelin adı
  • verbose: (isteğe bağlı) true olarak ayarlanırsa, ayrıntılı yanıt alanları için tam veriyi döndürür

Örnekler ​

İstek ​

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

Yanıt ​

json5
{
  modelfile: '# "ollama show" tarafından oluşturulan Modelfile\n# Bu Modelfile\'dan yeni bir Modelfile oluşturmak için FROM satırını şu şekilde değiştirin:\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"],
}

Modeli Kopyala ​

POST /api/copy

Bir modeli kopyalar. Mevcut bir modelden farklı bir adla yeni bir model oluşturur.

Örnekler ​

İstek ​

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

Yanıt ​

Başarılı olursa 200 OK, kaynak model mevcut değilse 404 Not Found döndürür.

Modeli Sil ​

DELETE /api/delete

Bir modeli ve onun verilerini siler.

Parametreler ​

  • model: silinecek modelin adı

Örnekler ​

İstek ​

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

Yanıt ​

Başarılı olursa 200 OK, silinecek model mevcut değilse 404 Not Found döndürür.

Model İndirme ​

POST /api/pull

Ollama kütüphanesinden bir model indirir. İptal edilen indirmeler kaldığı yerden devam eder ve birden fazla çağrı aynı indirme ilerlemesini paylaşır.

Parametreler ​

  • model: indirilecek modelin adı
  • insecure: (isteğe bağlı) kütüphaneye güvensiz bağlantılara izin ver. Yalnızca geliştirme sırasında kendi kütüphanenizden indirme yapıyorsanız bunu kullanın.
  • stream: (isteğe bağlı) false olarak ayarlanırsa yanıt, nesne akışı yerine tek bir yanıt nesnesi olarak döndürülür.

Örnekler ​

İstek ​

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

Yanıt ​

stream belirtilmezse veya true olarak ayarlanırsa, bir JSON nesne akışı döndürülür:

İlk nesne manifesttir:

json
{
  "status": "pulling manifest"
}

Ardından bir dizi indirme yanıtı gelir. İndirme işlemi tamamlanana kadar completed anahtarı dahil edilmeyebilir. İndirilecek dosya sayısı, manifestte belirtilen katman sayısına bağlıdır.

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

Tüm dosyalar indirildikten sonra son yanıtlar şunlardır:

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

stream false olarak ayarlanırsa yanıt tek bir JSON nesnesidir:

json
{
  "status": "success"
}

Model Gönderme ​

POST /api/push

Bir modeli model kütüphanesine yükler. Öncelikle ollama.ai'ya kayıt olun ve bir ortak anahtar eklemeniz gerekir.

Parametreler ​

  • model: gönderilecek modelin adı, <namespace>/<model>:<tag> biçiminde olmalıdır
  • insecure: (isteğe bağlı) kütüphaneye güvensiz bağlantılara izin ver. Yalnızca geliştirme sırasında kendi kütüphanenize gönderim yapıyorsanız bunu kullanın.
  • stream: (isteğe bağlı) false olarak ayarlanırsa yanıt, nesne akışı yerine tek bir yanıt nesnesi olarak döndürülür.

Örnekler ​

İstek ​

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

Yanıt ​

stream belirtilmezse veya true olarak ayarlanırsa, bir JSON nesne akışı döndürülür:

json
{ "status": "retrieving manifest" }

ardından:

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

Ardından bir dizi yükleme yanıtı gelir:

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

Son olarak yükleme tamamlandığında:

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

stream false olarak ayarlanırsa yanıt tek bir JSON nesnesidir:

json
{ "status": "success" }

Gömme Vektörleri Oluşturma ​

POST /api/embed

Bir modelden gömme vektörleri oluşturur

Parametreler ​

  • model: gömme vektörleri oluşturulacak modelin adı
  • input: gömme vektörleri oluşturulacak metin veya metin listesi

Gelişmiş parametreler:

  • truncate: her girişin sonunu bağlam uzunluğuna sığacak şekilde kırpar. false olarak ayarlanırsa ve bağlam uzunluğu aşılırsa hata döndürür. Varsayılan değeri true'dur.
  • options: Modelfile belgelerinde listelenen, temperature gibi ek model parametreleri
  • keep_alive: istekten sonra modelin bellekte yüklenmiş kalacağı süreyi kontrol eder (varsayılan: 5m)
  • dimensions: gömme vektörünün boyut sayısı

Örnekler ​

İstek ​

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

Yanıt ​

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
}

İstek (Çoklu giriş) ​

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

Yanıt ​

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
    ]
  ]
}

Çalışan Modelleri Listele ​

GET /api/ps

Şu anda belleğe yüklenmiş modelleri listeler.

Örnekler ​

İstek ​

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

Yanıt ​

Tek bir JSON nesnesi döndürülür.

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
    }
  ]
}

Gömme Vektörü Oluşturma ​

Not: Bu uç nokta /api/embed ile değiştirilmiştir.

POST /api/embeddings

Bir modelden gömme vektörleri oluşturur

Parametreler ​

  • model: gömme vektörleri oluşturulacak modelin adı
  • prompt: gömme vektörleri oluşturulacak metin

Gelişmiş parametreler:

  • options: Modelfile belgelerinde listelenen, temperature gibi ek model parametreleri
  • keep_alive: istekten sonra modelin bellekte yüklenmiş kalacağı süreyi kontrol eder (varsayılan: 5m)

Örnekler ​

İstek ​

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

Yanıt ​

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

Sürüm ​

GET /api/version

Ollama sürümünü alır

Örnekler ​

İstek ​

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

Yanıt ​

json
{
  "version": "0.5.1"
}

Deneysel Özellikler ​

Görsel Oluşturma (Deneysel) ​

[!UYARI] Görsel oluşturma deneyseldir ve gelecek sürümlerde değişebilir.

Görsel oluşturma modelleri kullanıldığında artık standart /api/generate uç noktası ile görsel oluşturma desteklenmektedir. API, görsel oluşturma modelinin kullanıldığını otomatik olarak algılar.

Tam API belgeleri için Generate a completion bölümüne bakın. Deneysel görsel oluşturma parametreleri (width, height, steps) orada belgelenmiştir.

Örnek ​

İstek ​
shell
curl http://localhost:11434/api/generate -d '{
  "model": "x/z-image-turbo",
  "prompt": "a sunset over mountains",
  "width": 1024,
  "height": 768
}'
Yanıt (akışlı) ​

Oluşturma sırasında ilerleme güncellemeleri:

json
{
  "model": "x/z-image-turbo",
  "created_at": "2024-01-15T10:30:00.000000Z",
  "completed": 5,
  "total": 20,
  "done": false
}
Son Yanıt ​
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
}