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

# クイックスタート

AI Search は、単一の Novita ゲートウェイを通じて、アプリケーションに Web へのライブアクセスを提供します。各検索プロバイダーに個別に登録し、別々のキーを管理し、異なる認証方式を学ぶ代わりに、1 つの API キーで Novita を呼び出し、リクエストごとに使用したい検索エンジンを選択できます。

このガイドでは、数分でゼロの状態から動作する Web 検索まで進めます。単一の Novita API キーで認証し、検索を実行し、セットアップを変更せずにプロバイダーを切り替える方法を確認します。

## 始める前に

1. Novita アカウントと API キー。[API Key Management](/docs/ja/api-reference/basic-authentication) を参照して作成してください。
2. 以下の例で使用できるように、キーをエクスポートします。`NOVITA_API_KEY` は手順 1 の Novita API キーそのものです。同じキーがすべてのプロバイダーで機能します。

```bash theme={"system"}
export NOVITA_API_KEY="<Your API Key>"
```

すべての AI Search エンドポイントは、同じベース URL と認証を共有します。

* **ベース URL:** `https://api.novita.ai`
* **認証ヘッダー:** `Authorization: Bearer <api_key>`
* **コンテンツタイプ:** `application/json`

## 初めての検索

以下の例では Exa 検索を実行します。各リクエストは、ルートと JSON 本文の組み合わせだけです。

<CodeGroup>
  ```bash curl theme={"system"}
  curl -X POST 'https://api.novita.ai/v3/exa/search' \
    -H "Authorization: Bearer ${NOVITA_API_KEY}" \
    -H 'Content-Type: application/json' \
    -d '{
      "query": "latest open-source LLM releases",
      "numResults": 5
    }'
  ```

  ```python Python theme={"system"}
  import os
  import requests

  resp = requests.post(
      "https://api.novita.ai/v3/exa/search",
      headers={
          "Authorization": f"Bearer {os.environ['NOVITA_API_KEY']}",
          "Content-Type": "application/json",
      },
      json={
          "query": "latest open-source LLM releases",
          "numResults": 5,
      },
  )
  resp.raise_for_status()

  for result in resp.json()["results"]:
      print(result["title"], "-", result["url"])
  ```

  ```javascript JavaScript theme={"system"}
  const resp = await fetch("https://api.novita.ai/v3/exa/search", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.NOVITA_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      query: "latest open-source LLM releases",
      numResults: 5,
    }),
  });

  const data = await resp.json();
  for (const result of data.results) {
    console.log(`${result.title} - ${result.url}`);
  }
  ```
</CodeGroup>

## 検索エンジンの切り替え

検索エンジンを切り替えるには、プロバイダーに合わせて **route** と **request body** を変更します。キー、ホスト、認証ヘッダーは同じままです。Tavily で同じ意図を表すと次のようになります。

```bash theme={"system"}
curl -X POST 'https://api.novita.ai/v3/tavily/search' \
  -H "Authorization: Bearer ${NOVITA_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "latest open-source LLM releases",
    "max_results": 5
  }'
```

小さな違いに注目してください。Exa は `numResults` を使用し、Tavily は `max_results` を使用します。各プロバイダーの完全なパラメーター一覧は、それぞれの API リファレンスにあります。

## 独自のプロバイダー SDK を使用する

AI Search はパススルー統合であるため、ベース URL を上書きできる限り、プロバイダーの公式 SDK をそのまま使用できます。対応するゲートウェイルートを指定し、Novita キーを渡してください。たとえば Exa Python SDK は `base_url` を受け取ります。

```python theme={"system"}
import os
from exa_py import Exa

exa = Exa(
    api_key=os.environ["NOVITA_API_KEY"],
    base_url="https://api.novita.ai/v3/exa",
)

results = exa.search("latest open-source LLM releases", num_results=5)
for r in results.results:
    print(r.title, "-", r.url)
```

<Note>
  SDK がベース URL 設定を公開していない場合は、上記のように任意の HTTP クライアントで REST エンドポイントを直接呼び出してください。この方法は常に機能します。
</Note>

## 仕組み

Novita は、各プロバイダーをパススルーエンドポイントとして公開します。リクエストは Novita API キーで認証され、その後、プロバイダー固有のリクエスト形式とレスポンス形式を使用して上流プロバイダーへ転送されます。

* **1 つの認証情報。** すべてのプロバイダーで、既存の Novita API キーを `Bearer <api_key>` として使用します。
* **プロバイダー ネイティブの本文。** リクエストとレスポンスの形式は上流プロバイダーと一致するため、プロバイダー自身の例やリクエスト形式をそのまま利用できます。ベース URL を Novita に向けるだけです。
* **リクエストごとにエンジンを切り替え。** プロバイダーを切り替えるには、認証やアカウント設定ではなく、ルートと本文を変更します。

これは、モデルが学習していない情報を必要とする場合に役立ちます。たとえば、最新ニュース、動きの速いドキュメント、価格、オープン Web 上に存在するあらゆる事実などです。[LLM API](/docs/ja/guides/llm-api) と組み合わせることで、検索拡張生成 (RAG)、リサーチエージェント、Web に基づくアシスタントを構築できます。

## 対応プロバイダー

<CardGroup cols={2}>
  <Card title="Exa" icon="brain">
    組み込みのコンテンツ抽出と回答合成を備えた、ニューラルおよびセマンティック Web 検索です。調査、意味に基づくページ検索、構造化された出力に強みがあります。
  </Card>

  <Card title="Tavily" icon="bolt">
    サイトのクロールとマッピングを備えた、高速で LLM 向けに最適化された検索および取得です。ニュースや金融トピック、抽出パイプライン、低レイテンシのルックアップに強みがあります。
  </Card>
</CardGroup>

## 機能一覧

| 機能       | 内容                            |                          Exa                          |                         Tavily                         |
| -------- | ----------------------------- | :---------------------------------------------------: | :----------------------------------------------------: |
| 検索       | クエリから関連ページを見つける               |   [Search](/docs/ja/api-reference/model-apis-exa-search)   |  [Search](/docs/ja/api-reference/model-apis-tavily-search)  |
| コンテンツ抽出  | URL からクリーンなテキスト/metadataを抽出する | [Contents](/docs/ja/api-reference/model-apis-exa-contents) | [Extract](/docs/ja/api-reference/model-apis-tavily-extract) |
| 回答合成     | 結果から引用付きの回答を生成する              |   [Answer](/docs/ja/api-reference/model-apis-exa-answer)   |                   `include_answer` 経由                  |
| サイトクロール  | リンクをたどって多数のページを収集する           |                           —                           |   [Crawl](/docs/ja/api-reference/model-apis-tavily-crawl)   |
| サイトマッピング | サイト内で到達可能な URL を検出する          |                           —                           |     [Map](/docs/ja/api-reference/model-apis-tavily-map)     |

## エンドポイントリファレンス

| プロバイダー | エンドポイント                                                | ルート                       |
| ------ | ------------------------------------------------------ | ------------------------- |
| Exa    | [Search](/docs/ja/api-reference/model-apis-exa-search)      | `POST /v3/exa/search`     |
| Exa    | [Contents](/docs/ja/api-reference/model-apis-exa-contents)  | `POST /v3/exa/contents`   |
| Exa    | [Answer](/docs/ja/api-reference/model-apis-exa-answer)      | `POST /v3/exa/answer`     |
| Tavily | [Search](/docs/ja/api-reference/model-apis-tavily-search)   | `POST /v3/tavily/search`  |
| Tavily | [Extract](/docs/ja/api-reference/model-apis-tavily-extract) | `POST /v3/tavily/extract` |
| Tavily | [Crawl](/docs/ja/api-reference/model-apis-tavily-crawl)     | `POST /v3/tavily/crawl`   |
| Tavily | [Map](/docs/ja/api-reference/model-apis-tavily-map)         | `POST /v3/tavily/map`     |

## トラブルシューティング

* **400 Bad Request** — パラメーターがプロバイダーのスキーマと一致していません。そのプロバイダーのフィールド名を使用していることを確認してください（例: `numResults` と `max_results`）。
* **429 Too Many Requests** — レート制限に達しました。バックオフして再試行するか、リクエスト量を減らしてください。

完全な一覧については、任意の AI Search [API リファレンス](/docs/ja/api-reference/model-apis-tavily-search) ページの Errors セクションを参照してください。

## 次に進む場所

<Card title="Web-Grounded Answers & RAG" icon="link" href="/docs/ja/guides/ai-search-grounded-answers">
  検索結果を LLM API に渡して、引用付き回答を備えた検索拡張生成 (RAG) パイプラインを構築します。
</Card>
