🗃️ Data Processorバージョンの作成

概念の概要

🗃️ Data Processor は、📥 Data Ingestor 宛先UC ボリュームからの非構造化ドキュメントを解析、チャンク化して、 Deltaテーブルに保存され、 Unity Catalogベクトル インデックスに同期されるチャンクに埋め込むデータ パイプラインです。 🗃️ Data Processorは 1+ 📥 Data Ingestorに関連付けられ、任意の数の🔍 Retrieverに関連付けることができます。

🗃️ Data Processorは、次のもので構成されます。

  1. の構成は、 data_processors セクション rag-config.yml

  2. コードは app-directory/src/process_data.py

文書を解析してチャンクするには、LangChain TextSplittersの使用を含め、任意のカスタムPythonコードを定義できます。

さまざまな設定での実験を簡略化するために、Databricks では、rag-config.ymlkey:value configuration設定を使用して🗃️ Data Processorパラメーター化することをお勧めします。既定では、Databricks は chunk_sizechunk_overlap 構成を提供しますが、任意のカスタム パラメーターを作成できます。

ドキュメントを埋め込むには、 rag-config.ymlで埋め込みモデルを設定します。 この埋め込みモデルは、 トークンごとの支払い 基本APIs モデル、プロビジョニングされたスループット 基本モデルAPIs 、または 「llm/v1/embeddings」 タスクをサポートする 外部モデル エンドポイントにすることができます。

ダウンストリームの 🔍 Retriever🔗 Chainは、この埋め込みモデルにアクセスするための 🗃️ Data Processorの構成を参照します。

ヒント

🚧 ロードマップ 🚧 RAGアプリケーションごとに複数の 🗃️ Data Processor をサポートします。 v2024-01-19では、RAGアプリケーションごとに1つの 🗃️ Data Processor しか作成できません。

データフロー

伝説

手順

  1. IDE/コードエディタで rag-config.yml を開きます。

  2. data_processors 構成を編集します。

    data_processors:
      - name: spark-docs-processor
        description: Parse, chunk, embed Spark documentation
        # explicit link to the data ingestors that this processor uses.
        data_ingestors:
          - name: spark-docs-ingestor
        # Optional. The Unity Catalog table where the embedded, chunked docs are stored.
        # If not specified, will default to `{name}__embedded_docs__{version_number}`
        # If specified, will default to `{provided_value}__{version_number}`
        destination_table:
          name: databricks_docs_chunked
        destination_vector_index:
          databricks_vector_search:
            # Optional. The Unity Catalog table where the embedded, chunked docs are stored.
            # If not specified, will default to `{name}__embedded_docs_index__{version_number}`
            # If specified, will default to `{provided_value}__{version_number}`
            index_name: databricks_docs_index
        embedding_model:
          endpoint_name: databricks-bge-large-en
          instructions:
            embedding: ""
            query: "Represent this sentence for searching relevant passages:"
        # You can specify arbitrary key-value pairs as `configurations`
        configurations:
          chunk_size: 500
          chunk_overlap: 50
    
  3. src/my_rag_builder/document_processor.pyを編集して、デフォルトのコードを変更するか、カスタムコードを追加します。

    注:

    このファイルは、コードの実行が完了した後、次の列が含まれている限り、適切と思われる方法で変更できます destination_table.name

    • chunk_id - チャンクの一意の識別子 (通常は UUID)。

    • doc_uri - ソースドキュメントの一意の識別子 (URL など)。

    そして、このデータは databricks_vector_search.index_nameに同期されます。

  4. Databricks ノートブックでdocument_processor.pyファイルを実行するか、 Databricks Connectを使用してプロセッサをテストできます。