SambaNova OpenAI 호환 API
SambaNova OpenAI 호환 API
SambaNova의 추론 API는 OpenAI 클라이언트 라이브러리와 호환되도록 설계돼 있어요. 그래서 기존 OpenAI 기반 애플리케이션에서 base_url과 api_key만 바꿔 끼면 SambaNova 추론을 바로 쓸 수 있어요. 익숙한 코드 구조를 그대로 유지한 채 서버리스 추론으로 전환하고 싶을 때 특히 유용해요.
출처: OpenAI 호환 API
SambaNova는 OpenAI뿐 아니라 Anthropic Messages API도 지원해요. Anthropic 호환 관련 내용은 Anthropic 호환 및 Messages API 페이지를 참고하세요.
라이브러리 설치
pip install openai
OpenAI 클라이언트로 SambaNova API 쓰기
OpenAI 클라이언트를 SambaNova에 맞추려면 두 가지만 설정하면 돼요. base_url과 api_key이에요. 아직 API 키가 없다면 API 키와 URL 페이지에서 발급 받을 수 있어요.
from openai import OpenAI
client = OpenAI(
base_url="your-sambanova-base-url",
api_key="your-sambanova-api-key"
)
이제 모델에 요청을 보내고, 출력을 받는 방식을 고를 수 있어요.
비스트리밍 예시
completion = client.chat.completions.create(
model="Meta-Llama-3.3-70B-Instruct",
messages = [
{"role": "system", "content": "Answer the question in a couple sentences."},
{"role": "user", "content": "Share a happy story with me"}
]
)
print(completion.choices[0].message)
스트리밍 예시
completion = client.chat.completions.create(
model="Meta-Llama-3.3-70B-Instruct",
messages = [
{"role": "system", "content": "Answer the question in a couple sentences."},
{"role": "user", "content": "Share a happy story with me"}
],
stream= True
)
for chunk in completion:
print(chunk.choices[0].delta.content)
스트리밍 응답은 여러 토큰을 담은 청크 단위로 와요. 초당 토큰수 같은 지표를 계산할 때는 청크 안의 토큰을 모두 세어야 해요.
Responses API
Chat Completions 엔드포인트 외에도 SambaNova는 OpenAI Responses API 표준과 호환되는 POST /v1/responses 엔드포인트를 제공해요. 이미 OpenAI SDK에서 Responses API를 쓰고 있다면 같은 설정으로 그대로 SambaNova에 연결하면 돼요.
response = client.responses.create(
model="gpt-oss-120b",
input="Explain the difference between supervised and unsupervised learning in two sentences."
)
print(response.output[0].content[0].text)
지원 파라미터, 툴 호출, 스트리밍, 구조화 출력에 대한 자세한 내용은 Responses API 페이지를 참고하세요.
아직 지원되지 않는 OpenAI 기능
다음 기능은 아직 지원되지 않아 조용히 무시돼요.
presence_penaltyfrequency_penalty
OpenAI와의 차이점
n — SambaNova API는 1~8 사이 정수(기본 1)를 지원해요. OpenAI는 문서화된 상한이 없어요. 그리고 n이 1보다 크면 함수 호출이나 툴과 함께 쓸 수 없고, 함께 쓰면 400 에러가 나요.
seed — SambaCloud와 SambaStack의 텍스트 생성 모델에서 모두 지원돼요. 같은 입력으로 같은 seed를 넘기면 결정론적(동일한) 출력이 나와요. 음수를 포함한 아무 정수나 받아요. OpenAI와 달리 SambaNova API는 응답에 system_fingerprint 필드를 돌려주지 않아요. seed는 멀티모달 모델이나 CB(continuous batching) 모델에서는 지원되지 않아요.
logit_bias — SambaCloud와 SambaStack의 텍스트 생성 모델에서 지원돼요. 토큰 ID를 -100~100 사이의 바이어스 값에 매핑하는 JSON 객체를 받아요. 음수는 해당 토큰을 억제하고, 양수는 토큰을 강조해요. 토큰 ID는 모델마다 다르니 대상 모델의 토크나이저로 찾아야 해요. 멀티모달·고처리량 모델에서는 지원되지 않으며, 지원하지 않는 모델에 logit_bias를 보내면 무시하지 않고 에러를 돌려줘요. 또 logit_bias는 로짓 마스킹을 지원하는 배포에서만 쓸 수 있는데, 지원되는 SambaStack 1.1.1 배포 모델은 기본적으로 이 기능을 포함해요.
OpenAI 클라이언트가 지원하지 않는 SambaNova 기능
SambaNova API는 top_k 파라미터를 지원하는데, OpenAI 클라이언트 라이브러리에는 이 파라미터가 없어요.