API
ข้อสังเกต: เอกสาร API ของ Ollama กำลังจะย้ายไปยัง https://docs.ollama.com/api
Endpoints
- สร้างการเติมข้อความ
- สร้างการเติมข้อความสำหรับแชท
- สร้างโมเดล
- แสดงรายการโมเดลในเครื่อง
- แสดงข้อมูลโมเดล
- คัดลอกโมเดล
- ลบโมเดล
- ดึงโมเดล
- อัปโหลดโมเดล
- สร้าง Embeddings
- แสดงรายการโมเดลที่กำลังทำงาน
- เวอร์ชัน
- ทดลองใช้: การสร้างภาพ
ข้อตกลง
ชื่อโมเดล
ชื่อโมเดลอยู่ในรูปแบบ model:tag โดยที่ model สามารถมี namespace ทางเลือกได้ เช่น example/model ตัวอย่างเช่น orca-mini:3b-q8_0 และ llama3:70b แท็กเป็นทางเลือกและหากไม่ระบุจะใช้ค่าเริ่มต้นเป็น latest แท็กใช้เพื่อระบุเวอร์ชันที่เฉพาะเจาะจง
ระยะเวลา
ระยะเวลาทั้งหมดจะถูกส่งกลับในหน่วยนาโนวินาที
การตอบกลับแบบสตรีม
endpoints บางตัวส่งคืนการตอบกลับแบบสตรีมในรูปแบบออบเจ็กต์ JSON การสตรีมสามารถปิดได้โดยระบุ {"stream": false} สำหรับ endpoints เหล่านี้
สร้างการเติมเต็ม (completion)
POST /api/generateสร้างการตอบกลับสำหรับ prompt ที่กำหนดด้วยโมเดลที่ระบุ นี่คือ endpoint แบบสตรีม ดังนั้นจึงมีการตอบกลับหลายรายการ ออบเจ็กต์การตอบกลับสุดท้ายจะรวมถึงสถิติและข้อมูลเพิ่มเติมจากคำขอ
พารามิเตอร์
model: (จำเป็น) ชื่อโมเดลprompt: ข้อความ prompt ที่ใช้สร้างการตอบกลับsuffix: ข้อความที่อยู่หลังการตอบกลับของโมเดลimages: (ทางเลือก) รายการของรูปภาพที่เข้ารหัส base64 (สำหรับโมเดลแบบหลายรูปแบบ เช่นllava)think: (สำหรับโมเดลที่มีการคิด) โมเดลควรคิดก่อนตอบกลับหรือไม่? สามารถเป็นค่าบูลีนหรือระดับการคิด ("low","medium","high", หรือ"max")
พารามิเตอร์ขั้นสูง (ทางเลือก):
format: รูปแบบที่จะส่งคืนการตอบกลับ รูปแบบสามารถเป็นjsonหรือ JSON schemaoptions: พารามิเตอร์โมเดลเพิ่มเติมที่ระบุในเอกสารสำหรับ Modelfile เช่นtemperaturesystem: ข้อความระบบ (แทนที่สิ่งที่กำหนดไว้ในModelfile)template: เทมเพลต prompt ที่จะใช้ (แทนที่สิ่งที่กำหนดไว้ในModelfile)stream: หากเป็นfalseการตอบกลับจะถูกส่งกลับเป็นออบเจ็กต์เดียว แทนที่จะเป็นสตรีมของออบเจ็กต์raw: หากเป็นtrueจะไม่มีการจัดรูปแบบใดๆ กับ prompt คุณสามารถเลือกใช้พารามิเตอร์rawหากคุณกำลังระบุ prompt ที่มีเทมเพลตสมบูรณ์ในคำขอไปยัง APIkeep_alive: ควบคุมระยะเวลาที่โมเดลจะคงอยู่ในหน่วยความจำหลังจากคำขอ (ค่าเริ่มต้น:5m)context(เลิกใช้แล้ว): พารามิเตอร์ context ที่ส่งกลับจากคำขอก่อนหน้าไปยัง/generateสามารถใช้เพื่อเก็บความจำการสนทนาสั้นๆ
พารามิเตอร์การสร้างรูปภาพ experimental (สำหรับโมเดลการสร้างรูปภาพเท่านั้น):
WARNING
พารามิเตอร์เหล่านี้เป็น experimental และอาจเปลี่ยนแปลงในเวอร์ชันถัดไป
width: ความกว้างของรูปภาพที่สร้างในหน่วยพิกเซลheight: ความสูงของรูปภาพที่สร้างในหน่วยพิกเซลsteps: จำนวนขั้นตอนการ diffusion
ผลลัพธ์ที่มีโครงสร้าง
การสร้างผลลัพธ์ที่มีโครงสร้างได้รับการสนับสนุนโดยระบุ JSON schema ในพารามิเตอร์ format โมเดลจะสร้างการตอบกลับที่ตรงกับ schema ดูตัวอย่าง structured outputs ด้านล่าง
โหมด JSON
เปิดใช้โหมด JSON โดยตั้งค่าพารามิเตอร์ format เป็น json นี่จะจัดระเบียบการตอบกลับเป็นออบเจ็กต์ JSON ที่ถูกต้อง ดูตัวอย่างโหมด JSON example ด้านล่าง
IMPORTANT
สำคัญที่จะต้องสั่งให้โมเดลใช้ JSON ใน prompt มิฉะนั้น โมเดลอาจสร้างช่องว่างจำนวนมาก
ตัวอย่าง
คำขอสร้าง (Streaming)
คำขอ
shell
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2",
"prompt": "Why is the sky blue?"
}'การตอบกลับ
สตรีมของออบเจ็กต์ JSON ถูกส่งกลับ:
json
{
"model": "llama3.2",
"created_at": "2023-08-04T08:52:19.385406455-07:00",
"response": "The",
"done": false
}การตอบกลับสุดท้ายในสตรีมยังรวมถึงข้อมูลเพิ่มเติมเกี่ยวกับการสร้าง:
total_duration: ระยะเวลาที่ใช้สร้างการตอบกลับload_duration: ระยะเวลาที่ใช้โหลดโมเดลในหน่วยนาโนวินาทีprompt_eval_count: จำนวนโทเค็นใน promptprompt_eval_duration: ระยะเวลาที่ใช้ประเมิน prompt ในหน่วยนาโนวินาทีeval_count: จำนวนโทเค็นในการตอบกลับeval_duration: ระยะเวลาในหน่วยนาโนวินาทีที่ใช้สร้างการตอบกลับcontext: การเข้ารหัสของการสนทนาที่ใช้ในการตอบกลับนี้ สามารถส่งในคำขอถัดไปเพื่อเก็บความจำการสนทนาresponse: ว่างเปล่า หากการตอบกลับถูกสตรีม หากไม่สตรีม จะมีคำตอบสมบูรณ์
เพื่อคำนวณความเร็วในการสร้างการตอบกลับในหน่วยโทเค็นต่อวินาที (token/s) หาร eval_count ด้วย eval_duration คูณด้วย 10^9
json
{
"model": "llama3.2",
"created_at": "2023-08-04T19:22:45.499127Z",
"response": "",
"done": true,
"context": [1, 2, 3],
"total_duration": 10706818083,
"load_duration": 6338219291,
"prompt_eval_count": 26,
"prompt_eval_duration": 130079000,
"eval_count": 259,
"eval_duration": 4232710000
}คำขอ (ไม่สตรีม)
คำขอ
การตอบกลับสามารถรับได้ในหนึ่งรายการเมื่อปิดการสตรีม
shell
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2",
"prompt": "Why is the sky blue?",
"stream": false
}'การตอบกลับ
หาก stream ตั้งค่าเป็น false การตอบกลับจะเป็นออบเจ็กต์ JSON เดียว:
json
{
"model": "llama3.2",
"created_at": "2023-08-04T19:22:45.499127Z",
"response": "The sky is blue because it is the color of the sky.",
"done": true,
"context": [1, 2, 3],
"total_duration": 5043500667,
"load_duration": 5025959,
"prompt_eval_count": 26,
"prompt_eval_duration": 325953000,
"eval_count": 290,
"eval_duration": 4709213000
}คำขอ (พร้อม suffix)
คำขอ
shell
curl http://localhost:11434/api/generate -d '{
"model": "codellama:code",
"prompt": "def compute_gcd(a, b):",
"suffix": " return result",
"options": {
"temperature": 0
},
"stream": false
}'การตอบกลับ
json5
{
"model": "codellama:code",
"created_at": "2024-07-22T20:47:51.147561Z",
"response": "\n if a == 0:\n return b\n else:\n return compute_gcd(b % a, a)\n\ndef compute_lcm(a, b):\n result = (a * b) / compute_gcd(a, b)\n",
"done": true,
"done_reason": "stop",
"context": [...],
"total_duration": 1162761250,
"load_duration": 6683708,
"prompt_eval_count": 17,
"prompt_eval_duration": 201222000,
"eval_count": 63,
"eval_duration": 953997000
}คำขอ (ผลลัพธ์ที่มีโครงสร้าง)
คำขอ
shell
curl -X POST http://localhost:11434/api/generate -H "Content-Type: application/json" -d '{
"model": "llama3.1:8b",
"prompt": "Ollama is 22 years old and is busy saving the world. Respond using JSON",
"stream": false,
"format": {
"type": "object",
"properties": {
"age": {
"type": "integer"
},
"available": {
"type": "boolean"
}
},
"required": [
"age",
"available"
]
}
}'การตอบกลับ
json
{
"model": "llama3.1:8b",
"created_at": "2024-12-06T00:48:09.983619Z",
"response": "{\n \"age\": 22,\n \"available\": true\n}",
"done": true,
"done_reason": "stop",
"context": [1, 2, 3],
"total_duration": 1075509083,
"load_duration": 567678166,
"prompt_eval_count": 28,
"prompt_eval_duration": 236000000,
"eval_count": 16,
"eval_duration": 269000000
}คำขอ (โหมด JSON)
IMPORTANT
เมื่อ format ตั้งค่าเป็น json ผลลัพธ์จะเป็นออบเจ็กต์ JSON ที่มีรูปแบบถูกต้องเสมอ สำคัญที่จะต้องสั่งให้โมเดลตอบกลับด้วย JSON ด้วย
คำขอ
shell
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2",
"prompt": "What color is the sky at different times of the day? Respond using JSON",
"format": "json",
"stream": false
}'การตอบกลับ
json
{
"model": "llama3.2",
"created_at": "2023-11-09T21:07:55.186497Z",
"response": "{\n\"morning\": {\n\"color\": \"blue\"\n},\n\"noon\": {\n\"color\": \"blue-gray\"\n},\n\"afternoon\": {\n\"color\": \"warm gray\"\n},\n\"evening\": {\n\"color\": \"orange\"\n}\n}\n",
"done": true,
"context": [1, 2, 3],
"total_duration": 4648158584,
"load_duration": 4071084,
"prompt_eval_count": 36,
"prompt_eval_duration": 439038000,
"eval_count": 180,
"eval_duration": 4196918000
}ค่าของ response จะเป็นสตริงที่มี JSON คล้ายกับ:
json
{
"morning": {
"color": "blue"
},
"noon": {
"color": "blue-gray"
},
"afternoon": {
"color": "warm gray"
},
"evening": {
"color": "orange"
}
}คำขอ (พร้อมรูปภาพ)
เพื่อส่งรูปภาพไปยังโมเดลแบบหลายรูปแบบ เช่น llava หรือ bakllava ให้ระบุรายการของ images ที่เข้ารหัส base64:
คำขอ
shell
curl http://localhost:11434/api/generate -d '{
"model": "llava",
"prompt":"What is in this picture?",
"stream": false,
"images": ["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"]
}'การตอบกลับ
json
{
"model": "llava",
"created_at": "2023-11-03T15:36:02.583064Z",
"response": "A happy cartoon character, which is cute and cheerful.",
"done": true,
"context": [1, 2, 3],
"total_duration": 2938432250,
"load_duration": 2559292,
"prompt_eval_count": 1,
"prompt_eval_duration": 2195557000,
"eval_count": 44,
"eval_duration": 736432000
}คำขอ (โหมด Raw)
ในบางกรณี คุณอาจต้องการข้ามระบบเทมเพลตและระบุ prompt แบบเต็ม ในกรณีนี้ คุณสามารถใช้พารามิเตอร์ raw เพื่อปิดการใช้งานเทมเพลต ข้อควรทราบด้วยว่าโหมด raw จะไม่ส่งคืน context
คำขอ
shell
curl http://localhost:11434/api/generate -d '{
"model": "mistral",
"prompt": "[INST] why is the sky blue? [/INST]",
"raw": true,
"stream": false
}'คำขอ (ผลลัพธ์ที่สามารถทำซ้ำได้)
เพื่อให้ได้ผลลัพธ์ที่สามารถทำซ้ำได้ ให้ตั้งค่า seed เป็นตัวเลข:
คำขอ
shell
curl http://localhost:11434/api/generate -d '{
"model": "mistral",
"prompt": "Why is the sky blue?",
"options": {
"seed": 123
}
}'การตอบกลับ
json
{
"model": "mistral",
"created_at": "2023-11-03T15:36:02.583064Z",
"response": " The sky appears blue because of a phenomenon called Rayleigh scattering.",
"done": true,
"total_duration": 8493852375,
"load_duration": 6589624375,
"prompt_eval_count": 14,
"prompt_eval_duration": 119039000,
"eval_count": 110,
"eval_duration": 1779061000
}คำขอสร้าง (พร้อม options)
หากคุณต้องการตั้งค่าตัวเลือกที่กำหนดเองสำหรับโมเดลในเวลารันแทนที่จะอยู่ใน Modelfile คุณสามารถทำได้ด้วยพารามิเตอร์ options ตัวอย่างนี้ตั้งค่าตัวเลือกที่มีอยู่ทั้งหมด แต่คุณสามารถตั้งค่าแต่ละรายการได้และละเว้นรายการที่คุณไม่ต้องการแทนที่
คำขอ
shell
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2",
"prompt": "Why is the sky blue?",
"stream": false,
"options": {
"num_keep": 5,
"seed": 42,
"num_predict": 100,
"draft_num_predict": 4,
"top_k": 20,
"top_p": 0.9,
"min_p": 0.0,
"typical_p": 0.7,
"repeat_last_n": 33,
"temperature": 0.8,
"repeat_penalty": 1.2,
"presence_penalty": 1.5,
"frequency_penalty": 1.0,
"penalize_newline": true,
"stop": ["\n", "user:"],
"numa": false,
"num_ctx": 1024,
"num_batch": 2,
"num_gpu": 1,
"main_gpu": 0,
"use_mmap": true,
"num_thread": 8
}
}'การตอบกลับ
json
{
"model": "llama3.2",
"created_at": "2023-08-04T19:22:45.499127Z",
"response": "The sky is blue because it is the color of the sky.",
"done": true,
"context": [1, 2, 3],
"total_duration": 4935886791,
"load_duration": 534986708,
"prompt_eval_count": 26,
"prompt_eval_duration": 107345000,
"eval_count": 237,
"eval_duration": 4289432000
}โหลดโมเดล
หากระบุ prompt ที่ว่างเปล่า โมเดลจะถูกโหลดเข้าสู่หน่วยความจำ
คำขอ
shell
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2"
}'การตอบกลับ
ส่งกลับออบเจ็กต์ JSON เดียว:
json
{
"model": "llama3.2",
"created_at": "2023-12-18T19:52:07.071755Z",
"response": "",
"done": true
}ถอนการโหลดโมเดล
หากระบุ prompt ที่ว่างเปล่าและตั้งค่าพารามิเตอร์ keep_alive เป็น 0 โมเดลจะถูกถอนการโหลดออกจากหน่วยความจำ
คำขอ
shell
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2",
"keep_alive": 0
}'การตอบกลับ
ส่งกลับออบเจ็กต์ JSON เดียว:
json
{
"model": "llama3.2",
"created_at": "2024-09-12T03:54:03.516566Z",
"response": "",
"done": true,
"done_reason": "unload"
}สร้างการตอบสนองแชท
POST /api/chatสร้างข้อความถัดไปในการสนทนาโดยใช้โมเดลที่ระบุ นี่คือ endpoint ที่ส่งข้อมูลแบบสตรีม ดังนั้นจึงจะมีชุดของคำตอบ สามารถปิดการส่งข้อมูลแบบสตรีมได้โดยใช้ "stream": false ออบเจกต์คำตอบสุดท้ายจะรวมถึงสถิติและข้อมูลเพิ่มเติมจากคำขอ ### พารามิเตอร์
model: (จำเป็น) ชื่อโมเดลmessages: ข้อความในการสนทนา สามารถใช้เพื่อเก็บความจำในการสนทนาtools: รายการเครื่องมือในรูปแบบ JSON สำหรับโมเดลใช้หากมีการสนับสนุนthink: (สำหรับโมเดลที่มีการคิด) โมเดลควรคิดก่อนตอบหรือไม่? สามารถเป็นค่าบูลีนหรือระดับการคิด ("low","medium","high", หรือ"max") ออบเจกต์messageมีฟิลด์ดังนี้:role: บทบาทของข้อความ เป็นsystem,user,assistant, หรือtoolcontent: เนื้อหาของข้อความthinking: (สำหรับโมเดลที่มีการคิด) กระบวนการคิดของโมเดลimages(ไม่จำเป็น): รายการรูปภาพที่จะรวมในข้อความ (สำหรับโมเดลแบบหลายรูปแบบเช่นllava)tool_calls(ไม่จำเป็น): รายการเครื่องมือในรูปแบบ JSON ที่โมเดลต้องการใช้tool_name(ไม่จำเป็น): เพิ่มชื่อของเครื่องมือที่ถูกเรียกใช้เพื่อแจ้งผลลัพธ์ให้โมเดลทราบ
พารามิเตอร์ขั้นสูง (ไม่จำเป็น):
format: รูปแบบที่จะส่งคำตอบกลับ รูปแบบสามารถเป็นjsonหรือ JSON schema -options: พารามิเตอร์โมเดลเพิ่มเติมที่ระบุในเอกสารสำหรับ [Modelfile](. /modelfile. mdx#valid-parameters-and-values) เช่นtemperaturestream: หากเป็นfalseคำตอบจะถูกส่งกลับเป็นออบเจกต์คำตอบเดียว แทนที่จะเป็นสตรีมของออบเจกต์keep_alive: ควบคุมระยะเวลาที่โมเดลจะคงอยู่ในหน่วยความจำหลังจากคำขอ (ค่าเริ่มต้น:5m)
การเรียกใช้เครื่องมือ
การเรียกใช้เครื่องมือได้รับการสนับสนุนโดยการระบุรายการเครื่องมือในพารามิเตอร์ tools โมเดลจะสร้างคำตอบที่รวมรายการการเรียกใช้เครื่องมือ ดูตัวอย่าง คำขอแชท (ส่งข้อมูลแบบสตรีมพร้อมเครื่องมือ) ด้านล่าง โมเดลยังสามารถอธิบายผลลัพธ์ของการเรียกใช้เครื่องมือในคำตอบ ดูตัวอย่าง คำขอแชท (พร้อมประวัติและเครื่องมือ) ด้านล่าง [ดูโมเดลที่มีความสามารถในการเรียกใช้เครื่องมือ](https://ollama. com/search? c=tool). ### ผลลัพธ์ที่มีโครงสร้าง
ผลลัพธ์ที่มีโครงสร้างได้รับการสนับสนุนโดยการระบุ JSON schema ในพารามิเตอร์ format โมเดลจะสร้างคำตอบที่ตรงกับ schema ดูตัวอย่าง คำขอแชท (ผลลัพธ์ที่มีโครงสร้าง) ด้านล่าง ### ตัวอย่าง
คำขอแชท (ส่งข้อมูลแบบสตรีม)
คำขอ
ส่งข้อความแชทพร้อมคำตอบแบบสตรีม ```shell curl http://localhost:11434/api/chat -d '{ "model": "llama3. 2", "messages": [ { "role": "user", "content": "why is the sky blue? " } ] }'
##### คำตอบ
สตรีมของออบเจกต์ JSON จะถูกส่งกลับ:
```json
{
"model": "llama3. 2",
"created_at": "2023-08-04T08:52:19. 385406455-07:00",
"message": {
"role": "assistant",
"content": "The",
"images": null
},
"done": false
}คำตอบสุดท้าย:
json
{
"model": "llama3. 2",
"created_at": "2023-08-04T19:22:45. 499127Z",
"message": {
"role": "assistant",
"content": ""
},
"done": true,
"total_duration": 4883583458,
"load_duration": 1334875,
"prompt_eval_count": 26,
"prompt_eval_duration": 342546000,
"eval_count": 282,
"eval_duration": 4535599000
}คำขอแชท (ส่งข้อมูลแบบสตรีมพร้อมเครื่องมือ)
คำขอ
shell
curl http://localhost:11434/api/chat -d '{
"model": "llama3. 2",
"messages": [
{
"role": "user",
"content": "what is the weather in tokyo? "
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the weather in a given city",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city to get the weather for"
}
},
"required": ["city"]
}
}
}
],
"stream": true
}'คำตอบ
สตรีมของออบเจกต์ JSON จะถูกส่งกลับ:
json
{
"model": "llama3. 2",
"created_at": "2025-07-07T20:22:19. 184789Z",
"message": {
"role": "assistant",
"content": "",
"tool_calls": [
{
"function": {
"name": "get_weather",
"arguments": {
"city": "Tokyo"
}
}
}
]
},
"done": false
}คำตอบสุดท้าย:
json
{
"model": "llama3. 2",
"created_at": "2025-07-07T20:22:19. 19314Z",
"message": {
"role": "assistant",
"content": ""
},
"done_reason": "stop",
"done": true,
"total_duration": 182242375,
"load_duration": 41295167,
"prompt_eval_count": 169,
"prompt_eval_duration": 24573166,
"eval_count": 15,
"eval_duration": 115959084
}คำขอแชท (ไม่ส่งข้อมูลแบบสตรีม)
คำขอ
shell
curl http://localhost:11434/api/chat -d '{
"model": "llama3. 2",
"messages": [
{
"role": "user",
"content": "why is the sky blue? "
}
],
"stream": false
}'คำตอบ
json
{
"model": "llama3. 2",
"created_at": "2023-12-12T14:13:43. 416799Z",
"message": {
"role": "assistant",
"content": "Hello! How are you today? "
},
"done": true,
"total_duration": 5191566416,
"load_duration": 2154458,
"prompt_eval_count": 26,
"prompt_eval_duration": 383809000,
"eval_count": 298,
"eval_duration": 4799921000
}คำขอแชท (ไม่ส่งข้อมูลแบบสตรีม พร้อมเครื่องมือ)
คำขอ
shell
curl http://localhost:11434/api/chat -d '{
"model": "llama3. 2",
"messages": [
{
"role": "user",
"content": "what is the weather in tokyo? "
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the weather in a given city",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city to get the weather for"
}
},
"required": ["city"]
}
}
}
],
"stream": false
}'คำตอบ
json
{
"model": "llama3. 2",
"created_at": "2025-07-07T20:32:53. 844124Z",
"message": {
"role": "assistant",
"content": "",
"tool_calls": [
{
"function": {
"name": "get_weather",
"arguments": {
"city": "Tokyo"
}
}
}
]
},
"done_reason": "stop",
"done": true,
"total_duration": 3244883583,
"load_duration": 2969184542,
"prompt_eval_count": 169,
"prompt_eval_duration": 141656333,
"eval_count": 18,
"eval_duration": 133293625
}คำขอแชท (ผลลัพธ์ที่มีโครงสร้าง)
คำขอ
shell
curl -X POST http://localhost:11434/api/chat -H "Content-Type: application/json" -d '{
"model": "llama3. 1",
"messages": [{"role": "user", "content": "Ollama is 22 years old and busy saving the world. Return a JSON object with the age and availability. "}],
"stream": false,
"format": {
"type": "object",
"properties": {
"age": {
"type": "integer"
},
"available": {
"type": "boolean"
}
},
"required": [
"age",
"available"
]
},
"options": {
"temperature": 0
}
}'คำตอบ
json
{
"model": "llama3. 1",
"created_at": "2024-12-06T00:46:58. 265747Z",
"message": {
"role": "assistant",
"content": "{\"age\": 22, \"available\": false}"
},
"done_reason": "stop",
"done": true,
"total_duration": 2254970291,
"load_duration": 574751416,
"prompt_eval_count": 34,
"prompt_eval_duration": 1502000000,
"eval_count": 12,
"eval_duration": 175000000
}คำขอแชท (พร้อมประวัติ)
ส่งข้อความแชทพร้อมประวัติการสนทนา คุณสามารถใช้วิธีเดียวกันนี้เพื่อเริ่มการสนทนาโดยใช้การสั่งงานแบบ multi-shot หรือ chain-of-thought ##### คำขอ
shell
curl http://localhost:11434/api/chat -d '{
"model": "llama3. 2",
"messages": [
{
"role": "user",
"content": "why is the sky blue? "
},
{
"role": "assistant",
"content": "due to rayleigh scattering. "
},
{
"role": "user",
"content": "how is that different than mie scattering? "
}
]
}'คำตอบ
สตรีมของออบเจกต์ JSON จะถูกส่งกลับ:
json
{
"model": "llama3. 2",
"created_at": "2023-08-04T08:52:19. 385406455-07:00",
"message": {
"role": "assistant",
"content": "The"
},
"done": false
}คำตอบสุดท้าย:
json
{
"model": "llama3. 2",
"created_at": "2023-08-04T19:22:45. 499127Z",
"done": true,
"total_duration": 8113331500,
"load_duration": 6396458,
"prompt_eval_count": 61,
"prompt_eval_duration": 398801000,
"eval_count": 468,
"eval_duration": 7701267000
}คำขอแชท (พร้อมประวัติและเครื่องมือ)
คำขอ
shell
curl http://localhost:11434/api/chat -d '{
"model": "llama3. 2",
"messages": [
{
"role": "user",
"content": "what is the weather in Toronto? "
},
// ข้อความจากโมเดลที่ถูกเพิ่มไปยังประวัติ
{
"role": "assistant",
"content": "",
"tool_calls": [
{
"function": {
"name": "get_weather",
"arguments": {
"city": "Toronto"
}
}
}
]
},
// ผลลัพธ์การเรียกใช้เครื่องมือที่ถูกเพิ่มไปยังประวัติ
{
"role": "tool",
"content": "11 degrees celsius",
"tool_name": "get_weather"
}
],
"stream": false,
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the weather in a given city",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "The city to get the weather for"
}
},
"required": ["city"]
}
}
}
]
}'คำตอบ
json
{
"model": "llama3. 2",
"created_at": "2025-07-07T20:43:37. 688511Z",
"message": {
"role": "assistant",
"content": "The current temperature in Toronto is 11°C. "
},
"done_reason": "stop",
"done": true,
"total_duration": 890771750,
"load_duration": 707634750,
"prompt_eval_count": 94,
"prompt_eval_duration": 91703208,
"eval_count": 11,
"eval_duration": 90282125
}คำขอแชท (พร้อมรูปภาพ)
คำขอ
ส่งข้อความแชทพร้อมรูปภาพ รูปภาพควรระบุเป็นอาร์เรย์ โดยแต่ละรูปภาพเข้ารหัสเป็น Base64 ```shell curl http://localhost:11434/api/chat -d '{ "model": "llava", "messages": [ { "role": "user", "content": "what is in this image?
", "images": ["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"] } ] }'
##### การตอบกลับ
```json
{
"model": "llava",
"created_at": "2023-12-13T22:42:50. 203334Z",
"message": {
"role": "assistant",
"content": " The image features a cute, little pig with an angry facial expression. It's wearing a heart on its shirt and is waving in the air. This scene appears to be part of a drawing or sketching project. ",
"images": null
},
"done": true,
"total_duration": 1668506709,
"load_duration": 1986209,
"prompt_eval_count": 26,
"prompt_eval_duration": 359682000,
"eval_count": 83,
"eval_duration": 1303285000
}การร้องขอแชท (เอาต์พุตที่สามารถทำซ้ำได้)
การร้องขอ
shell
curl http://localhost:11434/api/chat -d '{
"model": "llama3. 2",
"messages": [
{
"role": "user",
"content": "Hello! "
}
],
"options": {
"seed": 101,
"temperature": 0
}
}'การตอบกลับ
json
{
"model": "llama3. 2",
"created_at": "2023-12-12T14:13:43. 416799Z",
"message": {
"role": "assistant",
"content": "Hello! How are you today? "
},
"done": true,
"total_duration": 5191566416,
"load_duration": 2154458,
"prompt_eval_count": 26,
"prompt_eval_duration": 383809000,
"eval_count": 298,
"eval_duration": 4799921000
}การร้องขอแชท (พร้อมเครื่องมือ)
การร้องขอ
shell
curl http://localhost:11434/api/chat -d '{
"model": "llama3. 2",
"messages": [
{
"role": "user",
"content": "What is the weather today in Paris? "
}
],
"stream": false,
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The location to get the weather for, e. g. San Francisco, CA"
},
"format": {
"type": "string",
"description": "The format to return the weather in, e. g. 'celsius' or 'fahrenheit'",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "format"]
}
}
}
]
}'การตอบกลับ
json
{
"model": "llama3. 2",
"created_at": "2024-07-22T20:33:28. 123648Z",
"message": {
"role": "assistant",
"content": "",
"tool_calls": [
{
"function": {
"name": "get_current_weather",
"arguments": {
"format": "celsius",
"location": "Paris, FR"
}
}
}
]
},
"done_reason": "stop",
"done": true,
"total_duration": 885095291,
"load_duration": 3753500,
"prompt_eval_count": 122,
"prompt_eval_duration": 328493000,
"eval_count": 33,
"eval_duration": 552222000
}โหลดโมเดล
หากอาร์เรย์ messages ว่างเปล่า โมเดลจะถูกโหลดเข้าสู่หน่วยความจำ ##### การร้องขอ
shell
curl http://localhost:11434/api/chat -d '{
"model": "llama3. 2",
"messages": []
}'การตอบกลับ
ออบเจกต์ JSON เดียวถูกส่งกลับ:
json
{
"model": "llama3. 2",
"created_at": "2024-09-12T21:17:29. 110811Z",
"message": {
"role": "assistant",
"content": ""
},
"done_reason": "load",
"done": true
}ปลดโมเดล
หากอาร์เรย์ messages ว่างเปล่าและพารามิเตอร์ keep_alive ถูกตั้งค่าเป็น 0 โมเดลจะถูกปลดออกจากหน่วยความจำ ##### การร้องขอ
shell
curl http://localhost:11434/api/chat -d '{
"model": "llama3. 2",
"messages": [],
"keep_alive": 0
}'การตอบกลับ
ออบเจกต์ JSON เดียวถูกส่งกลับ:
json
{
"model": "llama3. 2",
"created_at": "2024-09-12T21:33:17. 547535Z",
"message": {
"role": "assistant",
"content": ""
},
"done_reason": "unload",
"done": true
}สร้างโมเดล
POST /api/createสามารถสร้างโมเดลได้จาก:
- โมเดลอื่น;
- ไดเรกทอรี safetensors; หรือ
- ไฟล์ GGUF.
หากคุณกำลังสร้างโมเดลจากไดเรกทอรี safetensors หรือไฟล์ GGUF คุณต้องสร้าง blobสำหรับแต่ละไฟล์แล้วใช้ชื่อไฟล์และค่า SHA256 digest ที่เชื่อมโยงกับแต่ละ blob ในฟิลด์ files.
พารามิเตอร์
model: ชื่อของโมเดลที่ต้องการสร้างfrom: (ไม่จำเป็น) ชื่อของโมเดลที่มีอยู่ที่ต้องการใช้สร้างโมเดลใหม่files: (ไม่จำเป็น) พจนานุกรมของชื่อไฟล์ไปยังค่า SHA256 digest ของ blobs ที่ใช้สร้างโมเดลadapters: (ไม่จำเป็น) พจนานุกรมของชื่อไฟล์ไปยังค่า SHA256 digest ของ blobs สำหรับ LORA adapterstemplate: (ไม่จำเป็น) เทมเพลตของ prompt สำหรับโมเดลrenderer: (ไม่จำเป็น) ชื่อของ renderer สำหรับโมเดลparser: (ไม่จำเป็น) ชื่อของ parser สำหรับโมเดลlicense: (ไม่จำเป็น) สตริงหรือรายการสตริงที่ประกอบด้วยลิขสิทธิ์หรือลิขสิทธิ์ต่างๆ ของโมเดลsystem: (ไม่จำเป็น) สตริงที่ประกอบด้วย system prompt สำหรับโมเดลparameters: (ไม่จำเป็น) พจนานุกรมของพารามิเตอร์สำหรับโมเดล (ดูรายการพารามิเตอร์ได้ที่ Modelfile)messages: (ไม่จำเป็น) รายการของออบเจกต์ข้อความที่ใช้สร้างบทสนทนาstream: (ไม่จำเป็น) หากตั้งค่าเป็นfalseการตอบกลับจะถูกส่งกลับเป็นออบเจกต์การตอบกลับเดียว แทนที่จะเป็นสตรีมของออบเจกต์quantize(ไม่จำเป็น): ทำควอนไทซ์โมเดลที่ยังไม่ถูกควอนไทซ์ (เช่น float16)
ประเภทการควอนไทซ์
| ประเภท | แนะนำ |
|---|---|
| q4_K_M | * |
| q4_K_S | |
| q8_0 | * |
ตัวอย่าง
สร้างโมเดลใหม่
สร้างโมเดลใหม่จากโมเดลที่มีอยู่.
การร้องขอ
shell
curl http://localhost:11434/api/create -d '{
"model": "mario",
"from": "llama3.2",
"system": "You are Mario from Super Mario Bros."
}'การตอบกลับ
สตรีมของออบเจกต์ JSON จะถูกส่งกลับ:
json
{"status":"reading model metadata"}
{"status":"creating system layer"}
{"status":"using already created layer sha256:22f7f8ef5f4c791c1b03d7eb414399294764d7cc82c7e94aa81a1feb80a983a2"}
{"status":"using already created layer sha256:8c17c2ebb0ea011be9981cc3922db8ca8fa61e828c5d3f44cb6ae342bf80460b"}
{"status":"using already created layer sha256:7c23fb36d80141c4ab8cdbb61ee4790102ebd2bf7aeff414453177d4f2110e5d"}
{"status":"using already created layer sha256:2e0493f67d0c8c9c68a8aeacdf6a38a2151cb3c4c1d42accf296e19810527988"}
{"status":"using already created layer sha256:2759286baa875dc22de5394b4a925701b1896a7e3f8e53275c36f75a877a82c9"}
{"status":"writing layer sha256:df30045fe90f0d750db82a058109cecd6d4de9c90a3d75b19c09e5f64580bb42"}
{"status":"writing layer sha256:f18a68eb09bf925bb1b669490407c1b1251c5db98dc4d3d81f3088498ea55690"}
{"status":"writing manifest"}
{"status":"success"}ควอนไทซ์โมเดล
ควอนไทซ์โมเดลที่ยังไม่ถูกควอนไทซ์.
การร้องขอ
shell
curl http://localhost:11434/api/create -d '{
"model": "llama3.2:quantized",
"from": "llama3.2:3b-instruct-fp16",
"quantize": "q4_K_M"
}'การตอบกลับ
สตรีมของออบเจกต์ JSON จะถูกส่งกลับ:
json
{"status":"quantizing F16 model to Q4_K_M","digest":"0","total":6433687776,"completed":12302}
{"status":"quantizing F16 model to Q4_K_M","digest":"0","total":6433687776,"completed":6433687552}
{"status":"verifying conversion"}
{"status":"creating new layer sha256:fb7f4f211b89c6c4928ff4ddb73db9f9c0cfca3e000c3e40d6cf27ddc6ca72eb"}
{"status":"using existing layer sha256:966de95ca8a62200913e3f8bfbf84c8494536f1b94b49166851e76644e966396"}
{"status":"using existing layer sha256:fcc5a6bec9daf9b561a68827b67ab6088e1dba9d1fa2a50d7bbcc8384e0a265d"}
{"status":"using existing layer sha256:a70ff7e570d97baaf4e62ac6e6ad9975e04caa6d900d3742d37698494479e0cd"}
{"status":"using existing layer sha256:56bb8bd477a519ffa694fc449c2413c6f0e1d3b1c88fa7e3c9d88d3ae49d4dcb"}
{"status":"writing manifest"}
{"status":"success"}สร้างโมเดลจาก GGUF
สร้างโมเดลจากไฟล์ GGUF พารามิเตอร์ files ควรกรอกด้วยชื่อไฟล์และค่า SHA256 digest ของไฟล์ GGUF ที่คุณต้องการใช้ ใช้ /api/blobs/:digest เพื่ออัปโหลดไฟล์ GGUF ไปยังเซิร์ฟเวอร์ก่อนเรียก API นี้.
การร้องขอ
shell
curl http://localhost:11434/api/create -d '{
"model": "my-gguf-model",
"files": {
"test.gguf": "sha256:432f310a77f4650a88d0fd59ecdd7cebed8d684bafea53cbff0473542964f0c3"
}
}'การตอบกลับ
สตรีมของออบเจกต์ JSON จะถูกส่งกลับ:
json
{"status":"parsing GGUF"}
{"status":"using existing layer sha256:432f310a77f4650a88d0fd59ecdd7cebed8d684bafea53cbff0473542964f0c3"}
{"status":"writing manifest"}
{"status":"success"}สร้างโมเดลจากไดเรกทอรี Safetensors
พารามิเตอร์ files ควรมีพจนานุกรมของไฟล์สำหรับโมเดล safetensors ซึ่งประกอบด้วยชื่อไฟล์และค่า SHA256 digest ของแต่ละไฟล์ ใช้ /api/blobs/:digest เพื่ออัปโหลดแต่ละไฟล์ไปยังเซิร์ฟเวอร์ก่อนเรียก API นี้ ไฟล์จะยังคงอยู่ในแคชจนกว่าจะรีสตาร์ทเซิร์ฟเวอร์ Ollama.
การร้องขอ
shell
curl http://localhost:11434/api/create -d '{
"model": "fred",
"files": {
"config.json": "sha256:dd3443e529fb2290423a0c65c2d633e67b419d273f170259e27297219828e389",
"generation_config.json": "sha256:88effbb63300dbbc7390143fbbdd9d9fa50587b37e8bfd16c8c90d4970a74a36",
"special_tokens_map.json": "sha256:b7455f0e8f00539108837bfa586c4fbf424e31f8717819a6798be74bef813d05",
"tokenizer.json": "sha256:bbc1904d35169c542dffbe1f7589a5994ec7426d9e5b609d07bab876f32e97ab",
"tokenizer_config.json": "sha256:24e8a6dc2547164b7002e3125f10b415105644fcf02bf9ad8b674c87b1eaaed6",
"model.safetensors": "sha256:1ff795ff6a07e6a68085d206fb84417da2f083f68391c2843cd2b8ac6df8538f"
}
}'การตอบกลับ
สตรีมของออบเจกต์ JSON จะถูกส่งกลับ:
shell
{"status":"converting model"}
{"status":"creating new layer sha256:05ca5b813af4a53d2c2922933936e398958855c44ee534858fcfd830940618b6"}
{"status":"using autodetected template llama3-instruct"}
{"status":"using existing layer sha256:56bb8bd477a519ffa694fc449c2413c6f0e1d3b1c88fa7e3c9d88d3ae49d4dcb"}
{"status":"writing manifest"}
{"status":"success"}ตรวจสอบว่ามี Blob อยู่หรือไม่
shell
HEAD /api/blobs/:digestตรวจสอบว่าบล็อปบนไฟล์ (Binary Large Object) ที่ใช้ในการสร้างโมเดลมีอยู่บนเซิร์ฟเวอร์หรือไม่ การตรวจสอบนี้จะตรวจสอบเซิร์ฟเวอร์ Ollama ของคุณ ไม่ใช่เซิร์ฟเวอร์ ollama.com
พารามิเตอร์การสืบค้น
digest: ค่า SHA256 digest ของบล็อป
ตัวอย่าง
คำขอ
shell
curl -I http://localhost:11434/api/blobs/sha256:29fdb92e57cf0827ded04ae6461b5931d01fa595843f55d36f5b275a52087dd2การตอบกลับ
ส่งสถานะ 200 OK หากบล็อปมีอยู่ ส่งสถานะ 404 Not Found หากไม่มี
อัปโหลด Blob
POST /api/blobs/:digestอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ Ollama เพื่อสร้าง "บล็อป" (Binary Large Object)
พารามิเตอร์การสืบค้น
digest: ค่า SHA256 digest ที่คาดหวังของไฟล์
ตัวอย่าง
คำขอ
shell
curl -T model.gguf -X POST http://localhost:11434/api/blobs/sha256:29fdb92e57cf0827ded04ae6461b5931d01fa595843f55d36f5b275a52087dd2การตอบกลับ
ส่งสถานะ 201 Created หากสร้างบล็อปสำเร็จ ส่งสถานะ 400 Bad Request หากค่า digest ที่ใช้ไม่ตรงกับที่คาดหวัง
รายการโมเดลในเครื่อง
GET /api/tagsแสดงรายการโมเดลที่มีอยู่ภายในเครื่อง
ตัวอย่าง
คำขอ
shell
curl http://localhost:11434/api/tagsการตอบกลับ
จะส่งกลับออบเจ็กต์ JSON ตัวเดียว
json
{
"models": [
{
"name": "deepseek-r1:latest",
"model": "deepseek-r1:latest",
"modified_at": "2025-05-10T08:06:48.639712648-07:00",
"size": 4683075271,
"digest": "0a8c266910232fd3291e71e5ba1e058cc5af9d411192cf88b6d30e92b6e73163",
"details": {
"parent_model": "",
"format": "gguf",
"family": "qwen2",
"families": ["qwen2"],
"parameter_size": "7.6B",
"quantization_level": "Q4_K_M"
}
},
{
"name": "llama3.2:latest",
"model": "llama3.2:latest",
"modified_at": "2025-05-04T17:37:44.706015396-07:00",
"size": 2019393189,
"digest": "a80c4f17acd55265feec403c7aef86be0c25983ab279d83f3bcd3abbcb5b8b72",
"details": {
"parent_model": "",
"format": "gguf",
"family": "llama",
"families": ["llama"],
"parameter_size": "3.2B",
"quantization_level": "Q4_K_M"
}
}
]
}แสดงข้อมูลโมเดล
POST /api/showแสดงข้อมูลของโมเดล รวมถึงรายละเอียด ไฟล์ Modelfile เทมเพลต พารามิเตอร์ ลิขสิทธิ์ และ prompt ระบบ
พารามิเตอร์
model: ชื่อของโมเดลที่ต้องการแสดงverbose: (ไม่จำเป็น) หากตั้งค่าเป็นtrueจะส่งข้อมูลทั้งหมดสำหรับฟิลด์การตอบกลับแบบ verbose
ตัวอย่าง
คำขอ
shell
curl http://localhost:11434/api/show -d '{
"model": "llava"
}'การตอบกลับ
json5
{
modelfile: '# Modelfile generated by "ollama show"\n# To build a new Modelfile based on this one, replace the FROM line with:\n# FROM llava:latest\n\nFROM /Users/matt/.ollama/models/blobs/sha256:200765e1283640ffbd013184bf496e261032fa75b99498a9613be4e94d63ad52\nTEMPLATE """{{ .System }}\nUSER: {{ .Prompt }}\nASSISTANT: """\nPARAMETER num_ctx 4096\nPARAMETER stop "\u003c/s\u003e"\nPARAMETER stop "USER:"\nPARAMETER stop "ASSISTANT:"',
parameters: 'num_keep 24\nstop "<|start_header_id|>"\nstop "<|end_header_id|>"\nstop "<|eot_id|>"',
template: "{{ if .System }}<|start_header_id|>system<|end_header_id|>\n\n{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>\n\n{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>\n\n{{ .Response }}<|eot_id|>",
details: {
parent_model: "",
format: "gguf",
family: "llama",
families: ["llama"],
parameter_size: "8.0B",
quantization_level: "Q4_0",
},
model_info: {
"general.architecture": "llama",
"general.file_type": 2,
"general.parameter_count": 8030261248,
"general.quantization_version": 2,
"llama.attention.head_count": 32,
"llama.attention.head_count_kv": 8,
"llama.attention.layer_norm_rms_epsilon": 0.00001,
"llama.block_count": 32,
"llama.context_length": 8192,
"llama.embedding_length": 4096,
"llama.feed_forward_length": 14336,
"llama.rope.dimension_count": 128,
"llama.rope.freq_base": 500000,
"llama.vocab_size": 128256,
"tokenizer.ggml.bos_token_id": 128000,
"tokenizer.ggml.eos_token_id": 128009,
"tokenizer.ggml.merges": [], // populates if `verbose=true`
"tokenizer.ggml.model": "gpt2",
"tokenizer.ggml.pre": "llama-bpe",
"tokenizer.ggml.token_type": [], // populates if `verbose=true`
"tokenizer.ggml.tokens": [], // populates if `verbose=true`
},
capabilities: ["completion", "vision"],
}คัดลอกโมเดล
POST /api/copyคัดลอกโมเดล สร้างโมเดลที่มีชื่อใหม่จากโมเดลที่มีอยู่เดิม
ตัวอย่าง
คำขอ
shell
curl http://localhost:11434/api/copy -d '{
"source": "llama3.2",
"destination": "llama3-backup"
}'การตอบกลับ
ส่งสถานะ 200 OK หากสำเร็จ หรือส่งสถานะ 404 Not Found หากโมเดลต้นทางไม่มีอยู่
ลบโมเดล
DELETE /api/deleteลบโมเดลและข้อมูลทั้งหมดของโมเดลนั้น
พารามิเตอร์
model: ชื่อโมเดลที่ต้องการลบ
ตัวอย่าง
คำขอ
shell
curl -X DELETE http://localhost:11434/api/delete -d '{
"model": "llama3:13b"
}'การตอบกลับ
ส่งสถานะ 200 OK หากสำเร็จ ส่งสถานะ 404 Not Found หากโมเดลที่ต้องการลบไม่มีอยู่
ดึงโมเดล
POST /api/pullดาวน์โหลดโมเดลจากคลังโมเดล Ollama การดึงที่ถูกยกเลิกจะเริ่มต้นต่อจากจุดที่หยุดไว้ และการเรียกซ้ำหลายครั้งจะใช้ความคืบหน้าการดาวน์โหลดร่วมกัน
พารามิเตอร์
model: ชื่อโมเดลที่ต้องการดึงinsecure: (ไม่จำเป็น) อนุญาตให้เชื่อมต่อที่ไม่ปลอดภัยกับคลังโมเดล ใช้ตัวเลือกนี้เฉพาะเมื่อคุณกำลังดึงโมเดลจากคลังของคุณเองในระหว่างการพัฒนาเท่านั้นstream: (ไม่จำเป็น) หากตั้งค่าเป็นfalseการตอบกลับจะถูกส่งกลับเป็นออบเจ็กต์เดียว แทนที่จะเป็นสตรีมของออบเจ็กต์หลายตัว
ตัวอย่าง
คำขอ
shell
curl http://localhost:11434/api/pull -d '{
"model": "llama3.2"
}'การตอบกลับ
หากไม่ระบุ stream หรือตั้งค่าเป็น true จะส่งกลับเป็นสตรีมของออบเจ็กต์ JSON หลายตัว:
ออบเจ็กต์แรกคือไฟล์ manifest:
json
{
"status": "pulling manifest"
}จากนั้นจะมีชุดของการตอบกลับเกี่ยวกับการดาวน์โหลด จนกว่าการดาวน์โหลดจะเสร็จสิ้น คีย์ completed อาจไม่ปรากฏอยู่ จำนวนไฟล์ที่ต้องดาวน์โหลดอยู่ที่จำนวนเลเยอร์ที่ระบุในไฟล์ manifest
json
{
"status": "pulling digestname",
"digest": "digestname",
"total": 2142590208,
"completed": 241970
}หลังจากดาวน์โหลดไฟล์ทั้งหมดเสร็จสิ้น การตอบกลับสุดท้ายจะเป็น:
json
{
"status": "verifying sha256 digest"
}
{
"status": "writing manifest"
}
{
"status": "removing any unused layers"
}
{
"status": "success"
}หากตั้งค่า stream เป็น false การตอบกลับจะเป็นออบเจ็กต์ JSON ตัวเดียว:
json
{
"status": "success"
}อัปโหลดโมเดล
POST /api/pushอัปโหลดโมเดลไปยังคลังโมเดล ต้องลงทะเบียนที่ ollama.ai และเพิ่มกุญแจสาธารณะก่อน
พารามิเตอร์
model: ชื่อโมเดลที่ต้องการอัปโหลดในรูปแบบ<namespace>/<model>:<tag>insecure: (ไม่จำเป็น) อนุญาตให้เชื่อมต่อที่ไม่ปลอดภัยกับคลังโมเดล ใช้ตัวเลือกนี้เฉพาะเมื่อคุณกำลังอัปโหลดไปยังคลังของคุณเองในระหว่างการพัฒนาเท่านั้นstream: (ไม่จำเป็น) หากตั้งค่าเป็นfalseการตอบกลับจะถูกส่งกลับเป็นออบเจ็กต์เดียว แทนที่จะเป็นสตรีมของออบเจ็กต์หลายตัว
ตัวอย่าง
คำขอ
shell
curl http://localhost:11434/api/push -d '{
"model": "mattw/pygmalion:latest"
}'การตอบกลับ
หากไม่ระบุ stream หรือตั้งค่าเป็น true จะส่งกลับเป็นสตรีมของออบเจ็กต์ JSON หลายตัว:
json
{ "status": "retrieving manifest" }จากนั้น:
json
{
"status": "starting upload",
"digest": "sha256:bc07c81de745696fdf5afca05e065818a8149fb0c77266fb584d9b2cba3711ab",
"total": 1928429856
}จากนั้นจะมีชุดของการตอบกลับเกี่ยวกับการอัปโหลด:
json
{
"status": "starting upload",
"digest": "sha256:bc07c81de745696fdf5afca05e065818a8149fb0c77266fb584d9b2cba3711ab",
"total": 1928429856
}เมื่อการอัปโหลดเสร็จสิ้นสุดท้าย:
json
{"status":"pushing manifest"}
{"status":"success"}หากตั้งค่า stream เป็น false การตอบกลับจะเป็นออบเจ็กต์ JSON ตัวเดียว:
json
{ "status": "success" }สร้าง Embeddings
POST /api/embedสร้าง embeddings จากโมเดล
พารามิเตอร์
model: ชื่อโมเดลที่ต้องการสร้าง embeddings จากinput: ข้อความหรือรายการข้อความที่ต้องการสร้าง embeddings สำหรับ
พารามิเตอร์ขั้นสูง:
truncate: ตัดส่วนท้ายของแต่ละอินพุตให้พอดีกับความยาวของ context ส่งข้อผิดพลาดหากตั้งค่าเป็นfalseและความยาว context เกินขอบเขต ค่าเริ่มต้นคือtrueoptions: พารามิเตอร์โมเดลเพิ่มเติมที่ระบุในเอกสารสำหรับ Modelfile เช่นtemperaturekeep_alive: ควบคุมระยะเวลาที่โมเดลจะคงอยู่ในหน่วยความจำหลังจากส่งคำขอ (ค่าเริ่มต้น:5m)dimensions: จำนวนมิติของ embedding
ตัวอย่าง
คำขอ
shell
curl http://localhost:11434/api/embed -d '{
"model": "all-minilm",
"input": "Why is the sky blue?"
}'การตอบกลับ
json
{
"model": "all-minilm",
"embeddings": [
[
0.010071029, -0.0017594862, 0.05007221, 0.04692972, 0.054916814,
0.008599704, 0.105441414, -0.025878139, 0.12958129, 0.031952348
]
],
"total_duration": 14143917,
"load_duration": 1019500,
"prompt_eval_count": 8
}คำขอ (อินพุตหลายตัว)
shell
curl http://localhost:11434/api/embed -d '{
"model": "all-minilm",
"input": ["Why is the sky blue?", "Why is the grass green?"]
}'การตอบกลับ
json
{
"model": "all-minilm",
"embeddings": [
[
0.010071029, -0.0017594862, 0.05007221, 0.04692972, 0.054916814,
0.008599704, 0.105441414, -0.025878139, 0.12958129, 0.031952348
],
[
-0.0098027075, 0.06042469, 0.025257962, -0.006364387, 0.07272725,
0.017194884, 0.09032035, -0.051705178, 0.09951512, 0.09072481
]
]
}รายการโมเดลที่กำลังทำงาน
GET /api/psแสดงรายการโมเดลที่โหลดอยู่ในหน่วยความจำอยู่ในปัจจุบัน
ตัวอย่าง
คำขอ
shell
curl http://localhost:11434/api/psการตอบกลับ
จะส่งกลับออบเจ็กต์ JSON ตัวเดียว
json
{
"models": [
{
"name": "mistral:latest",
"model": "mistral:latest",
"size": 5137025024,
"digest": "2ae6f6dd7a3dd734790bbbf58b8909a606e0e7e97e94b7604e0aa7ae4490e6d8",
"details": {
"parent_model": "",
"format": "gguf",
"family": "llama",
"families": ["llama"],
"parameter_size": "7.2B",
"quantization_level": "Q4_0"
},
"expires_at": "2024-06-04T14:38:31.83753-07:00",
"size_vram": 5137025024
}
]
}สร้าง Embedding
หมายเหตุ: จุดสิ้นสุดนี้ถูกแทนที่โดย
/api/embed
POST /api/embeddingsสร้าง embeddings จากโมเดล
พารามิเตอร์
model: ชื่อโมเดลที่ต้องการสร้าง embeddings จากprompt: ข้อความที่ต้องการสร้าง embeddings สำหรับ
พารามิเตอร์ขั้นสูง:
options: พารามิเตอร์โมเดลเพิ่มเติมที่ระบุในเอกสารสำหรับ Modelfile เช่นtemperaturekeep_alive: ควบคุมระยะเวลาที่โมเดลจะคงอยู่ในหน่วยความจำหลังจากส่งคำขอ (ค่าเริ่มต้น:5m)
ตัวอย่าง
คำขอ
shell
curl http://localhost:11434/api/embeddings -d '{
"model": "all-minilm",
"prompt": "Here is an article about llamas..."
}'การตอบกลับ
json
{
"embedding": [
0.5670403838157654, 0.009260174818336964, 0.23178744316101074,
-0.2916173040866852, -0.8924556970596313, 0.8785552978515625,
-0.34576427936553955, 0.5742510557174683, -0.04222835972905159,
-0.137906014919281
]
}เวอร์ชัน
GET /api/versionดึงข้อมูลเวอร์ชันของ Ollama
ตัวอย่าง
คำขอ
shell
curl http://localhost:11434/api/versionการตอบกลับ
json
{
"version": "0.5.1"
}ฟีเจอร์ทดลองใช้
การสร้างภาพ (ทดลองใช้)
WARNING
การสร้างภาพอยู่ในสถานะทดลองใช้และอาจมีการเปลี่ยนแปลงในเวอร์ชันต่อๆ ไป
ขณะนี้การสร้างภาพได้รับการสนับสนุนผ่านจุดสิ้นสุดมาตรฐาน /api/generate เมื่อใช้โมเดลสำหรับสร้างภาพ API จะตรวจพบโมเดลสร้างภาพโดยอัตโนมัติ
ดูรายละเอียด API ทั้งหมดในส่วน สร้างการเติมเต็ม พารามิเตอร์การสร้างภาพที่อยู่ในสถานะทดลองใช้ (width, height, steps) มีการอธิบายไว้ที่นั่น
ตัวอย่าง
คำขอ
shell
curl http://localhost:11434/api/generate -d '{
"model": "x/z-image-turbo",
"prompt": "a sunset over mountains",
"width": 1024,
"height": 768
}'การตอบกลับ (แบบสตรีม)
การอัปเดตความคืบหน้าระหว่างการสร้าง:
json
{
"model": "x/z-image-turbo",
"created_at": "2024-01-15T10:30:00.000000Z",
"completed": 5,
"total": 20,
"done": false
}การตอบกลับสุดท้าย
json
{
"model": "x/z-image-turbo",
"created_at": "2024-01-15T10:30:15.000000Z",
"image": "iVBORw0KGgoAAAANSUhEUg...",
"done": true,
"done_reason": "stop",
"total_duration": 15000000000,
"load_duration": 2000000000
}