このソリューションは、ドキュメントやデータベースに保存されているコンテキスト知識をテキスト埋め込みに変換し、ベクトル ストアに保存するパイプラインです。大規模言語モデル (LLM) で構築されたアプリケーションは、ベクトル ストアで類似性検索を実行して、応答を生成する前にコンテキストに関する知識を取得できます。この手法は検索拡張生成 (RAG) として知られており、応答の品質と精度を向上させるためによく使用されます。
運用環境で使用する前に構成を確認して変更します。現在の構成は、さらなる検討と調整なしに運用環境で使用しないでください。バックアップやマルチ AZ の無効化など、コストを節約するために多くのアンチパターンが採用されています。
発生するコストに注意してください。このソリューションは費用対効果が高くなるように開発されていますが、発生するコストに留意してください。
このリポジトリのクローンを作成します。
AWS アカウントに「EC2DefaultKeyPair」という名前の EC2 キー ペアを作成します。
依存関係をインストールします。
npm install
cdk bootstrap
Lambda 関数とその依存関係をパッケージ化します。
sh prepare-lambda-package.sh
.prepare-lambda-package.ps1
CDK スタックをデプロイします。
cdk deploy --all --require-approval never
S3 バケットにデータをアップロードするには 2 つの方法があります。
(a) スタックの 1 つによって作成された S3 バケットに、何らかのコンテンツ (sample.txt が例) を含む .txt ファイルをアップロードします。
(b) AWS マネジメントコンソールで DMS レプリケーションタスクを開始します。ソース データベースのデータは S3 バケットにレプリケートされ、.csv ファイルに保存されます。
Lambda 関数は、コンテンツのテキスト埋め込みを .txt / .csv ファイルに作成し、ベクター ストアに保存します。
要塞ホストに接続します (SSH またはインスタンス接続)。次のコマンドを実行して (パスワードを入力して) 認証します。認証情報は、AWS Secrets Manager の「text-embeddings-pipeline-vector-store」シークレットにあります。
psql --port=5432 --dbname=postgres --username=postgres --host= < RDS instance DNS name >
dt
実行してデータベース テーブルを一覧表示します。プレフィックス「langchain」で始まる名前のテーブルは、LangChain が埋め込みを作成して保存するときに、LangChain によって自動的に作成されます。 List of relations
Schema | Name | Type | Owner
--------+-------------------------+-------+----------
public | langchain_pg_collection | table | postgres
public | langchain_pg_embedding | table | postgres
public | upsertion_record | table | postgres
(3 rows)
ドキュメントと埋め込みは「langchain_pg_embedding」テーブルに保存されます。次のコマンドを実行すると、切り捨てられた値 (実際の値が長すぎる) を確認できます。
SELECT embedding::varchar(80) FROM langchain_pg_embedding;
embedding
----------------------------------------------------------------------------------
[-0.005340576,-0.61328125,0.13769531,0.7890625,0.4296875,-0.13671875,-0.01379394 ...
[0.59375,-0.23339844,0.45703125,-0.14257812,-0.18164062,0.0030517578,-0.00933837 ...
(2 rows)
SELECT document::varchar(80) FROM langchain_pg_embedding;
document
----------------------------------------------------------------------------------
What is text embeddings pipeline?,Text embeddings pipeline allows you to create ...
AWS Health provides improved visibility into planned lifecycle events ...
(2 rows)
cdk destroy --all
詳細については、「貢献」を参照してください。
このライブラリは、MIT-0 ライセンスに基づいてライセンスされています。 LICENSE ファイルを参照してください。