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
}