Databricks生成AIクックブック - ステップ1: コードレポジトリのクローンと計算資源の作成

[Step 1: Clone code repo & create compute — Databricks Generative AI Cookbook](https://ai-cookbook.io/_images/workflow_poc.png) [2024/6/24時点]の翻訳です。

:::note warn
本書は著者が手動で翻訳したものであり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

> [Databricks生成AIクックブック](https://qiita.com/taka_yayoi/items/36c51bce8f33a70cf204)のコンテンツです。

# ステップ1: コードレポジトリのクローンと計算資源の作成

![](https://ai-cookbook.io/_images/workflow_poc.png)

実装セクションは、Databricksで動作するように設計されたサンプルコードのレポジトリとセットになっています。

お使いのDatabricksワークスペースにサンプルコードをロードし、アプリケーションのグローバル設定を行うためにこれらのステップに従ってください。

:::note info
[**コードレポジトリ**](https://github.com/databricks/genai-cookbook/tree/main/rag_app_sample_code)
[こちら](https://github.com/databricks/genai-cookbook/tree/main/rag_app_sample_code)からこのセクションで参照しているすべてのサンプルコードにアクセスすることができます。
:::

## 要件

1. [サーバレス](https://docs.databricks.com/ja/admin/workspace-settings/serverless.html)とUnity Catalogが有効化されているDatabricksワークスペース
1. 以下のいずれかの[Mosaic AI Vector Search](https://docs.databricks.com/ja/generative-ai/vector-search.html)エンドポイント:
    - 既存エンドポイント
    - 新規エンドポイントを作成する権限 - setupノートブックがこの作業を行なってくれます
1. パース/チャンクされたドキュメントのアウトプットDeltaテーブルと、Vector Searchのインデックスが格納されるUnity Catalogのスキーマ:
    - 既存の[Unity Catalog](https://docs.databricks.com/ja/data-governance/unity-catalog/index.html)と[Schema](https://docs.databricks.com/ja/data-governance/unity-catalog/index.html#the-unity-catalog-object-model)への書き込み権限
    - 新規Unity Catalogとスキーマを作成する権限 - setupノートブックがこの作業を行なってくれます
1. インターネットにアクセスできる[DBR 14\.3\+](https://docs.databricks.com/en/release-notes/runtime/index.html)が稼働している[シングルユーザー](https://docs.databricks.com/ja/compute/configure.html#access-modes)クラスター
    - これらのチュートリアルでは、機械学習ランタイムでは競合するPythonパッケージを使用します
    - 必要なPythonやシステムパッケージのダウンロードにインターネットアクセスが必要です

## 手順

1. [Gitフォルダー](https://docs.databricks.com/ja/repos/repos-setup.html)を用いて、ワークスペースにレポジトリをクローンします。
![](https://ai-cookbook.io/_images/clone_repo.gif)
1. [`rag_app_sample_code/00_global_config`](https://github.com/databricks/genai-cookbook/blob/main/rag_app_sample_code/00_global_config.py)ノートブックを開き、設定を調整します。

    ```py
    # The name of the RAG application.  This is used to name the chain's UC model and prepended to the output Delta Tables + Vector Indexes
    RAG_APP_NAME = 'my_agent_app'
    
    # UC Catalog & Schema where outputs tables/indexs are saved
    # If this catalog/schema does not exist, you need create catalog/schema permissions.
    UC_CATALOG = f'{user_name}_catalog'
    UC_SCHEMA = f'rag_{user_name}'

    ## UC Model name where the POC chain is logged
    UC_MODEL_NAME = f"{UC_CATALOG}.{UC_SCHEMA}.{RAG_APP_NAME}"

    # Vector Search endpoint where index is loaded
    # If this does not exist, it will be created
    VECTOR_SEARCH_ENDPOINT = f'{user_name}_vector_search'

    # Source location for documents
    # You need to create this location and add files
    SOURCE_PATH = f"/Volumes/{UC_CATALOG}/{UC_SCHEMA}/source_docs"
    ```
1. [`01_validate_config_and_create_resources`](https://github.com/databricks/genai-cookbook/blob/main/rag_app_sample_code/01_validate_config_and_create_resources.py)ノートブックを開きます。

:::note info
[POCのデプロイ](https://qiita.com/taka_yayoi/items/917a67a4aafe5cb9896a)ステップに進みます。
:::

- [目次](https://qiita.com/taka_yayoi/items/36c51bce8f33a70cf204#%E7%9B%AE%E6%AC%A1)
- 前のセクション: [前提条件: 要件の収集](https://qiita.com/taka_yayoi/items/810b04093e2546ff78e8)
- 次のセクション: [ステップ2: ステークホルダーのフィードバックを収集するPOCのデプロイ](https://qiita.com/taka_yayoi/items/917a67a4aafe5cb9896a)


### はじめてのDatabricks

[はじめてのDatabricks](https://qiita.com/taka_yayoi/items/8dc72d083edb879a5e5d)

### Databricks無料トライアル

[Databricks無料トライアル](https://databricks.com/jp/try-databricks)