Open AIの無料トライアル中にgpt-indexを用いてドキュメント内のインデックスを作成し質問の答えを応答させてみます。
今回はgpt-indexを用います。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。また今回はOpenAI API キーが必要となりますので、事前に取得しておく必要があります。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■ドキュメントを用意する
まずはドキュメントを用意します。
ドキュメントを用意する際は、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)内に「data」というフォルダを作成します。
作成後、この「data」フォルダ内にテキストエディタ等を用いてドキュメントを作成し、そのドキュメントをフォルダ内に置きます。今回は「test01.txt」というtxt形式のテキストファイルでドキュメントを作成しました。ドキュメントの中身は上記になります。
これでドキュメントの用意は完了です。
■Pythonでgpt-indexを用いてドキュメント内のインデックスを作成し質問の答えを応答させる
では、次にPythonでgpt-indexを用いてドキュメント内のインデックスを作成し質問の答えを応答させるスクリプトを書いていきます。
■コード
import os from gpt_index import GPTSimpleVectorIndex, SimpleDirectoryReader documents = SimpleDirectoryReader('data').load_data() os.environ["OPENAI_API_KEY"] = "<取得したOpenAI API キー>" index = GPTSimpleVectorIndex(documents) respones = index.query("織田信長はいつ亡くなった?") print(respones)
SimpleDirectoryReader()を用いて作成したフォルダ内のドキュメント(今回の場合はtest01.txt)を読み取り、load_data()を用いてロードを行い、documents変数に格納。格納後、GPTSimpleVectorIndex()を用いて、インデックスを作成し、index変数に格納。
格納後、作成したインデックスに対して、query()を用いてクエリに答える。返されたクエリがresponesに格納。格納されたクエリをprint()で出力します。
■実行・検証
このスクリプトを「chat_g.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
Downloading: 100%|█████████████████████████████████████████████████████████████████| 1.04M/1.04M [00:02<00:00, 446kB/s] C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\huggingface_hub\file_download.py:127: UserWarning: `huggingface_hub` cache-system uses symlinks by default to efficiently store duplicated files but your machine does not support them in C:\Users\user_\.cache\huggingface\hub. Caching files will still work but in a degraded version that might require more space on your disk. This warning can be disabled by setting the `HF_HUB_DISABLE_SYMLINKS_WARNING` environment variable. For more details, see https://huggingface.co/docs/huggingface_hub/how-to-cache#limitations. To support symlinks on Windows, you either need to activate Developer Mode or to run Python as an administrator. In order to see activate developer mode, see this article: https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development warnings.warn(message) Downloading: 100%|███████████████████████████████████████████████████████████████████| 456k/456k [00:01<00:00, 312kB/s] Downloading: 100%|█████████████████████████████████████████████████████████████████| 1.36M/1.36M [00:02<00:00, 497kB/s] Downloading: 100%|█████████████████████████████████████████████████████████████████████| 665/665 [00:00<00:00, 333kB/s]
最初スクリプトを実行すると、上記のメッセージが出力された。
そして、その後何度かスクリプトの実行テストを繰り返し、今回用意したドキュメント内のインデックスが作成されてクエリが返された。返されたクエリを出力させることができた。また日本語であってもちゃんとクエリを返してくれることも確認できた。
スクリプトの実行後、Open AIの「Usage(APIの使用状況の概要)」(https://beta.openai.com/account/usage)で、「Free trial usage(無料お試し利用)」状況などを確認する。
確認すると、「Model usage(モデルの使用)」では、OpenAI API キーを用いてモデルの使用をリクエストしたことも確認できた。
コメント