Skip to content

Ollama มีความเข้ากันได้กับบางส่วนของ OpenAI API เพื่อช่วยเชื่อมต่อแอปพลิเคชันที่มีอยู่กับ Ollama

การใช้งาน

ตัวอย่าง /v1/chat/completions ที่ง่าย

ตัวอย่าง /v1/responses ที่ง่าย

ตัวอย่าง /v1/chat/completions พร้อมความสามารถในการมองเห็นภาพ

จุดสิ้นสุด API

/v1/chat/completions

คุณสมบัติที่รองรับ

  • [x] การสร้างข้อความสนทนา (Chat Completions)
  • [x] การสตรีมข้อมูล (Streaming)
  • [x] โหมด JSON
  • [x] เอาต์พุตที่สามารถสร้างซ้ำได้ (Reproducible Outputs)
  • [x] ความสามารถในการประมวลผลภาพ (Vision)
  • [x] เครื่องมือ (Tools)
  • [x] การควบคุมการให้เหตุผล/การคิด (สำหรับโมเดลที่มีความสามารถในการคิด)
  • [ ] Logprobs

ฟิลด์คำขอที่รองรับ

  • [x] model
  • [x] messages
    • [x] เนื้อหาด้วยข้อความ (Text content)
    • [x] เนื้อหาด้วยภาพ (Image content)
      • [x] รูปภาพที่เข้ารหัสเป็น Base64
      • [ ] URL ของรูปภาพ
    • [x] อาร์เรย์ของส่วนประกอบ content
  • [x] frequency_penalty
  • [x] presence_penalty
  • [x] response_format
  • [x] seed
  • [x] stop
  • [x] stream
  • [x] stream_options
    • [x] include_usage
  • [x] temperature
  • [x] top_p
  • [x] max_tokens
  • [x] tools
  • [x] reasoning_effort ("high", "medium", "low", "max", "none")
  • [x] reasoning
    • [x] effort ("high", "medium", "low", "max", "none")
  • [ ] tool_choice
  • [ ] logit_bias
  • [ ] user
  • [ ] n

/v1/completions

คุณสมบัติที่รองรับ

  • [x] การสร้างข้อความต่อเนื่อง (Completions)
  • [x] การสตรีมข้อมูล (Streaming)
  • [x] โหมด JSON
  • [x] เอาต์พุตที่สามารถสร้างซ้ำได้
  • [ ] Logprobs

ฟิลด์คำขอที่รองรับ

  • [x] model
  • [x] prompt
  • [x] frequency_penalty
  • [x] presence_penalty
  • [x] seed
  • [x] stop
  • [x] stream
  • [x] stream_options
    • [x] include_usage
  • [x] temperature
  • [x] top_p
  • [x] max_tokens
  • [x] suffix
  • [ ] best_of
  • [ ] echo
  • [ ] logit_bias
  • [ ] user
  • [ ] n

หมายเหตุ

  • ฟิลด์ prompt ปัจจุบันรับค่าเป็นสตริงเท่านั้น

/v1/models

หมายเหตุ

  • ฟิลด์ created ตรงกับเวลาที่โมเดลถูกแก้ไขล่าสุด
  • ฟิลด์ owned_by ตรงกับชื่อผู้ใช้ของ Ollama ค่าเริ่มต้นเป็น "library"

/v1/models/{model}

หมายเหตุ

  • ฟิลด์ created ตรงกับเวลาที่โมเดลถูกแก้ไขล่าสุด
  • ฟิลด์ owned_by ตรงกับชื่อผู้ใช้ของ Ollama ค่าเริ่มต้นเป็น "library"

/v1/embeddings

ฟิลด์คำขอที่รองรับ

  • [x] model
  • [x] input
    • [x] สตริง
    • [x] อาร์เรย์ของสตริง
    • [ ] อาร์เรย์ของโทเคน
    • [ ] อาร์เรย์ของอาร์เรย์โทเคน
  • [x] encoding format
  • [x] dimensions
  • [ ] user

/v1/images/generations (ทดลอง)

หมายเหตุ: จุดสิ้นสุดนี้อยู่ในขั้นทดลองและอาจมีการเปลี่ยนแปลงหรือลบออกในเวอร์ชันต่อๆ ไป

ใช้สร้างรูปภาพด้วยโมเดลการสร้างรูปภาพ

ฟิลด์คำขอที่รองรับ

  • [x] model
  • [x] prompt
  • [x] size (e.g. "1024x1024")
  • [x] response_format (only b64_json supported)
  • [ ] n
  • [ ] quality
  • [ ] style
  • [ ] user

/v1/responses

หมายเหตุ: เพิ่มเข้ามาใน Ollama เวอร์ชัน 0.13.3

Ollama รองรับ OpenAI Responses API โดยรองรับเฉพาะรูปแบบที่ไม่มีการเก็บสถานะ (non-stateful) เท่านั้น (กล่าวคือ ไม่รองรับ previous_response_id หรือการสนับสนุน conversation)

คุณสมบัติที่รองรับ

  • [x] การสตรีมข้อมูล (Streaming)
  • [x] เครื่องมือ (Tools) (การเรียกใช้ฟังก์ชัน)
  • [x] สรุปการให้เหตุผล (สำหรับโมเดลที่มีความสามารถในการคิด)
  • [ ] การร้องขอที่มีการเก็บสถานะ (Stateful Requests)

ฟิลด์คำขอที่รองรับ

  • [x] model
  • [x] input
  • [x] instructions
  • [x] tools
  • [x] stream
  • [x] temperature
  • [x] top_p
  • [x] max_output_tokens
  • [ ] previous_response_id (ไม่รองรับการใช้งานแบบมีสถานะกับ v1/responses)
  • [ ] conversation (ไม่รองรับการใช้งานแบบมีสถานะกับ v1/responses)
  • [ ] truncation

โมเดล

ก่อนใช้งานโมเดล ให้ดึงโมเดลมาที่เครื่องของคุณด้วยคำสั่ง ollama pull:

shell
ollama pull llama3.2

ชื่อโมเดลเริ่มต้น

สำหรับเครื่องมือที่พึ่งพาชื่อโมเดลเริ่มต้นของ OpenAI เช่น gpt-3.5-turbo ให้ใช้คำสั่ง ollama cp เพื่อคัดลอกชื่อโมเดลที่มีอยู่ไปเป็นชื่อชั่วคราว:

shell
ollama cp llama3.2 gpt-3.5-turbo

หลังจากนั้น สามารถระบุชื่อโมเดลใหม่นี้ในฟิลด์ model ได้:

shell
curl http://localhost:11434/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "gpt-3.5-turbo",
        "messages": [
            {
                "role": "user",
                "content": "Hello!"
            }
        ]
    }'

การกำหนดขนาดบริบท (Context Size)

OpenAI API ไม่มีวิธีกำหนดขนาดบริบท (context size) สำหรับโมเดล หากคุณต้องการเปลี่ยนขนาดบริบท ให้สร้างไฟล์ Modelfile ที่มีรูปแบบดังนี้:

FROM <some model>
PARAMETER num_ctx <context size>

ใช้คำสั่ง ollama create mymodel เพื่อสร้างโมเดลใหม่ที่มีขนาดบริบทที่อัปเดต แล้วเรียกใช้ API ด้วยชื่อโมเดลที่อัปเดต:

shell
curl http://localhost:11434/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "mymodel",
        "messages": [
            {
                "role": "user",
                "content": "Hello!"
            }
        ]
    }'