このリポジトリには、CSVデータセットを照会するために、OpenAIのGPT-4OモデルとPinecone Vectorデータベースを使用して、検索された生成(RAG)フレームワークを使用する方法を示すプロジェクトが含まれています。このプロジェクトでは、CSVファイルのデータからベクトル埋め込みを作成し、Pineconeデータベースに埋め込みを保存し、自然言語クエリを使用してベクトル埋め込みデータを照会します。
目次
導入
前提条件
テスト済みのプラットフォームとパッケージ
使用法
データの摂取と埋め込みの作成
データのクエリ
それがどのように機能するか
ライセンス
このプロジェクトでは、CSVファイルに保存されているデータを照会するための自然言語処理技術の使用を紹介します。 OpenaiのGPT-4モデルとPineconeのVectorデータベースを活用することにより、データの埋め込みを作成し、これらの埋め込みを使用してユーザークエリへの正確な応答を取得できます。
開始する前に、次のことを確認してください。
API統合:OpenAIおよびPineconeと統合するには、これらのプラットフォームのそれぞれのAPIキー、ホスト(Pinecone)情報を取得して構成する必要があります。 OpenaiおよびPinecone APIキーを設定し、Linuxの環境変数としてPineconeホストを設定します。次のLinuxコマンドを使用して、これらの変数をエクスポートします。
openai_api_key = 'your-openai-key'
Pinecone_api_keyをエクスポートする
Pinecone_host = 'Your-Pinecone-host'をエクスポート
OpenAI API:OpenAIモデル「Text-embedding-Ada-002」および「GPT-4O」は、埋め込みの生成に使用され、LLMサポート。有効なAPIキーを備えたOpenAIアカウントを持っていることを確認してください。 Openaiプラットフォーム(https://platform.openai.com/)からAPIキーを取得し、それらを管理できます(https://platform.openai.com/organization/api-keys)。さらに、この例では有料のOpenAIアカウントが必要であるため、アカウントに十分な使用クォータがあることを確認してください。
Pinecone環境(Pinecone Freeアカウント使用https://www.pinecone.io/):1)松ぼっくりインデックスが使用される2)寸法:1536 3)ホストタイプ:サーバーレス。
Centos Linuxリリース8.5.2111。プロジェクト依存関係を分離するための仮想環境(オプションが推奨)を作成します。
Python 3.8.8
パンダ2.0.3
Openai 1.30.3
Pinecone 4.0.0
Numpy 1.24.4
Argparse 1.1
データの摂取と埋め込みの作成
csv_path = "your_csv_file_path" [create-chunks-embeddings-store-vectordb-csv-dataset.py]
pinecone_index_name = "your_pinecone_index_name" [create-chunks-embedings-store-vectordb-csv-dataset.py]
index_name = "your_pinecone_index_name" [query-prompt-for-vector-embeddings.py]
read_csv_data関数の列タイトルを変更して、CSVファイルの列に一致させます。詳細については、 CSVファイルセクションのカスタマイズを参照してください。
ニーズに基づいてOpenai LLMモデルを使用できます。
Model = "GPT-4O"、#GPT-4またはGPT-3.5-ターボまたはその他のOpenAI LLMモデルを使用できます。 [Query-Prompt-for-vector-embeddings.py]
スクリプトを実行してデータを読み取り、埋め込みを生成し、Pineconに保存します
#python create-chunks-embeddings-store-vectordb-csv-dataset.py
データのクエリ
#python query-prompt-for-vector-embeddings.py「ここにあなたのクエリ」
例:python query-prompt-for-vector-embeddings.py「映画xyzのプロットについて教えてください」
次のクエリを入力します(または「終了」するには「出口」と入力してください):この映画はどの年にリリースされましたか?
CSVデータをチャンキングし、ベクトル埋め込みを作成し、Pineconeデータベースに埋め込みを保存します
スクリプト「create-chunks-embeddings-store-vectordb-csv-dataset.py」はCSVファイルを読み取り、関連する列を各行の単一のテキスト文字列に組み合わせます。このテキスト文字列には、各行の列の詳細が含まれています。各行には、個別の情報が含まれています(たとえば、映画の情報など)。次に、各行の組み合わせテキストを使用して、OpenAIのAPIを使用して埋め込みを生成します。ベクトル埋め込みは、松ぼっくりインデックスに保存されます。
OpenaiのGPT-4 LLMを活用します
このプロジェクトは、OpenaiのGPT-4大手言語モデル(LLM)を2つの主要な方法で活用しています。
埋め込みの生成:CSVファイルの各行からのテキストデータは、OpenAIの埋め込みモデル(Text-embedding-ada-002)への入力として使用されます。このモデルは、テキストをテキストの意味的な意味をキャプチャする高次元ベクトル埋め込みに変換します。これらの埋め込みは、効率的な検索のためにPineconeのベクトルデータベースに保存されます。
自然言語クエリ:ユーザーがクエリを送信すると、スクリプトは同じ埋め込みモデルを使用してクエリテキストの埋め込みを生成します。次に、このクエリの埋め込みを使用して、最も意味的に類似したテキストチャンク(CSVファイルからの行)のPinecone Vectorデータベースを検索します。関連するテキストチャンクが取得され、OpenaiのGPT-4モデルに渡され、ユーザーのクエリに対する包括的な文脈的に正確な応答を生成します。
強化された応答のコンテキストを組み合わせます
応答が正確で関連性があることを確認するために、スクリプトは以前のクエリと応答のコンテキストを維持します。このコンテキストは、取得したテキストチャンクと組み合わされて、GPT-4に情報の包括的なビューを提供します。このアプローチは、CSVファイルに提供されるデータに基づいた詳細かつ正確な回答を生成するモデルの能力を高めます。
CSVファイルのカスタマイズ
スクリプトがCSVファイルで正しく動作するようにするには、列「Create-Chunks-embeddings-vectordb-csv-dataset.py」を更新して、CSVファイルの列を一致させます。以下は、関数をカスタマイズする方法の例です。
#usersは、列を使用したい列名のリストに置き換える必要があります - 以下の例
列= ["rank"、 "director"、 "gunre"、 "plot"、 "Actors"、 "Ratings"]#列をCSVファイルの列名に置き換える
このプロジェクトは、Apache 2.0ライセンスの下でライセンスされています。詳細については、ライセンスファイルを参照してください。