Open mizuking01 opened 6 months ago
ご質問ありがとうございます。
私のほうで改めて確認したところ、Pineconeのアップデートにより、特定の条件下でそのエラーが発生することが分かりました。
結論としては、以下のどちらかで対応してください。
ここから、エラーの原因や上記の対応方法で解決する理由をまとめます。 まずはエラーの原因についてです。
Pineconeでは、最近のアップデートにより、Index作成時に「Capacity mode」として「Serverless」と「Pods」が選択できるようになりました。
Pineconeの管理画面上では、無料プランでは「Serverless」のみが選択できるようになっており、おそらく「Serverless」のIndexを作成されたのだと思います。
書籍に掲載しているソースコード(このリポジトリのmainブランチのソースコード)では、以下のように「environment」と「index_name」を指定してPineconeのIndexにアクセスしています。
「Serverless」のIndexには「environment」は存在しないため、「environment」を指定すると以下のようにIndexが見つからないというエラーになります。
ValueError: No active indexes found in your Pinecone project, are you sure you're using the right Pinecone API key and Environment? Please double check your Pinecone dashboard.
つまり、「書籍に掲載しているソースコード(このリポジトリのmainブランチのソースコード)」の場合、PineconeのIndexは「Pods」を選択する必要がある、ということになります。
または、他の方法として、PineconeのIndexが「Serverless」の場合に対応したソースコードを使用することでも解決できる、ということになります。
[!NOTE] langchainなどのパッケージのバージョン次第かもしれませんが、
environment=None
と指定しても、内部でデフォルトの「environment」が指定されて同様のエラーになる場合があります。
Pineconeの無料プランの場合、管理画面上からは「Pods」を選択できなくなっていますが、APIからは「Pods」を選択できるようです。 そこで、書籍p213に掲載しているスクリプトを使用して「Pods」のIndexを作成すると、書籍の通りadd_document.pyも動作します。
該当のスクリプトは こちら からも確認できます。
別の解決策として、PineconeのIndexが「Serverless」の場合に対応したソースコードを使用する方法もあります。
このリポジトリの「langchain-v0.1」ブランチのソースコードは、PineconeのIndexが「Serverless」の場合に対応しています。
ただし、「langchain-v0.1」ブランチのソースコードを使う際は、openaiやlangchainなどの各種パッケージも、対応するバージョンをインストールし直す必要があるので、ご注意ください。
「langchain-v0.1」ブランチのソースコードについて、詳細は こちら を参照してください。
よろしくお願いします。
こちらのエラーについて、他にも遭遇する方がいそうなため、リポジトリのREADMEにこのIssueへのリンクを追加しました。
https://github.com/yoshidashingo/langchain-book/commit/b30653b721352fff8fed4e9c90b93a33cd0fb4fd
エラーの説明
212P 9番「PDFファイルのテキスト分割とベクトル化」の実行時にエラーが発生しました
スクリーンショット
書籍の内容以外で実施したこと pineconeのAPIキーとインデックス名、環境名は何度も確認したので間違いはないと思います。 新しくAPIキーを作成も試しましたが駄目でした。 ライブラリのバージョンも確認しましたが同じでした。 環境
AWS Cloud9
その他
エラーの解決のため、その他ご自身で試したことや、確認したログなどがあれば記載してください。