Skip to content

API

Lưu ý: Tài liệu API của Ollama đang được chuyển đến https://docs.ollama.com/api

Điểm cuối

Quy ước

Tên mô hình

Tên mô hình theo định dạng model:tag, trong đó model có thể có không gian tên tùy chọn như example/model. Một số ví dụ là orca-mini:3b-q8_0llama3:70b. Tag là tùy chọn và nếu không được cung cấp, sẽ mặc định là latest. Tag được sử dụng để xác định một phiên bản cụ thể.

Thời lượng

Tất cả các giá trị thời lượng đều được trả về bằng đơn vị nano giây.

Phản hồi luồng

Một số endpoint nhất định sẽ trả về phản hồi dưới dạng các đối tượng JSON theo luồng. Bạn có thể tắt tính năng phản hồi luồng bằng cách cung cấp {"stream": false} cho các endpoint này.

Tạo hoàn thành

POST /api/generate

Tạo một phản hồi cho một prompt nhất định với mô hình được cung cấp. Đây là một endpoint phản hồi luồng, do đó sẽ có một chuỗi các phản hồi. Đối tượng phản hồi cuối cùng sẽ bao gồm các số liệu thống kê và dữ liệu bổ sung từ yêu cầu.

Tham số

  • model: (bắt buộc) tên mô hình
  • prompt: prompt để tạo phản hồi
  • suffix: văn bản đứng sau phản hồi của mô hình
  • images: (tùy chọn) danh sách các hình ảnh được mã hóa base64 (dành cho các mô hình đa phương thức như llava)
  • think: (dành cho các mô hình có khả năng suy luận) mô hình có nên suy luận trước khi phản hồi không? Có thể là giá trị boolean hoặc mức độ suy luận ("low", "medium", "high" hoặc "max").

Các tham số nâng cao (tùy chọn):

  • format: định dạng trả về phản hồi. Định dạng có thể là json hoặc một schema JSON
  • options: các tham số mô hình bổ sung được liệt kê trong tài liệu của Modelfile như temperature
  • system: tin nhắn hệ thống (ghi đè lên nội dung được định nghĩa trong Modelfile)
  • template: mẫu prompt sử dụng (ghi đè lên nội dung được định nghĩa trong Modelfile)
  • stream: nếu đặt là false, phản hồi sẽ được trả về dưới dạng một đối tượng phản hồi đơn lẻ, thay vì một luồng các đối tượng
  • raw: nếu đặt là true, sẽ không áp dụng bất kỳ định dạng nào cho prompt. Bạn có thể sử dụng tham số raw nếu bạn đang chỉ định một prompt mẫu đầy đủ trong yêu cầu gửi đến API
  • keep_alive: điều chỉnh thời gian mô hình sẽ được giữ trong bộ nhớ sau khi yêu cầu hoàn tất (mặc định: 5m)
  • context (đã lỗi thời): tham số ngữ cảnh được trả về từ yêu cầu trước đó đến /generate, tham số này có thể được sử dụng để lưu trữ bộ nhớ hội thoại ngắn

Các tham số tạo hình ảnh thử nghiệm (chỉ dành cho các mô hình tạo hình ảnh):

WARNING

Các tham số này ở trạng thái thử nghiệm và có thể thay đổi trong các phiên bản sau.

  • width: chiều rộng của hình ảnh được tạo, tính bằng pixel
  • height: chiều cao của hình ảnh được tạo, tính bằng pixel
  • steps: số bước khuếch tán

Đầu ra có cấu trúc

Đầu ra có cấu trúc được hỗ trợ bằng cách cung cấp một schema JSON trong tham số format. Mô hình sẽ tạo ra phản hồi phù hợp với schema đó. Xem ví dụ về đầu ra có cấu trúc bên dưới.

Chế độ JSON

Bật chế độ JSON bằng cách đặt tham số format thành json. Thao tác này sẽ cấu trúc phản hồi thành một đối tượng JSON hợp lệ. Xem ví dụ về chế độ JSON bên dưới.

IMPORTANT

Bạn cần chỉ dẫn mô hình sử dụng JSON trong trường prompt. Nếu không, mô hình có thể tạo ra một lượng lớn khoảng trắng.

Ví dụ

Yêu cầu tạo phản hồi (Luồng)

Yêu cầu
shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?"
}'
Phản hồi

Một luồng các đối tượng JSON được trả về:

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

Phản hồi cuối cùng trong luồng cũng bao gồm các dữ liệu bổ sung về quá trình tạo phản hồi:

  • total_duration: tổng thời gian dùng để tạo phản hồi
  • load_duration: thời gian dùng để tải mô hình, tính bằng nano giây
  • prompt_eval_count: số lượng token trong prompt
  • prompt_eval_duration: thời gian dùng để đánh giá prompt, tính bằng nano giây
  • eval_count: số lượng token trong phản hồi
  • eval_duration: thời gian dùng để tạo phản hồi, tính bằng nano giây
  • context: mã hóa của cuộc hội thoại được sử dụng trong phản hồi này, có thể được gửi trong yêu cầu tiếp theo để lưu trữ bộ nhớ hội thoại
  • response: rỗng nếu phản hồi được trả về theo luồng, nếu không trả về theo luồng, trường này sẽ chứa toàn bộ nội dung phản hồi

Để tính tốc độ tạo phản hồi tính bằng token trên giây (token/s), hãy lấy eval_count chia cho eval_duration rồi nhân với 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
}

Yêu cầu (Không luồng)

Yêu cầu

Bạn có thể nhận phản hồi trong một lần trả về khi tắt tính năng phản hồi luồng.

shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?",
  "stream": false
}'
Phản hồi

Nếu stream được đặt thành false, phản hồi sẽ là một đối tượng JSON đơn lẻ:

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
}

Yêu cầu (có suffix)

Yêu cầu
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
}'
Phản hồi
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
}

Yêu cầu (Đầu ra có cấu trúc)

Yêu cầu
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"
    ]
  }
}'
Phản hồi
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
}

Yêu cầu (Chế độ JSON)

IMPORTANT

Khi format được đặt thành json, đầu ra sẽ luôn là một đối tượng JSON hợp lệ. Bạn cần chỉ dẫn mô hình phản hồi bằng định dạng JSON.

Yêu cầu
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
}'
Phản hồi
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
}

Giá trị của trường response sẽ là một chuỗi chứa JSON tương tự như:

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

Yêu cầu (có hình ảnh)

Để gửi hình ảnh đến các mô hình đa phương thức như llava hoặc bakllava, hãy cung cấp danh sách trường images được mã hóa base64:

Yêu cầu

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

Phản hồi

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
}

Yêu cầu (Chế độ Raw)

Trong một số trường hợp, bạn có thể muốn bỏ qua hệ thống mẫu prompt và cung cấp một prompt đầy đủ. Trong trường hợp này, bạn có thể sử dụng tham số raw để tắt tính năng sử dụng mẫu prompt. Lưu ý rằng chế độ raw sẽ không trả về ngữ cảnh (context).

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

Yêu cầu (Đầu ra có thể tái tạo)

Để có đầu ra có thể tái tạo, hãy đặt tham số seed thành một số nguyên:

Yêu cầu
shell
curl http://localhost:11434/api/generate -d '{
  "model": "mistral",
  "prompt": "Why is the sky blue?",
  "options": {
    "seed": 123
  }
}'
Phản hồi
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
}

Yêu cầu tạo phản hồi (có tham số tùy chọn)

Nếu bạn muốn đặt các tùy chọn tùy chỉnh cho mô hình tại thời điểm chạy thay vì trong Modelfile, bạn có thể thực hiện thao tác này bằng tham số options. Ví dụ này đặt tất cả các tùy chọn có sẵn, nhưng bạn có thể đặt từng tùy chọn một và bỏ qua các tùy chọn bạn không muốn ghi đè.

Yêu cầu
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
  }
}'
Phản hồi
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
}

Tải mô hình

Nếu bạn cung cấp một prompt rỗng, mô hình sẽ được tải vào bộ nhớ.

Yêu cầu
shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2"
}'
Phản hồi

Một đối tượng JSON đơn lẻ được trả về:

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

Gỡ tải mô hình

Nếu bạn cung cấp một prompt rỗng và đặt tham số keep_alive thành 0, mô hình sẽ được gỡ tải khỏi bộ nhớ.

Yêu cầu
shell
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "keep_alive": 0
}'
Phản hồi

Một đối tượng JSON đơn lẻ được trả về:

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

Tạo một hoàn thành trò chuyện

POST /api/chat

Tạo tin nhắn tiếp theo trong một cuộc trò chuyện với mô hình được cung cấp. Đây là một điểm cuối phát trực tiếp, vì vậy sẽ có một loạt các phản hồi. Phát trực tiếp có thể bị vô hiệu hóa bằng cách sử dụng "stream": false. Đối tượng phản hồi cuối cùng sẽ bao gồm số liệu thống kê và dữ liệu bổ sung từ yêu cầu.

Tham số

  • model: (bắt buộc) tên mô hình
  • messages: các tin nhắn của cuộc trò chuyện, điều này có thể được sử dụng để lưu trữ bộ nhớ trò chuyện
  • tools: danh sách công cụ ở định dạng JSON để mô hình sử dụng nếu được hỗ trợ
  • think: (dành cho các mô hình suy luận) mô hình có nên suy luận trước khi phản hồi không? Có thể là một giá trị boolean hoặc mức độ suy luận ("low", "medium", "high", hoặc "max").

Đối tượng message có các trường sau:

  • role: vai trò của tin nhắn, có thể là system, user, assistant, hoặc tool
  • content: nội dung của tin nhắn
  • thinking: (dành cho các mô hình suy luận) quá trình suy luận của mô hình
  • images (tùy chọn): danh sách hình ảnh để đưa vào tin nhắn (dành cho các mô hình đa phương thức như llava)
  • tool_calls (tùy chọn): danh sách công cụ ở định dạng JSON mà mô hình muốn sử dụng
  • tool_name (tùy chọn): thêm tên của công cụ đã được thực thi để thông báo cho mô hình biết kết quả

Tham số nâng cao (tùy chọn):

  • format: định dạng để trả về phản hồi. Định dạng có thể là json hoặc một lược đồ JSON.
  • options: các tham số mô hình bổ sung được liệt kê trong tài liệu cho [Modelfile](. /modelfile. mdx#valid-parameters-and-values) như temperature
  • stream: nếu là false phản hồi sẽ được trả về như một đối tượng phản hồi duy nhất, thay vì một luồng các đối tượng
  • keep_alive: kiểm soát thời gian mô hình sẽ được giữ trong bộ nhớ sau yêu cầu (mặc định: 5m)

Gọi công cụ

Gọi công cụ được hỗ trợ bằng cách cung cấp một danh sách công cụ trong tham số tools. Mô hình sẽ tạo ra một phản hồi bao gồm danh sách các lệnh gọi công cụ. Xem ví dụ Yêu cầu trò chuyện (Phát trực tiếp với công cụ) bên dưới. Các mô hình cũng có thể giải thích kết quả của lệnh gọi công cụ trong phản hồi. Xem ví dụ Yêu cầu trò chuyện (Với lịch sử, với công cụ) bên dưới. [Xem các mô hình có khả năng gọi công cụ](https://ollama. com/search? c=tool).

Đầu ra có cấu trúc

Các đầu ra có cấu trúc được hỗ trợ bằng cách cung cấp một lược đồ JSON trong tham số format. Mô hình sẽ tạo ra một phản hồi khớp với lược đồ. Xem ví dụ Yêu cầu trò chuyện (Đầu ra có cấu trúc) bên dưới.

Ví dụ

Yêu cầu trò chuyện (Phát trực tiếp)

Yêu cầu

Gửi một tin nhắn trò chuyện với phản hồi phát trực tiếp. ```shell curl http://localhost:11434/api/chat -d '{ "model": "llama3. 2", "messages": [ { "role": "user", "content": "why is the sky blue? " } ] }'


##### Phản hồi

Một luồng các đối tượng JSON được trả về:

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

Phản hồi cuối cùng:

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
}

Yêu cầu trò chuyện (Phát trực tiếp với công cụ)

Yêu cầu
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": "Lấy thời tiết ở một thành phố nhất định",
        "parameters": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string",
              "description": "Thành phố cần lấy thời tiết"
            }
          },
          "required": ["city"]
        }
      }
    }
  ],
  "stream": true
}'
Phản hồi

Một luồng các đối tượng JSON được trả về:

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
}

Phản hồi cuối cùng:

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
}

Yêu cầu trò chuyện (Không phát trực tiếp)

Yêu cầu
shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "why is the sky blue? "
    }
  ],
  "stream": false
}'
Phản hồi
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
}

Yêu cầu trò chuyện (Không phát trực tiếp, với công cụ)

Yêu cầu
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": "Lấy thời tiết ở một thành phố nhất định",
        "parameters": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string",
              "description": "Thành phố cần lấy thời tiết"
            }
          },
          "required": ["city"]
        }
      }
    }
  ],
  "stream": false
}'
Phản hồi
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
}

Yêu cầu trò chuyện (Đầu ra có cấu trúc)

Yêu cầu
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
  }
}'
Phản hồi
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
}

Yêu cầu trò chuyện (Với lịch sử)

Gửi một tin nhắn trò chuyện với lịch sử cuộc trò chuyện. Bạn có thể sử dụng cùng phương pháp này để bắt đầu cuộc trò chuyện bằng cách sử dụng multi-shot hoặc chain-of-thought prompting.

Yêu cầu
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? "
    }
  ]
}'
Phản hồi

Một luồng các đối tượng JSON được trả về:

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

Phản hồi cuối cùng:

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
}

Yêu cầu trò chuyện (Với lịch sử, với công cụ)

Yêu cầu
shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "what is the weather in Toronto? "
    },
    // tin nhắn từ mô hình được thêm vào lịch sử
    {
      "role": "assistant",
      "content": "",
      "tool_calls": [
        {
          "function": {
            "name": "get_weather",
            "arguments": {
              "city": "Toronto"
            }
          }
        }
      ]
    },
    // kết quả lệnh gọi công cụ được thêm vào lịch sử
    {
      "role": "tool",
      "content": "11 degrees celsius",
      "tool_name": "get_weather"
    }
  ],
  "stream": false,
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Lấy thời tiết ở một thành phố nhất định",
        "parameters": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string",
              "description": "Thành phố cần lấy thời tiết"
            }
          },
          "required": ["city"]
        }
      }
    }
  ]
}'
Phản hồi
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
}

Yêu cầu trò chuyện (với hình ảnh)

Yêu cầu

Gửi một tin nhắn trò chuyện với hình ảnh. Các hình ảnh nên được cung cấp dưới dạng mảng, với từng hình ảnh được mã hóa ở định dạng Base64. ```shell curl http://localhost:11434/api/chat -d '{ "model": "llava", "messages": [ { "role": "user", "content": "what is in this image?

json
,
      "images": ["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"]
    }
  ]
}'
Phản hồi
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
}

Yêu cầu trò chuyện (Đầu ra có thể tái tạo)

Yêu cầu
shell
curl http://localhost:11434/api/chat -d '{
  "model": "llama3. 2",
  "messages": [
    {
      "role": "user",
      "content": "Hello! "
    }
  ],
  "options": {
    "seed": 101,
    "temperature": 0
  }
}'
Phản hồi
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
}

Yêu cầu trò chuyện (với công cụ)

Yêu cầu
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"]
        }
      }
    }
  ]
}'
Phản hồi
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
}

Tải mô hình

Nếu mảng messages trống, mô hình sẽ được tải vào bộ nhớ. ##### Yêu cầu

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

Gỡ tải mô hình

Nếu mảng messages trống và tham số keep_alive được đặt thành 0, mô hình sẽ được gỡ tải khỏi bộ nhớ. ##### Yêu cầu

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

Một đối tượng JSON duy nhất được trả về:

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

Tạo Mô hình

POST /api/create

Tạo mô hình từ:

  • một mô hình khác;
  • một thư mục safetensors; hoặc
  • một tệp GGUF.

Nếu bạn đang tạo mô hình từ một thư mục safetensors hoặc từ một tệp GGUF, bạn phải tạo một blob cho mỗi tệp và sau đó sử dụng tên tệp và giá trị băm SHA256 liên kết với mỗi blob trong trường files.

Parameters

  • model: tên của mô hình cần tạo
  • from: (tùy chọn) tên của một mô hình hiện có để tạo mô hình mới từ đó
  • files: (tùy chọn) một từ điển ánh xạ tên tệp sang giá trị băm SHA256 của các blob để tạo mô hình từ đó
  • adapters: (tùy chọn) một từ điển ánh xạ tên tệp sang giá trị băm SHA256 của các blob dùng cho bộ điều hợp LORA
  • template: (tùy chọn) mẫu prompt cho mô hình
  • renderer: (tùy chọn) tên của trình kết xuất cho mô hình
  • parser: (tùy chọn) tên của bộ phân tích cú pháp cho mô hình
  • license: (tùy chọn) một chuỗi hoặc danh sách các chuỗi chứa giấy phép hoặc các giấy phép của mô hình
  • system: (tùy chọn) một chuỗi chứa prompt hệ thống cho mô hình
  • parameters: (tùy chọn) một từ điển các tham số cho mô hình (xem Modelfile để biết danh sách các tham số)
  • messages: (tùy chọn) một danh sách các đối tượng tin nhắn dùng để tạo một cuộc hội thoại
  • stream: (tùy chọn) nếu là false phản hồi sẽ được trả về dưới dạng một đối tượng phản hồi duy nhất, thay vì một luồng các đối tượng
  • quantize (tùy chọn): lượng tử hóa một mô hình chưa được lượng tử hóa (ví dụ: float16)

Quantization types

TypeRecommended
q4_K_M*
q4_K_S
q8_0*

Examples

Tạo mô hình mới

Tạo một mô hình mới từ một mô hình hiện có.

Request
shell
curl http://localhost:11434/api/create -d '{
  "model": "mario",
  "from": "llama3.2",
  "system": "You are Mario from Super Mario Bros."
}'
Response

Một luồng các đối tượng JSON được trả về:

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

Lượng tử hóa mô hình

Lượng tử hóa một mô hình chưa được lượng tử hóa.

Request
shell
curl http://localhost:11434/api/create -d '{
  "model": "llama3.2:quantized",
  "from": "llama3.2:3b-instruct-fp16",
  "quantize": "q4_K_M"
}'
Response

Một luồng các đối tượng JSON được trả về:

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

Tạo mô hình từ GGUF

Tạo mô hình từ một tệp GGUF. Tham số files cần được điền với tên tệp và giá trị băm SHA256 của tệp GGUF bạn muốn sử dụng. Sử dụng /api/blobs/:digest để đẩy tệp GGUF lên máy chủ trước khi gọi API này.

Request
shell
curl http://localhost:11434/api/create -d '{
  "model": "my-gguf-model",
  "files": {
    "test.gguf": "sha256:432f310a77f4650a88d0fd59ecdd7cebed8d684bafea53cbff0473542964f0c3"
  }
}'
Response

Một luồng các đối tượng JSON được trả về:

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

Tạo mô hình từ một thư mục Safetensors

Tham số files cần bao gồm một từ điển các tệp cho mô hình safetensors, bao gồm tên tệp và giá trị băm SHA256 của mỗi tệp. Sử dụng /api/blobs/:digest để đẩy từng tệp lên máy chủ trước khi gọi API này. Các tệp sẽ được lưu trong bộ nhớ đệm cho đến khi máy chủ Ollama được khởi động lại.

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

Một luồng các đối tượng JSON được trả về:

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

Kiểm tra xem Blob có tồn tại không

shell
HEAD /api/blobs/:digest

Đảm bảo rằng file blob (Binary Large Object - Đối tượng Nhị phân Lớn) được dùng để tạo mô hình tồn tại trên máy chủ. Thao tác này kiểm tra máy chủ Ollama của bạn chứ không phải ollama.com.

Tham số truy vấn

  • digest: giá trị băm SHA256 của blob

Ví dụ

Yêu cầu

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

Phản hồi

Trả về 200 OK nếu blob tồn tại, 404 Not Found nếu không tồn tại.

Đẩy Blob lên

POST /api/blobs/:digest

Đẩy một file lên máy chủ Ollama để tạo một "blob" (Đối tượng Nhị phân Lớn).

Tham số truy vấn

  • digest: giá trị băm SHA256 mong đợi của file

Ví dụ

Yêu cầu

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

Phản hồi

Trả về 201 Created nếu blob được tạo thành công, 400 Bad Request nếu giá trị băm được sử dụng không khớp với mong đợi.

Liệt kê các Mô hình Cục bộ

GET /api/tags

Liệt kê các mô hình có sẵn trên máy cục bộ.

Ví dụ

Yêu cầu

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

Phản hồi

Một đối tượng JSON duy nhất sẽ được trả về.

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

Hiển thị Thông tin Mô hình

POST /api/show

Hiển thị thông tin về một mô hình bao gồm chi tiết, file mô hình (modelfile), mẫu (template), tham số, giấy phép, lời nhắc hệ thống.

Tham số

  • model: tên của mô hình cần hiển thị
  • verbose: (tùy chọn) nếu đặt thành true, trả về toàn bộ dữ liệu cho các trường phản hồi chi tiết

Ví dụ

Yêu cầu

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

Phản hồi

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

Sao chép Mô hình

POST /api/copy

Sao chép một mô hình. Tạo một mô hình có tên khác từ một mô hình đã có sẵn.

Ví dụ

Yêu cầu

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

Phản hồi

Trả về 200 OK nếu thành công, hoặc 404 Not Found nếu mô hình nguồn không tồn tại.

Xóa Mô hình

DELETE /api/delete

Xóa một mô hình và toàn bộ dữ liệu của nó.

Tham số

  • model: tên mô hình cần xóa

Ví dụ

Yêu cầu

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

Phản hồi

Trả về 200 OK nếu thành công, 404 Not Found nếu mô hình cần xóa không tồn tại.

Kéo Mô hình về

POST /api/pull

Tải xuống một mô hình từ thư viện ollama. Các lần kéo bị hủy sẽ được tiếp tục từ vị trí dừng lại, và nhiều lần gọi sẽ chia sẻ cùng tiến độ tải xuống.

Tham số

  • model: tên của mô hình cần kéo về
  • insecure: (tùy chọn) cho phép kết nối không bảo mật đến thư viện. Chỉ sử dụng tham số này nếu bạn đang kéo mô hình từ thư viện riêng của mình trong quá trình phát triển.
  • stream: (tùy chọn) nếu đặt thành false, phản hồi sẽ được trả về dưới dạng một đối tượng phản hồi duy nhất, thay vì một luồng các đối tượng

Ví dụ

Yêu cầu

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

Phản hồi

Nếu stream không được chỉ định, hoặc đặt thành true, một luồng các đối tượng JSON sẽ được trả về:

Đối tượng đầu tiên là manifest (định nghĩa mô hình):

json
{
  "status": "pulling manifest"
}

Sau đó là một loạt các phản hồi tải xuống. Cho đến khi một phần của quá trình tải xuống hoàn thành, khóa completed có thể không được bao gồm. Số lượng file cần tải xuống phụ thuộc vào số lượng lớp được chỉ định trong manifest.

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

Sau khi tất cả các file được tải xuống, các phản hồi cuối cùng là:

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

Nếu stream được đặt thành false, thì phản hồi là một đối tượng JSON duy nhất:

json
{
  "status": "success"
}

Đẩy Mô hình lên

POST /api/push

Tải lên một mô hình đến thư viện mô hình. Yêu cầu đăng ký tài khoản ollama.ai và thêm khóa công khai trước.

Tham số

  • model: tên của mô hình cần đẩy lên theo định dạng <namespace>/<model>:<tag>
  • insecure: (tùy chọn) cho phép kết nối không bảo mật đến thư viện. Chỉ sử dụng tham số này nếu bạn đang đẩy mô hình lên thư viện riêng của mình trong quá trình phát triển.
  • stream: (tùy chọn) nếu đặt thành false, phản hồi sẽ được trả về dưới dạng một đối tượng phản hồi duy nhất, thay vì một luồng các đối tượng

Ví dụ

Yêu cầu

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

Phản hồi

Nếu stream không được chỉ định, hoặc đặt thành true, một luồng các đối tượng JSON sẽ được trả về:

json
{ "status": "retrieving manifest" }

sau đó:

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

Sau đó là một loạt các phản hồi tải lên:

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

Cuối cùng, khi quá trình tải lên hoàn tất:

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

Nếu stream được đặt thành false, thì phản hồi là một đối tượng JSON duy nhất:

json
{ "status": "success" }

Tạo Embedding (Nhúng Vectơ)

POST /api/embed

Tạo các embedding (nhúng vectơ) từ một mô hình

Tham số

  • model: tên mô hình để tạo embedding từ đó
  • input: văn bản hoặc danh sách văn bản để tạo embedding

Tham số nâng cao:

  • truncate: cắt phần cuối của mỗi đầu vào để vừa với độ dài ngữ cảnh. Trả về lỗi nếu đặt thành false và độ dài ngữ cảnh bị vượt quá. Giá trị mặc định là true
  • options: các tham số mô hình bổ sung được liệt kê trong tài liệu cho Modelfile như temperature
  • keep_alive: điều khiển thời gian mô hình sẽ được giữ trong bộ nhớ sau khi yêu cầu được xử lý (mặc định: 5m)
  • dimensions: số chiều của embedding

Ví dụ

Yêu cầu

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

Phản hồi

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
}

Yêu cầu (Nhiều đầu vào)

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

Phản hồi

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

Liệt kê các Mô hình Đang chạy

GET /api/ps

Liệt kê các mô hình hiện đang được tải vào bộ nhớ.

Ví dụ

Yêu cầu

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

Phản hồi

Một đối tượng JSON duy nhất sẽ được trả về.

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

Tạo Embedding (Nhúng Vectơ)

Lưu ý: điểm cuối này đã được thay thế bằng /api/embed

POST /api/embeddings

Tạo các embedding (nhúng vectơ) từ một mô hình

Tham số

  • model: tên mô hình để tạo embedding từ đó
  • prompt: văn bản để tạo embedding

Tham số nâng cao:

  • options: các tham số mô hình bổ sung được liệt kê trong tài liệu cho Modelfile như temperature
  • keep_alive: điều khiển thời gian mô hình sẽ được giữ trong bộ nhớ sau khi yêu cầu được xử lý (mặc định: 5m)

Ví dụ

Yêu cầu

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

Phản hồi

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

Phiên bản

GET /api/version

Lấy phiên bản của Ollama

Ví dụ

Yêu cầu

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

Phản hồi

json
{
  "version": "0.5.1"
}

Tính năng Thử nghiệm

Tạo ảnh (Thử nghiệm)

[!CẢNH BÁO] Tính năng tạo ảnh đang ở trạng thái thử nghiệm và có thể thay đổi trong các phiên bản sau.

Tạo ảnh hiện được hỗ trợ thông qua điểm cuối tiêu chuẩn /api/generate khi sử dụng các mô hình tạo ảnh. API sẽ tự động phát hiện khi đang sử dụng mô hình tạo ảnh.

Xem phần Tạo hoàn thành văn bản để có tài liệu API đầy đủ. Các tham số tạo ảnh thử nghiệm (width, height, steps) được ghi chú tại đó.

Ví dụ

Yêu cầu
shell
curl http://localhost:11434/api/generate -d '{
  "model": "x/z-image-turbo",
  "prompt": "a sunset over mountains",
  "width": 1024,
  "height": 768
}'
Phản hồi (luồng)

Cập nhật tiến độ trong quá trình tạo ảnh:

json
{
  "model": "x/z-image-turbo",
  "created_at": "2024-01-15T10:30:00.000000Z",
  "completed": 5,
  "total": 20,
  "done": false
}
Phản hồi cuối cùng
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
}