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

# Azure AI Search

> Azure AI Searchナレッジベースをテキスト・ベクトル・ハイブリッド検索

## 概要

Azure AI Searchツールを使用すると、Jinba Flowワークスペースに登録されたAzure AI Searchの外部ナレッジベースを検索できます。テキスト(キーワード)検索、ベクトル(セマンティック)検索、ハイブリッド検索に対応しています。

## 主な機能

* `AZURE_AI_SEARCH`
  * ワークスペースに登録されたAzure AI Search外部ナレッジベースを検索します。
  * 主な入力: `query`(検索クエリ文字列)、`externalKbId`(検索対象の外部ナレッジベース。ワークスペースから選択)、`indexName`(そのナレッジベース内のインデックス)
  * `searchType` で検索方式を選択できます: `text`(キーワード検索)、`vector`(セマンティック検索)、`hybrid`(テキスト+ベクトル、デフォルト)
  * 取得件数の制御: `answerTotal`(回答の参考にする検索文書件数、デフォルト5、最大1000)、`vectorRetrievalCount`(ハイブリッド検索時のベクトル検索取得件数、デフォルト5、最大1000)、`skip`(ページネーション用オフセット)
  * `filter`(ODataフィルター式)と `select`(返却するフィールド)で結果を絞り込めます。
  * 結果には `id`、`score`、`content`、`filename`、ソースファイルの直接ダウンロードURL(`downloadUrl`)、`metadata` に加えて、`count` と `totalResults` が含まれます。

## 認証

このツールはJinba Flow APIを経由して検索を実行するため、config にはAzureの認証情報ではなく **Jinba FlowワークスペースAPIトークン**(`token`)を設定します。Azure AI Searchへの接続情報自体は、ワークスペースに登録した外部ナレッジベース側で管理されます。

**注意**: APIトークンは機密情報として扱い、公開リポジトリにコミットしないでください。

## 使用例

### 例: ナレッジベースのハイブリッド検索

```yaml theme={null}
- id: search_kb
  tool: AZURE_AI_SEARCH
  config:
    - name: token
      value: "{{secrets.JINBA_WORKSPACE_TOKEN}}"
  input:
    - name: externalKbId
      value: "YOUR_EXTERNAL_KB_ID"
    - name: indexName
      value: "product-manuals"
    - name: query
      value: "デバイスを工場出荷状態にリセットする方法は?"
    - name: searchType
      value: hybrid
    - name: answerTotal
      value: 5
```

### 例: フィルター付き検索の結果をLLMで回答生成

```yaml theme={null}
- id: search_docs
  tool: AZURE_AI_SEARCH
  config:
    - name: token
      value: "{{secrets.JINBA_WORKSPACE_TOKEN}}"
  input:
    - name: externalKbId
      value: "YOUR_EXTERNAL_KB_ID"
    - name: indexName
      value: "support-articles"
    - name: query
      value: "エンタープライズプランの保証ポリシー"
    - name: searchType
      value: text
    - name: filter
      value: "category eq 'policy'"

- id: generate_answer
  tool: OPENAI_INVOKE
  input:
    - name: prompt
      value: |
        以下のコンテキストのみを使って質問に回答してください。

        コンテキスト:
        {{steps.search_docs.result.results[0].content}}

        質問: エンタープライズプランの保証ポリシーは何ですか?
```

## 注意事項

* 外部ナレッジベースとそのインデックスは、事前にワークスペースへ登録しておく必要があります。`externalKbId` と `indexName` は登録済みのものから選択します。
* `answerTotal` と `vectorRetrievalCount` の上限は1000です。
* `select` を文字列で渡す場合はJSON配列形式(例: `'["title", "content"]'`)である必要があります。
* このツールはワークスペースのコンテキストで実行されます。ワークスペース情報が取得できない場合はエラーになります。
