---
title: "API 経由で ARX 上のオンプレミスモデルを呼び出す"
description: "モデル API エンドポイント、API キー、モデル ID を取得し、OpenAI 形式または Claude API 形式で cURL または Python SDK からオンプレミスモデルを呼び出します"
canonical_url: "https://docs.ardge.com/ja/knowledge/arx-os/api-model-calls"
---
# API 経由で ARX 上のオンプレミスモデルを呼び出す

> モデル API エンドポイント、API キー、モデル ID を取得し、OpenAI 形式または Claude API 形式で cURL または Python SDK からオンプレミスモデルを呼び出します

## 概要

ARX は GPU リソースを備えたサーバー上で動作するため、モデルを短時間でデプロイし、生成 AI アプリケーションにローカル推論を提供できます。

ARX のモデルゲートウェイは、OpenAI API と Claude API の 2 つの形式に対応しています。アプリケーションは既に使用している主要な API 形式をそのまま利用できるため、クラウドモデルとオンプレミスモデルの切り替えも容易です。

この記事では、呼び出しに必要な 3 つの値の入手先と、cURL および Python での実装例を説明します。

## この記事で学べること

- モデル API エンドポイント、API キー、モデル ID を取得する
- OpenAI 形式と Claude API 形式の違いを理解する
- cURL と Python SDK からオンプレミスモデルを呼び出す

**所要時間: 約 10 分**

## 対象バージョン

- ARX OS 1.0 以降

## 事前準備

- AI Model Center でモデルをデプロイ済みで、**Model Instances** ページでのステータスが **Running** であること

まだデプロイしていない場合は、ダウンロードとデプロイの手順を [AI Model Center](https://docs.ardge.com/ja/guide/use-ai/ai-model-center) で確認してください。

## 必要なもの

呼び出しには次の 3 つの値が必要です。

<table>
<thead>
  <tr>
    <th>
      値
    </th>
    
    <th>
      内容
    </th>
    
    <th>
      入手先
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Model API Endpoint
      </strong>
    </td>
    
    <td>
      ARX モデルゲートウェイの URL
    </td>
    
    <td>
      AI Model Center の <strong>
        Home
      </strong>
      
       ページ、または <strong>
        API Key › API Endpoint
      </strong>
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        API Key
      </strong>
    </td>
    
    <td>
      呼び出しを認証する資格情報
    </td>
    
    <td>
      AI Model Center の <strong>
        API Key
      </strong>
      
       ページ（ご自身で作成します）
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Model ID
      </strong>
    </td>
    
    <td>
      リクエストの <code>
        model
      </code>
      
       フィールドに渡す識別子
    </td>
    
    <td>
      <strong>
        Home
      </strong>
      
       ページ、<strong>
        API Key › API Endpoint
      </strong>
      
      、または <strong>
        Model Instances
      </strong>
    </td>
  </tr>
</tbody>
</table>

## ステップ 1: 3 つの値を取得する

### モデル API エンドポイント

AI Model Center の **Home** ページ、または **API Key › API Endpoint** で確認します。

<note>

**<API_ENDPOINT> には /ai/v1 が含まれます：**

ARX の画面に表示されるエンドポイントの末尾は `/ai/v1` です（例: `http://192.168.1.100/ai/v1`）。以下の各例では、そこにそれぞれのパスを追加しています。

</note>

### API キー

1. AI Model Center の **API Key** ページに移動します
2. **Add API Key** をクリックします
3. 各項目に沿って設定を完了します。キーの有効期限や、アクセスを許可するモデルを指定できます
4. 生成されたキーをコピーします

<tip>

**API キーはアクセス制御も兼ねます：**

作成時に選択したモデルの範囲が、そのキーの権限範囲になります。アプリケーションごとに別のキーを作成しておけば、1 つを無効化しても他に影響しません。

</tip>

### モデル ID

**Home** ページ、**API Key › API Endpoint** ページ、**Model Instances** ページのいずれにも、モデルの **Instance Name** が表示されます。この文字列が、リクエストの `model` フィールドに渡すモデル ID です。

## 2 つの API 形式の違い

同じエンドポイントとキーが、どちらの形式でも使えます。異なるのは次の点です。

<table>
<thead>
  <tr>
    <th>
      
    </th>
    
    <th>
      OpenAI API 形式
    </th>
    
    <th>
      Claude API 形式
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      リクエストパス
    </td>
    
    <td>
      <code>
        <API_ENDPOINT>/chat/completions
      </code>
    </td>
    
    <td>
      <code>
        <API_ENDPOINT>/messages
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      認証ヘッダー
    </td>
    
    <td>
      <code>
        Authorization: Bearer <YOUR_API_KEY>
      </code>
    </td>
    
    <td>
      <code>
        x-api-key: <YOUR_API_KEY>
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        max_tokens
      </code>
    </td>
    
    <td>
      任意
    </td>
    
    <td>
      必須
    </td>
  </tr>
  
  <tr>
    <td>
      システムプロンプトの指定場所
    </td>
    
    <td>
      <code>
        messages
      </code>
      
       配列内の <code>
        role
      </code>
      
       が <code>
        system
      </code>
      
       の要素
    </td>
    
    <td>
      独立した <code>
        system
      </code>
      
       フィールド
    </td>
  </tr>
  
  <tr>
    <td>
      応答テキストの位置
    </td>
    
    <td>
      <code>
        choices[0].message.content
      </code>
    </td>
    
    <td>
      <code>
        content
      </code>
      
       配列内の <code>
        text
      </code>
      
       ブロック
    </td>
  </tr>
  
  <tr>
    <td>
      SDK の <code>
        base_url
      </code>
    </td>
    
    <td>
      表示されたエンドポイントを<strong>
        そのまま
      </strong>
      
      使用
    </td>
    
    <td>
      エンドポイント末尾の <code>
        /v1
      </code>
      
       を<strong>
        削除
      </strong>
    </td>
  </tr>
</tbody>
</table>

アプリケーションの既存 SDK が使っている形式を選んでください。OpenAI を呼び出しているなら OpenAI 形式、Claude を呼び出しているなら Claude 形式のままで構いません。いずれの場合も、アプリケーションのロジックを変更する必要はありません。

## ステップ 2: cURL で最初のリクエストを送る

始める前に、3 つのプレースホルダーをステップ 1 で取得した値に置き換えてください: `<API_ENDPOINT>`、`<YOUR_API_KEY>`、`<MODEL_ID>`。

### 利用可能なモデルを一覧表示する

まずこれを実行して、キーとエンドポイントの両方が正しいことを確認します。

```bash
curl <API_ENDPOINT>/models \
  -H "Authorization: Bearer <YOUR_API_KEY>"
```

返される一覧に、デプロイ済みのモデルが表示されるはずです。

### OpenAI API 形式

```bash
curl <API_ENDPOINT>/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -d '{
    "model": "<MODEL_ID>",
    "messages": [
      {"role": "user", "content": "Explain on-premises model deployment in one sentence."}
    ]
  }'
```

呼び出しが成功すると、次のような応答が返り、モデルの出力は `choices[0].message.content` に入ります。

```json
{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "model": "<MODEL_ID>",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "On-premises model deployment means running an AI model on your own hardware, so your data never leaves for the cloud."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 21, "completion_tokens": 35, "total_tokens": 56 }
}
```

### Claude API 形式

認証ヘッダーとリクエストパスの両方が OpenAI 形式と異なり、`max_tokens` が必須です。

```bash
curl <API_ENDPOINT>/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: <YOUR_API_KEY>" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "<MODEL_ID>",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Explain on-premises model deployment in one sentence."}
    ]
  }'
```

## ステップ 3: Python SDK からモデルを呼び出す

### OpenAI API 形式

パッケージをインストールします。

```bash
pip install openai
```

```python
import os
from openai import OpenAI

client = OpenAI(
    base_url=os.environ["ARX_ENDPOINT"],  # ← 変更点 1: ARX デバイスを指定します
    api_key=os.environ["ARX_API_KEY"],    # ← 変更点 2: API キー
)

response = client.chat.completions.create(
    model=os.environ["ARX_MODEL_ID"],     # ← 変更点 3: モデル ID
    messages=[
        {"role": "system", "content": "You are a friendly technical assistant. Keep answers short and precise."},
        {"role": "user", "content": "Explain on-premises model deployment in one sentence."},
    ],
)

print(response.choices[0].message.content)
```

すでに OpenAI を呼び出しているアプリケーションであれば、ロジックの変更は不要です。変更するのは、上記で示した 3 つの値だけです。

<warning>

**base_url の末尾に注意してください：**

OpenAI SDK の `base_url` には、表示されたエンドポイント（末尾 `/ai/v1`）をそのまま指定します。`/chat/completions` は SDK 側が自動で付加します。

</warning>

### Claude API 形式

パッケージをインストールします。

```bash
pip install anthropic
```

```python
import os
import anthropic

client = anthropic.Anthropic(
    base_url=os.environ["ARX_ENDPOINT"].removesuffix("/v1"),  # ← 変更点 1: ARX デバイスを指定します
    api_key=os.environ["ARX_API_KEY"],                        # ← 変更点 2: API キー
)

message = client.messages.create(
    model=os.environ["ARX_MODEL_ID"],                         # ← 変更点 3: モデル ID
    max_tokens=1024,                                          # Claude 形式では必須です
    system="You are a friendly technical assistant. Keep answers short and precise.",
    messages=[
        {"role": "user", "content": "Explain on-premises model deployment in one sentence."},
    ],
)

for block in message.content:
    if block.type == "text":
        print(block.text)
```

<warning>

**Claude SDK の base_url では末尾の /v1 を削除します：**

Anthropic SDK は `/v1/messages` を自動で付加します。OpenAI SDK とは逆の挙動です。

</warning>

## 公式 API ドキュメント

全フィールドのリファレンスは、各提供元のドキュメントを参照してください。

- OpenAI API: [https://developers.openai.com/api/docs](https://developers.openai.com/api/docs)
- Claude API: [https://platform.claude.com/docs/en/api/overview](https://platform.claude.com/docs/en/api/overview)


## Sitemap

See the full [sitemap](https://docs.ardge.com/sitemap.md) for all pages.
