Oracle Database内でのファイルから埋込みへの変換
単一ステップの文を使用して、データベースに格納されているベクトル埋込みモデルにアクセスし、PDFドキュメントからベクトル埋込みを直接抽出します。
ここでは、単一のCREATE TABLE
文で一連のDBMS_VECTOR_CHAIN.UTL
関数をコールして、ファイルからテキスト、チャンク、埋込みへの変換を実行します。
次の文は、非構造化テキスト・チャンクおよび対応するベクトル埋込みからリレーショナル表(doc_chunks
)を作成します。
CREATE TABLE doc_chunks as
(select dt.id doc_id, et.embed_id, et.embed_data, to_vector(et.embed_vector) embed_vector
from
documentation_tab dt,
dbms_vector_chain.utl_to_embeddings(
dbms_vector_chain.utl_to_chunks(dbms_vector_chain.utl_to_text(dt.data), json('{"normalize":"all"}')),
json('{"provider":"database", "model":"doc_model"}')) t,
JSON_TABLE(t.column_value, '$[*]' COLUMNS (embed_id NUMBER PATH '$.embed_id', embed_data VARCHAR2(4000) PATH '$.embed_data', embed_vector CLOB PATH '$.embed_vector')) et
);
連続する各関数は、前の関数の出力に依存するため、ここではチェーンの順序が重要です。まず、utl_to_text
(dt.data
列)からの出力がutl_to_chunks
の入力として渡され、次にutl_to_chunks
からの出力がutl_to_embeddings
の入力として渡されます。
完全な例として、「データベースにアップロードされたベクトル埋込みモデルを使用によるSQLクイック・スタート」を実行します。ここでは、Oracle Databaseドキュメント・ブックをdoc_chunks
表に埋め込み、ベクトル索引を使用して類似検索を実行する方法を確認できます。
親トピック: チャンク化と埋込みの実行