Skip to content

Ollama는 기존 애플리케이션을 Ollama에 연결할 수 있도록 OpenAI API의 일부와 호환됩니다.

사용법

간단한 /v1/chat/completions 예제

간단한 /v1/responses 예제

/v1/chat/completions 비전 예제

엔드포인트

/v1/chat/completions

지원 기능

  • [x] 채팅 완성
  • [x] 스트리밍
  • [x] JSON 모드
  • [x] 재현 가능한 출력
  • [x] 비전
  • [x] 도구
  • [x] (사고 모델용) 추론/사고 제어
  • [ ] 로그프롭스

지원 요청 필드

  • [x] model
  • [x] messages
    • [x] 텍스트 content
    • [x] 이미지 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] 완성
  • [x] 스트리밍
  • [x] JSON 모드
  • [x] 재현 가능한 출력
  • [ ] 로그프롭스

지원 요청 필드

  • [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 (예: "1024x1024")
  • [x] response_format (b64_json만 지원됨)
  • [ ] n
  • [ ] quality
  • [ ] style
  • [ ] user

/v1/responses

참고: Ollama v0.13.3에 추가됨

Ollama는 OpenAI Responses API를 지원합니다. 상태 저장(Stateful) 버전이 아닌 비상태 저장 버전만 지원됩니다(즉, previous_response_idconversation 지원이 없습니다).

지원 기능

  • [x] 스트리밍
  • [x] 도구 (함수 호출)
  • [x] (사고 모델용) 추론 요약
  • [ ] 상태 저장 요청

지원 요청 필드

  • [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

기본 모델 이름

gpt-3.5-turbo와 같은 기본 OpenAI 모델 이름에 의존하는 도구의 경우, 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!"
            }
        ]
    }'

컨텍스트 크기 설정

OpenAI API에는 모델의 컨텍스트 크기를 설정하는 방법이 없습니다. 컨텍스트 크기를 변경해야 하는 경우 다음과 같은 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!"
            }
        ]
    }'