# OpenAI からの移行

Source: https://aiand-docs-staging.pages.dev/ja/migrating-openai/

ai& Inference API は OpenAI の Chat Completions / Responses / Models API とワイヤ互換です。既存の OpenAI 統合がある場合、通常は **ベース URL** と **API キー** を変更するだけで移行できます。

<Aside type="note">
  呼び出すのは OpenAI の独自モデルではなく、ai& インフラ上でホストしているオープンウェイトのモデルです。ワークロードに合うモデルを [カタログ](/ja/models/catalog/) から選んでください。
</Aside>

## 2 箇所の変更

<Tabs>
<TabItem label="Python">

```python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.aiand.com/v1",
    api_key="sk-your-aiand-api-key",
)
```

</TabItem>
<TabItem label="Node.js">

```ts
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.aiand.com/v1",
  apiKey: "sk-your-aiand-api-key",
});
```

</TabItem>
</Tabs>

これ以外 — `chat.completions.create`、ストリーミング、ツール呼び出し、構造化出力 — はそのまま動作します。

## 対応エンドポイント

| OpenAI エンドポイント | ai& のパス | 備考 |
|----------------------|------------|------|
| `/v1/chat/completions` | [Chat Completions](/ja/api/chat-completions/) | 完全互換 |
| `/v1/models` | [Models](/ja/api/models/) | 公開。API キーありは組織通貨、なしは USD 建て |
| `/v1/files` | [Files](/ja/api/files/) | 同じ multipart アップロード形式 |
| `/v1/uploads` | [Uploads](/ja/api/uploads/) | 大容量ファイル向けのチャンクアップロード |

OpenAI のレガシーな `/v1/completions` は利用できません。プロンプトを user メッセージとして `/v1/chat/completions` に送信してください。`/v1/completions` へのリクエストには、エラーコード [`endpoint_removed`](/ja/errors/#主なエラーコード) 付きの `410` が返ります。

## 異なる点

- **API キー** は OpenAI と同様に `sk-` から始まりますが ai& が発行します — [認証](/ja/authentication/) を参照。
- **モデル ID** が異なります。`client.models.list()` または [カタログ](/ja/models/catalog/) で確認できます。
- **組織のスコープ** — JWT 認証時は `X-Org-ID` を指定。API キー認証ではキーから自動的に組織が解決されます。

<Aside type="tip">
  ストリーミング、ツール呼び出し、ビジョン、構造化出力はコード変更不要 — いずれもワイヤ上は OpenAI 形式です。
</Aside>
