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

# エンベディング API

> CometAPI のエンベディングルートを使用して、セマンティック検索、クラスタリング、レコメンデーション、検索ワークフロー向けのベクトルを作成します。

アプリでセマンティック検索、クラスタリング、レコメンデーション、または検索のためにベクトルが必要な場合は、CometAPI のエンベディングを使用します。テキストを `/v1/embeddings` に送信し、返されたベクトルを保存して、ベクトルデータベースで検索します。

## エンベディングを作成する

[Models page](/ja/overview/models) または [model directory](https://www.cometapi.com/models/) から、エンベディング対応の model ID を使用します。以下の例では、OpenAI 互換の Embeddings API を呼び出します。

<Note>
  これらの例では、プレースホルダー `your-embedding-model-id` を使用しています。リクエストを実行する前に、[Models page](/ja/overview/models) または [model directory](https://www.cometapi.com/models/) で利用可能なエンベディング model ID に置き換えてください。
</Note>

<Tip>
  プレイグラウンドとエンドポイントスキーマを使用するには、[Create embeddings](/api/text/embeddings) を開いてください。
</Tip>

<CodeGroup>
  ```python Python theme={null}
  import os
  import requests

  response = requests.post(
      "https://api.cometapi.com/v1/embeddings",
      headers={
          "Authorization": "Bearer " + os.environ["COMETAPI_KEY"],
          "Content-Type": "application/json",
      },
      json={
          "model": "your-embedding-model-id",
          "input": "CometAPI lets developers use many model providers.",
      },
      timeout=30,
  )

  response.raise_for_status()
  result = response.json()
  print(len(result["data"][0]["embedding"]))
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api.cometapi.com/v1/embeddings", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.COMETAPI_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "your-embedding-model-id",
      input: "CometAPI lets developers use many model providers.",
    }),
  });

  if (!response.ok) {
    throw new Error(await response.text());
  }

  const result = await response.json();
  console.log(result.data[0].embedding.length);
  ```

  ```bash cURL theme={null}
  curl https://api.cometapi.com/v1/embeddings \
    -H "Authorization: Bearer $COMETAPI_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "your-embedding-model-id",
      "input": "CometAPI lets developers use many model providers."
    }'
  ```
</CodeGroup>

## レスポンス例

成功したレスポンスは次のようになります。レスポンスには各 input 項目ごとに 1 つのベクトルが含まれます。以下のベクトルは読みやすさのために短縮しています。

```json theme={null}
{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "index": 0,
      "embedding": [
        -0.0021,
        -0.0491,
        0.0209
      ]
    }
  ],
  "model": "your-embedding-model-id",
  "usage": {
    "prompt_tokens": 10,
    "total_tokens": 10
  }
}
```

## バッチ入力

1 回のリクエストで複数のベクトルが必要な場合は、文字列の配列を送信します。

```bash cURL theme={null}
curl https://api.cometapi.com/v1/embeddings \
  -H "Authorization: Bearer $COMETAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "your-embedding-model-id",
    "input": [
      "Create an API key",
      "Change the base URL",
      "Retry after a rate limit"
    ]
  }'
```

## モデルレコードの例

<Info>
  このモデルカタログレスポンスの例は、`/api/models` のエンベロープと、OpenAI 互換のエンベディングモデルレコードの1つの形を示しています。一部のエンベディングレコードでは `model_type` が空の場合があるため、そのフィールドだけに頼らず、ID とエンドポイント対応でエンベディングモデルを選択してください。
</Info>

```bash cURL theme={null}
curl https://api.cometapi.com/api/models
```

```json theme={null}
{
  "success": true,
  "page": 1,
  "page_size": 20,
  "total": 302,
  "data": [
    {
      "created": 1757904564,
      "id": "your-embedding-model-id",
      "code": "your-embedding-model-id",
      "provider": "ExampleProvider",
      "provider_code": "example",
      "name": "Example embedding model",
      "model_type": "embedding",
      "features": [
        "text-embedding"
      ],
      "endpoints": [
        "openai"
      ],
      "pricing": {
        "currency": "USD / M Tokens",
        "input": 0.1,
        "output": null,
        "per_request": null,
        "per_second": null
      }
    }
  ]
}
```

## よくあるエラー

<AccordionGroup>
  <Accordion title="入力が長すぎる">
    エンベディングする前に、長いドキュメントをチャンクに分割してください。
  </Accordion>

  <Accordion title="間違ったモデルタイプ">
    モデルディレクトリから、エンベディング対応のモデルを選択してください。
  </Accordion>

  <Accordion title="ベクトル次元の不一致">
    1つのベクトルインデックスでは、同じモデルと次元を維持してください。
  </Accordion>

  <Accordion title="API キーがない">
    `Authorization: Bearer $COMETAPI_KEY` を送信してください。
  </Accordion>
</AccordionGroup>

## エラーコードと再試行戦略

<AccordionGroup>
  <Accordion title="400">
    input、model ID、または dimensions の設定が修正されるまでは再試行しないでください。
  </Accordion>

  <Accordion title="401">
    API キーが存在し、有効になるまでは再試行しないでください。
  </Accordion>

  <Accordion title="404">
    再試行する前に、ベース URL、パス、および model ID を確認してください。
  </Accordion>

  <Accordion title="429">
    指数バックオフで再試行し、バッチサイズまたは並行数を減らしてください。
  </Accordion>

  <Accordion title="500 or 503">
    一時的なプロバイダーまたはサービスエラーに対しては、バックオフを入れて再試行してください。
  </Accordion>
</AccordionGroup>

<Tip>
  実装パターンについては、[エラーコードと再試行戦略](/ja/guides/error-codes-and-retry-strategy) と [レート制限と並行性](/ja/guides/rate-limits-and-concurrency) を参照してください。
</Tip>

## 料金とモデルディレクトリ

<CardGroup cols={3}>
  <Card title="モデルページ" icon="list" href="/overview/models">
    ドキュメントで CometAPI がどのように model IDs を公開しているかを確認してください。
  </Card>

  <Card title="モデルディレクトリ" icon="puzzle-piece" href="https://www.cometapi.com/models/">
    利用可能なモデルと機能を確認してください。
  </Card>

  <Card title="料金" icon="tag" href="https://www.cometapi.com/pricing/">
    モデルを呼び出す前に料金を確認してください。
  </Card>
</CardGroup>
