> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sambanova.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenAI 互換性

SambaNova の推論 API は OpenAI クライアントライブラリに準拠するよう設計されており、AI アプリケーションの強化に向けて SambaNova の推論技術を簡単に導入できます。

<Note>
  SambaNova は Anthropic Messages API にも対応しています。[Anthropic 互換性](/docs/ja/features/anthropic-compatibility) および [Messages API](/docs/ja/features/messages) ページをご参照ください。
</Note>

## ライブラリのインストール

以下のコマンドを実行してライブラリをダウンロードします。

```python theme={}
pip install openai
```

## OpenAI クライアントライブラリでの SambaNova API の利用

`base_url` と `api_key` の 2 つの値を設定して、OpenAI クライアントライブラリが SambaNova の推論 API を使用するように構成します。

<Note>
  SambaNova API キーをお持ちでない場合は、[API キーと URL](/docs/ja/get-started/api-keys-urls) ページから取得してください。
</Note>

```python theme={}
from openai import OpenAI

client = OpenAI(
    base_url="your-sambanova-base-url",
    api_key="your-sambanova-api-key"
)
```

これで、モデルに API リクエストを送信し、出力の受け取り方法を選択できます。

### 非ストリーミングの例

以下のコードは、OpenAI の Python クライアントで非ストリーミングの補完を行う例です。

```python theme={}
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)
```

### ストリーミングの例

以下のコードは、OpenAI の Python クライアントでストリーミングの補完を行う例です。

```python theme={}
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)
```

<Note>
  ストリーミングモードでは、API は複数のトークンを含むチャンクを返します。1 秒あたりのトークン数や出力トークンあたりの時間などのメトリクスを計算する際は、各チャンク内のすべてのトークンをカウントしてください。
</Note>

## Responses API

SambaNova は、Chat Completions エンドポイントに加えて、OpenAI Responses API 標準と互換性のある Responses API エンドポイント `POST /v1/responses` を提供しています。すでに OpenAI SDK で Responses API を利用している場合は、同じ構成のまま接続先を SambaNova に切り替えるだけで利用できます。

```python theme={}
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 で対応しているパラメータ、ツール呼び出し、ストリーミング、構造化出力の詳細については、[Responses API](/docs/ja/features/responses) をご参照ください。

## 現在未対応の OpenAI 機能

以下の機能は現時点では未対応のため、指定しても無視されます。

* `presence_penalty`
* `frequency_penalty`

## 機能の差異

`n`: SambaNova API では 1〜8 の値に対応しています (整数、デフォルト 1)。OpenAI には明文化された上限はありません。なお、Function calling (関数呼び出し) やツールの利用時には 1 より大きい `n` は未対応であり、組み合わせると 400 エラーが返されます。

`seed`: テキスト生成モデルについて、SambaStack と SambaCloud の両方で対応しています。同じ入力に対して同じ `seed` を渡すと、決定的な出力が得られます。負の値を含む任意の整数を指定できます。

<Note>
  OpenAI と異なり、SambaNova API はレスポンスに `system_fingerprint` フィールドを返しません。`seed` パラメータは、マルチモーダルモデルおよび連続バッチ処理 (continuous batching; CB) モデルでは未対応です。
</Note>

### `logit_bias`

テキスト生成モデルについて、SambaStack と SambaCloud の両方で対応しています。トークン ID を `-100` から `100` までのバイアス値にマッピングする JSON オブジェクトを指定します。負の値は対応するトークンの出現を抑制し、正の値は出現を促進します。トークン ID はモデルごとに異なるため、対象モデルのトークナイザーで確認してください。

<Note>
  `logit_bias` パラメータは、マルチモーダルモデルおよび高スループットモデルでは未対応です。未対応のモデルに対して `logit_bias` を指定したリクエストは、パラメータが黙って無視されるのではなく、エラーが返されます。
</Note>

<Note>
  `logit_bias` は、logit マスキングに対応したデプロイメントでのみ利用できます。SambaStack 1.1.1 に同梱されるモデルは、既定でこの機能に対応しています。
</Note>

## OpenAI クライアントで未対応の SambaNova API 機能

SambaNova API は `top_k` パラメータに対応していますが、OpenAI クライアントライブラリでは対応していません。
