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

# クイック統合

> EvoLink で画像、動画、テキストモデルをすばやく呼び出す

# クイック統合

このガイドでは、数分で EvoLink の最初の呼び出しを完了できます。マルチモーダル処理は非同期タスクを使用し、テキストモデルはチャットやコーディングツール向けの同期 Messages API を使用します。

<CardGroup cols={3}>
  <Card title="画像生成" icon="image" href="/ja/api-manual/image-series/gpt-image-2/gpt-image-2-image-generation">
    GPT Image 2 で画像生成タスクを作成し、タスク API から結果を取得します。
  </Card>

  <Card title="動画生成" icon="video" href="/ja/api-manual/video-series/seedance2.0/seedance-2.0-overview">
    Seedance 2.0 でテキストから動画、画像から動画、参照から動画のタスクを作成します。
  </Card>

  <Card title="テキスト生成" icon="comments" href="/ja/api-manual/language-series/claude/claude-messages-api">
    Claude Messages API を使用して、同期的にテキスト応答を取得します。
  </Card>
</CardGroup>

## 準備

<Steps>
  <Step title="API Key を作成">
    [EvoLink ダッシュボード](https://evolink.ai/dashboard/keys)を開き、API Key を作成して安全に保存します。
  </Step>

  <Step title="Base URL を選択">
    画像、動画、音声などのマルチモーダルタスクには `https://api.evolink.ai` を使用します。テキストモデルには `https://direct.evolink.ai` を使用します。
  </Step>

  <Step title="リクエストを送信">
    マルチモーダル API はまずタスク ID を返します。テキスト API はモデル応答を直接返します。
  </Step>
</Steps>

<Warning>
  API Key はアカウントのリソースを呼び出せます。サーバー側または安全な環境変数にのみ保存してください。フロントエンドコード、公開リポジトリ、クライアントパッケージにキーを置かないでください。
</Warning>

## リクエストフロー

マルチモーダルタスクは同じ流れで処理されます：

<CardGroup cols={3}>
  <Card title="1. タスクを送信" icon="paper-plane">
    画像、動画、音声エンドポイントを呼び出し、レスポンスの `id` フィールドでタスク ID を受け取ります。
  </Card>

  <Card title="2. ステータスを確認" icon="chart-line">
    `GET /v1/tasks/{task_id}` で `pending`、`processing`、`completed`、`failed` を確認します。
  </Card>

  <Card title="3. 結果を取得" icon="download">
    タスク完了後、`results` フィールドから生成ファイルの URL を読み取ります。
  </Card>
</CardGroup>

<Note>
  生成された画像や動画の URL には通常有効期限があります。本番環境では、完了した結果をできるだけ早くダウンロードして自社ストレージに保存してください。
</Note>

## 画像生成

GPT Image 2 で画像生成タスクを作成します：

```bash theme={null}
curl -X POST https://api.evolink.ai/v1/images/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "夕暮れの未来都市のスカイラインを映画的な広角ショットで描写",
    "size": "16:9",
    "resolution": "4K",
    "quality": "high",
    "n": 1
  }'
```

レスポンスにはタスクオブジェクトが返ります：

```json theme={null}
{
  "id": "task-unified-1757156493-imcg5zqt",
  "object": "image.generation.task",
  "model": "gpt-image-2",
  "status": "pending",
  "progress": 0,
  "task_info": {
    "can_cancel": true,
    "estimated_time": 100
  }
}
```

タスクステータスを確認します：

```bash theme={null}
curl https://api.evolink.ai/v1/tasks/task-unified-1757156493-imcg5zqt \
  -H "Authorization: Bearer YOUR_API_KEY"
```

タスクが完了すると、結果は `results` 配列に入ります：

```json theme={null}
{
  "id": "task-unified-1757156493-imcg5zqt",
  "object": "image.generation.task",
  "model": "gpt-image-2",
  "status": "completed",
  "progress": 100,
  "results": [
    "https://example.com/generated-image.png"
  ]
}
```

## 動画生成

Seedance 2.0 でテキストから動画のタスクを作成します：

```bash theme={null}
curl -X POST https://api.evolink.ai/v1/videos/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-text-to-video",
    "prompt": "葉の上にいる緑色のグラスフロッグをマクロ撮影し、焦点が透明な腹部へ移り、赤い心臓が規則的に鼓動している様子。",
    "duration": 8,
    "quality": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }'
```

動画タスクも同じタスク API で確認します：

```bash theme={null}
curl https://api.evolink.ai/v1/tasks/YOUR_VIDEO_TASK_ID \
  -H "Authorization: Bearer YOUR_API_KEY"
```

<Tip>
  画像から動画、または複数参照による動画生成が必要な場合は、[Seedance 2.0 全パラメータガイド](/ja/api-manual/video-series/seedance2.0/seedance-2.0-overview)から確認してください。
</Tip>

## テキスト生成

Claude テキストモデルでは `https://direct.evolink.ai` と `/v1/messages` エンドポイントを使用します：

```bash theme={null}
curl -X POST https://direct.evolink.ai/v1/messages \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-5-20250929",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": "EvoLink の価値を3文で紹介してください"
      }
    ]
  }'
```

テキスト API は同期的にメッセージオブジェクトを返します：

```json theme={null}
{
  "id": "msg_xxx",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4-5-20250929",
  "content": [
    {
      "type": "text",
      "text": "EvoLink は統一された AI サービスゲートウェイを提供します..."
    }
  ],
  "stop_reason": "end_turn"
}
```

## Python 例

次の例は、画像タスクを送信し、ステータスをポーリングし、最終結果を取得する流れです：

```python theme={null}
import os
import time
import requests

API_KEY = os.environ["EVOLINK_API_KEY"]
BASE_URL = "https://api.evolink.ai"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
}


def create_image_task(prompt: str) -> str:
    response = requests.post(
        f"{BASE_URL}/v1/images/generations",
        headers=headers,
        json={
            "model": "gpt-image-2",
            "prompt": prompt,
            "size": "1:1",
            "quality": "high",
        },
        timeout=30,
    )
    response.raise_for_status()
    return response.json()["id"]


def wait_for_task(task_id: str, timeout_seconds: int = 300):
    started_at = time.time()

    while time.time() - started_at < timeout_seconds:
        response = requests.get(
            f"{BASE_URL}/v1/tasks/{task_id}",
            headers={"Authorization": f"Bearer {API_KEY}"},
            timeout=30,
        )
        response.raise_for_status()
        task = response.json()

        if task["status"] == "completed":
            return task["results"]
        if task["status"] == "failed":
            raise RuntimeError(task.get("error", "Task failed"))

        time.sleep(5)

    raise TimeoutError("Task timed out")


task_id = create_image_task("白い背景と柔らかなスタジオ照明のクリーンな商品ポスター")
results = wait_for_task(task_id)
print(results[0])
```

## リクエスト頻度制限

EvoLink のリクエスト頻度制限はモデル単位で設定されます。

RPM、同時実行数、タスク送信制限はモデルによって異なる場合があります。実際の制限は、モデルタイプ、上流サービスの容量、アカウントレベル、リアルタイムの可用性によって決まります。軽量なテキストモデルは通常より高いリクエスト頻度に対応できますが、画像や動画などの生成モデルはタスク時間が長く、上流リソースの消費も大きいため、制限が低めになる場合があります。

非同期生成モデルでは、API が成功レスポンスを返した時点ではタスクが受け付けられた、または作成されたことを示すだけで、完了を意味しません。高並列の業務ではサーバー側でキューを実装し、タスク照会 API またはコールバックで最終結果を取得することを推奨します。

HTTP 429 エラーが継続して発生する場合、またはより高い RPM や同時実行制限が必要な場合は、[support@evolink.ai](mailto:support@evolink.ai) までご連絡ください。実際の利用シナリオと上流容量に基づいて評価します。

## 本番環境の推奨事項

<CardGroup cols={2}>
  <Card title="キー管理" icon="shield">
    API Key は環境変数またはシークレット管理サービスに保存し、環境ごとに別のキーを使用します。
  </Card>

  <Card title="タスクポーリング" icon="clock">
    タスクタイプに応じて適切なポーリング間隔を設定します。画像タスクはやや高頻度、動画タスクは低頻度が適しています。
  </Card>

  <Card title="エラー処理" icon="server">
    `failed` 状態と HTTP エラーを処理し、頻度制限、残高不足、パラメータエラーに明確な対応を用意します。
  </Card>

  <Card title="結果保存" icon="download">
    結果 URL には有効期限があります。本番環境では完了ファイルを自社ストレージへ保存してください。
  </Card>
</CardGroup>

## 次のステップ

<CardGroup cols={3}>
  <Card title="画像 API" icon="image" href="/ja/api-manual/image-series/gpt-image-2/gpt-image-2-image-generation">
    GPT Image 2 のパラメータ、例、レスポンス構造を確認します。
  </Card>

  <Card title="動画 API" icon="video" href="/ja/api-manual/video-series/seedance2.0/seedance-2.0-overview">
    Seedance 2.0 のテキストから動画、画像から動画、参照から動画の機能を確認します。
  </Card>

  <Card title="タスク管理" icon="list-check" href="/ja/api-manual/task-management/get-task-detail">
    タスクステータス照会、結果フィールド、エラー構造を確認します。
  </Card>
</CardGroup>
