これは、www.gptflix.aiのソースコードです
Openai、Pinecone DB、およびStreamlitを使用してGptflix QAボットを構築します。埋め込みモデルに送信するテキストを準備する方法を学びます。 Pinecone DBにアップロードするために、モデルから返された埋め込みとテキストをキャプチャします。その後、Pinecone DBインデックスをセットアップし、BOTが埋め込みを検索できるようにOpenAI埋め込みをDBにアップロードします。
最後に、retrylidを使用してQAボットフロントエンドチャットアプリをセットアップします。ユーザーがボットに質問をすると、ボットはPinecone DBの映画テキストを検索します。それは、DBのテキストに基づいて映画に関するあなたの質問に答えます。
これは、独自の知識網状システムを構築するための基本的な足場としてのものであり、今のところ非常に基本的です!
このリポジトリには、GPTFlixソースコードと合理化された展開ガイドが含まれています。
このリポジトリは、retrylitでの展開用にセットアップされています。このような環境変数を環境変数に設定する必要があります。
gptflixリポジトリをgithubアカウントにフォークします。
Pinecone.ioでアカウントを設定します
rimtritクラウドにアカウントを設定します
Riremlitで新しいアプリを作成します。 GitHubのレポのフォークにリンクし、アプリをMain実行可能ファイルとして/chat/main.py
に指します。
アプリの設定に移動し、秘密に移動します。このような秘密を設定します:
[API_KEYS]
pinecone = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"
openai = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
.env
ファイルを作成します。 PINECONE_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
それらはもちろんあなたの松ぼっくりとOpenai APIキーである必要があります;)
このレポは、 /data_samplesのMPSTデータを使用してデモを歩くように設定されています。これらは手順です。
p1.generate_index_mpst.py
を実行して、 ./data_sample/d0.mpst_1k_raw.csv
d0.mpst_1k_raw.csvからテキストを準備して、モデルに注入して埋め込みを取得できます。 python p1.generate_index_mpst.py
p2.make_jsonl_for_requests_mpst.py
を実行して、新しいd1.mpst_1k_converted.csv
ファイルをjsonlファイルに変換して、Openai APIに対して埋め込みリクエストを実行します。 python p2.make_jsonl_for_requests_mpst.py
p3.api_request_parallel_processor.py
実行して、埋め込みを取得します。 python src/p3.api_request_parallel_processor.py
--requests_filepath data_sample/d2.embeddings_maker.jsonl
--save_filepath data_sample/d3.embeddings_maker_results.jsonl
--request_url https://api.openai.com/v1/embeddings
--max_requests_per_minute 1500
--max_tokens_per_minute 6250000
--token_encoding_name cl100k_base
--max_attempts 5
--logging_level 20
p4.convert_jsonl_with_embeddings_to_csv.py
を新しいjsonlファイルと一緒に実行して、テキストと埋め込みできれいなCSVを作成します。 python p4.convert_jsonl_with_embeddings_to_csv.py
p5.upload_to_pinecone.py
実行して、すべてのテキストデータと埋め込みをアップロードします。 python p5.upload_to_pinecone.py
アプリをローカルに実行できますが、画像を削除する必要があります(パスは、rim -litクラウドで異なります)
現時点では、sample_dataにいくつかのデータがあり、すべてが例としてKaggleから取られています。
[]メモリを追加:以前の質問 /回答を要約し、プロンプトを送信するためにプレイエンド
[]さまざまなモードの追加:データベースでより広い検索
[]さまざまなモードを追加:応答用のAIトーン /文字
[]より良いドキュメント
より良いドキュメントがもうすぐ来ます!気軽に貢献してください:)
#ライセンス
MITライセンス
著作権(c)2023ステファンスタージス
このソフトウェアと関連するドキュメントファイル(「ソフトウェア」)のコピーを入手して、制限なしにソフトウェアを扱うために、このソフトウェアを制限する権利を含め、ソフトウェアのコピーをコピー、変更、公開、配布、販売する、ソフトウェアのコピーを許可する人を許可する人を許可することを含めて、許可が無料で許可されます。
上記の著作権通知とこの許可通知は、ソフトウェアのすべてのコピーまたはかなりの部分に含まれるものとします。
このソフトウェアは、商品性、特定の目的への適合性、および非侵害の保証を含むがこれらに限定されない、明示的または黙示的なものを保証することなく、「現状のまま」提供されます。いかなる場合でも、著者または著作権所有者は、契約、不法行為、またはその他の訴訟、ソフトウェアまたはソフトウェアの使用またはその他の取引に関連する、またはその他の契約、またはその他の請求、またはその他の責任について責任を負いません。