クリエイターの教科書

ChatGPT, Stable Diffusion, Visual Studio, Excelなど教科書

【ChatGPT】gpt_indexを動かすには?モジュールエラーの場合は

gpt_index を使ったプログラムと、それを試しているときに出るいろんなエラーの対策。

gpt_indexのプログラム 

gpt_indexでは、データの入ったファイルを送ることで、そのファイルに書かれた情報をGPTの回答に役立てることができます。

特にGPT3の回答は精度が低かったり、新しい情報に対応できませんので、gpt indexを活用することでそういった問題を回避できます。

 

プログラム例は以下。

OPENAI_API_KEYはあらかじめOpenAIから取得しておきます。

URLは岸田さんのウィキです。

from gpt_index import GPTSimpleVectorIndex, SimpleWebPageReader

os.environ["OPENAI_API_KEY"] = "*********"

 

json_path = "kishida.json"
url = "https://ja.wikipedia.org/wiki/%E5%B2%B8%E7%94%B0%E6%96%87%E9%9B%84"
documents = SimpleWebPageReader(html_to_text=True).load_data([url])
index = GPTSimpleVectorIndex(documents)
index.save_to_disk(json_path)

print(index.query("誕生日はいつ?"))

 

実行するとでました...が1957年7月29日生まれなので違っていました。

 

上記プログラムではindexを保存しているので、次回からは作成されたインデックス(Json)を指定すればOK.毎度ネットにアクセスしなくてもいいです。

json_path = "kishida.json"
index = GPTSimpleVectorIndex.load_from_disk(json_path)

 

 

gpt_indexでエラー

No module named 'gpt_index' 

from gpt_index import GPTSimpleVectorIndex, QueryMode, SimpleWebPageReader

でのエラー。

 

対策として以下バージョンでPIPインストールしておきます。

pip install gpt_index==0.4.15
pip install langchain==0.0.96

ModuleNotFoundError: No module named 'gpt_index' · Issue #1863 · jerryjliu/llama_index · GitHub

 

 

データファイルが開かない

ファイル名を直接指定するのではなく、ファイルの入っているフォルダ名までを指定します。複数ファイルに対応させるため?

documents = SimpleDirectoryReader(r'C:/py/data').load_data()

 

 

ValueError: A single term is larger than the allowed chunk size.

データ用のファイルにおいて、日本語がスペースで分割されていないため、扱うデータの長さが大きすぎるためのエラー。

 

対策として、「。」や「、」のあとに半角スペースをいれることで回避可能。

 

また、データをとりあえず英文にして動作するか先に試すのもよさそう。

LlamaIndex : ChatGPTで独自のデータに対して質問するためのフレームワーク | by Kazuki Kyakuno | axinc | Medium

 

 

INFO:numexpr.utils:Note: NumExpr detected 20 cores but "NUMEXPR_MAX_THREADS" not set, so enforcing safe limit of 8. INFO:numexpr.utils:NumExpr defaulting to 8 threads.

以下のように変数をセットすれば出力が出なくなります。

import os
os.environ['NUMEXPR_MAX_THREADS'] = '4'
os.environ['NUMEXPR_NUM_THREADS'] = '2'

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ