KO ▾
API 키 받기

Ollama API와 OpenAI API: 엔드포인트 및 코드

Ollama API와 OpenAI API 질문은 두 가지 요청 형식과 모델을 실행할 두 가지 장소로 귀결됩니다. Ollama에는 자체 네이티브 API와 OpenAI 호환 레이어가 있어 호스팅 OpenAI 스타일 엔드포인트로 이동하면 베이스 URL과 키 변경이 필요할 수 있습니다.

업데이트됨

두 개의 가벼운 다리로 연결된 데스크톱 머신과 클라우드 서버
빛나는 케이블로 로컬 컴퓨터와 클라우드 서버에 연결된 채팅 창

카드가 필요 없습니다. 가입 후 한 번의 클릭으로 $0.50 무료 체험 크레딧을 받습니다(인당 한 번).

API 키 받기

주요 포인트

  • Ollama는 /api 아래에 네이티브 라우트를 가지고 있고 /v1 아래에 OpenAI 호환 레이어를 가지고 있습니다. OpenAI SDK용으로 작성된 클라이언트는 보통 둘 중 하나와도 작동합니다.
  • Ollama의 네이티브 스트리밍은 줄바꿈 구분 JSON을 사용하며, OpenAI 형식은 서버 전송 이벤트를 스트리밍합니다.
  • 로컬에서 호스팅으로 이동하면 코드가 아닌 베이스 URL, 키 및 모델 이름을 변경해야 합니다.
  • 로컬은 데이터를 사용자의 머신에 유지합니다. 호스팅은 하드웨어 관리 부담을 줄이고 토큰 단위 과금을 추가합니다.

간단 요약

둘 다 메시지 목록을 POST하고 텍스트를 받습니다. 차이는 요청의 형태, 서버 위치 및 GPU 비용을 누가 부담하느냐에 있습니다. Ollama는 자체 컴퓨터에서 모델을 실행하고 포트 11434에서 수신합니다. OpenAI API는 자체 유료 모델을 갖춘 호스팅 서비스입니다. Ollama API와 OpenAI API 비교에서 사람들은 종종 세 번째 점을 놓칩니다: Ollama는 OpenAI 호환 라우트도 노출하므로 두 형식이 겹칩니다.

이러한 중복이 이주가 저렴해지는 이유입니다. 앱이 이미 OpenAI SDK를 사용하고 있다면, 오늘 로컬 Ollama를 가리키고 내일 호스팅 OpenAI 호환 URL을 가리킬 수 있습니다. 이 사이트의 호스팅 엔드포인트는 그 중 하나입니다. 이 엔드포인트는 단일 모델 uncensored을 https://api.ollamansfw.com/v1에서 제공하며, OpenAI, Meta 또는 기타 연구소의 공식 제품이 아닙니다.

엔드포인트별 차이점

작업Ollama 네이티브OpenAI 스타일
채팅POST /api/chatPOST /v1/chat/completions
단일 프롬프트POST /api/generatePOST /v1/responses 또는 채팅 완성
모델 목록GET /api/tagsGET /v1/models
인증기본값 없음Authorization: Bearer key
스트리밍줄바꿈 구분 JSON완료 마커로 끝나는 서버 전송 이벤트
모델 이름llama3 등 pull 명령어로 가져온 모델제공업체가 나열한 모델명

Ollama는 같은 포트에서 /v1/chat/completions과 /v1/models도 제공합니다. 이것이 OpenAI 클라이언트가 이를 대상으로 작동할 수 있게 하는 이유입니다. Ollama 고유 호출의 기본값은 스트리밍이므로, 단일 JSON 응답을 원할 때 stream: false를 설정하세요.

호스팅 엔드포인트는 POST /v1/chat/completions, POST /v1/responses 및 GET /v1/models를 구현하며, GET /v1/balance에서 잔액 확인도 지원합니다. 전체 목록은 API 문서를 참조하세요.

동일한 요청, 세 가지 방법

Python에서 네이티브 Ollama:

import requests

r = requests.post(
    "http://localhost:11434/api/chat",
    json={
        "model": "llama3",
        "messages": [{"role": "user", "content": "Say hello in five words."}],
        "stream": False,
    },
)
print(r.json()["message"]["content"])

로컬 및 호스팅 설정이 나란히 배치된 OpenAI SDK. 주석 처리된 줄만 변경됩니다:

from openai import OpenAI

# Local Ollama through its OpenAI-compatible layer:
# client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")

# Hosted endpoint, same code from here on:
client = OpenAI(base_url="https://api.ollamansfw.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",   # local would be e.g. "llama3"
    messages=[{"role": "user", "content": "Say hello in five words."}],
)
print(resp.choices[0].message.content)

스트리밍을 활성화한 호스팅 엔드포인트에 대한 curl:

curl https://api.ollamansfw.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"Hello"}],"stream":true}'

네이티브 측 파싱 방식이 다릅니다: 스트리밍되는 각 줄은 message.content를 포함하는 JSON 객체이며, 마지막 줄에는 done: true가 있습니다. OpenAI 형식에서는 각 이벤트가 data: 로 시작하고 choices[0].delta.content 조각을 포함하며, 스트림은 [DONE]로 종료됩니다. SDK를 사용하면 이러한 형식을 직접 볼 일이 없습니다.

각각이 적합한 경우

사생활 보호가 최우선일 때, 원하는 모델을 위한 충분한 메모리가 있는 GPU가 있을 때, 또는 여러 모델을 실험할 때 로컬 Ollama가 올바른 선택입니다. 데이터는 머신 밖으로 나가지 않으며 토큰당 요금이 청구되지 않습니다. 비용은 하드웨어, 전력 및 시간으로 나타납니다. GUI와 함께 Ollama 사용하기 가이드는 이 경로의 사용하기 쉬운 측면을 다룹니다.

하드웨어가 부족하거나 많은 동시 요청이 필요하거나, 다른 사람들을 위한 봇이나 서비스를 실행하거나, 노트북이 켜져 있는지 여부에 의존하지 않는 안정적인 URL이 필요할 때 호스팅된 OpenAI 호환 엔드포인트가 더 적합합니다. 전체 키는 8개의 동시 요청과 분당 300개의 요청을 허용합니다. 컨텍스트 창은 100,000 토큰이며, 이는 많은 로컬 설정이 메모리에 담을 수 있는 것보다 많습니다.

많은 사람들이 둘 다 사용합니다: 실험용 로컬, 항상 가동해야 하는 서비스용 호스팅. 다른 로컬 도구를 고려 중이라면 Ollama 소프트웨어 대안을 읽으세요.

로컬 Ollama에서 호스팅으로 마이그레이션

  1. 먼저 OpenAI 형식으로 전환하세요. 코드가 /api/chat를 호출하는 경우 Ollama의 /v1 라우트를 가리키도록 OpenAI SDK로 변경하세요. 로컬에서 여전히 작동하는지 확인합니다.
  2. 키를 얻으세요. 가입하고 API 키 페이지에서 $0.50 체험금을 청구하세요. 결제가 필요 없으며 7일 동안 유효합니다.
  3. 세 가지 값을 변경하세요. 베이스 URL을 https://api.ollamansfw.com/v1로, 키를 본인 것으로, 모델을 uncensored로 변경합니다.
  4. 매개변수를 확인하세요. 온도, top_p, stop, seed 및 페널티가 전달됩니다. Ollama의 num_ctx 또는 keep_alive와 같은 로컬 전용 옵션은 적용되지 않으며 창은 100,000 토큰으로 고정됩니다.
  5. 재시도 로직을 추가하세요. 호스팅 API는 한도를 초과할 때 rate_limited 또는 concurrency와 함께 429를 반환하고, 일시적 과부하 동안 Retry-After: 5와 함께 429를 반환합니다. 로컬 서버는 이를 거의 반환하지 않으므로 기존 코드가 이를 처리하지 못할 수 있습니다.

전환 후 무언가 실패하면, 일반적인 Ollama API 실수에 대한 기사가 잘못된 포트 및 누락된 모델 이름과 같은 빈번한 원인을 다룹니다.

호스팅 비용과 제공하지 않는 기능

과금 선불 크레딧에서 사용한 만큼 지불 방식으로 이루어집니다: 입력 토큰 100만 개당 $0.15, 출력 토큰 100만 개당 $0.50입니다. 입력 1,000개와 출력 400개로 구성된 채팅 턴은 $0.00015 + $0.0002 = $0.00035가 들며, 따라서 $20은 약 57,000개의 턴을 커버합니다. 실패하거나 거부된 요청에는 요금이 청구되지 않으며 크레딧은 만료되지 않습니다. 충전은 $20부터 $500까지 가능하며, $50부터 +5%, $100부터 +10%, $200부터 +15%의 보너스가 제공됩니다. 결제는 암호화폐로만 가능합니다(TRC20의 USDT 또는 Base의 USDC). 더 자세한 내용은 가격 책정 페이지를 참조하세요.

알아야 할 제한: 텍스트 전용이므로 임베딩, 이미지 생성 또는 파인튜닝이 없습니다. 로컬 임베딩에 의존하는 경우 해당 임베딩을 로컬에 유지하세요. 이 모델은 합법적인 성인 사용에 대해 콘텐츠 거부 없이 답변하도록 조정되었습니다. 미성년자를 포함한 성적인 콘텐츠는 절대 허용되지 않습니다. 프롬프트는 학습에 사용되지 않습니다.

질문과 답변

Ollama API는 OpenAI API와 호환되나요?

부분적으로 맞습니다. Ollama는 /api 아래에 네이티브 라우트를 가지고 있고 /v1/chat/completions과 같은 OpenAI 스타일의 라우트도 제공하므로 OpenAI SDK 클라이언트는 이를 대상으로 통신할 수 있습니다.

로컬 Ollama에서 호스팅 엔드포인트로 이동하려면 무엇을 변경해야 하나요?

Base URL, API 키 및 모델 이름입니다. 코드에서 이미 OpenAI SDK를 사용하고 있다면 다른 변경 사항은 필요하지 않습니다.

호스팅된 API는 Ollama와 같은 임베딩을 지원합니까?

아니요. 텍스트 생성만 지원하며, 임베딩, 이미지 또는 파인튜닝은 제공되지 않습니다. 채팅 완료 및 응답만 가능합니다.

Ollama는 무료입니까?

소프트웨어는 다운로드 및 실행이 무료입니다. 하지만 하드웨어와 전력 비용은 별도로 발생하며, 호스팅 API는 토큰당 요금을 부과합니다.