ChatGPTは有用ですが、知っている情報が古いという問題があります。また、社内の独自データは当然ですが学習されておらず、回答に含めることができません。この解決策として、外部データをChatGPTに追加する方法に、以下があります。
1️⃣ Fine-tuning(ファインチューニング)
モデル自体にデータを与えて再学習させる方法です。高い回答精度を持ちますが、現在はGPT3を使用し、API利用料も高めです。
2️⃣ In-Context Learning(インコンテキストラーニング)
チャット文脈に情報を付与して回答を生成する手法です。gpt-3.5-turboを使えば簡単に実装できます。
今回は、社内文書を活用したChatGPTベースのQAツールです。Llamaindexを活用し、Python数行で動かしてみましょう。
SDKをインストール💻🔌
pip install llama-index
Open AIのAPIキーを設定🔑🔐
import os
os.environ["OPENAI_API_KEY"] = 'key'
LlamaIndexをインポート📚💡
LlamaIndexのバージョン0.5.12から0.6.0へのアップデートに伴い、GPTSimpleVectorIndexからGPTVectorStoreIndexへの変更が行われました。
from llama_index import GPTVectorStoreIndex, SimpleDirectoryReader
インデックスファイルを生成しましょう🗃️✨以下の例では指定ディレクトリ内の文書全部を読み込みインデックスファイルを生成します。LlamaindexはBeautifulsoupのモジュールもあるみたいでスクレイピングも試してみたいですね。
documents = SimpleDirectoryReader('/path/').load_data()
index = GPTVectorStoreIndex.from_documents(documents)
クエリを作成しましょう🔍🚀
query_engine = index.as_query_engine()
print(query_engine.query("社長は誰?"))
バージョンアップによる変更により、クエリの実行方法にも変化がありました。
以前のバージョンでは、以下のようにクエリを実行していました。
print(index.query("社長は誰?"))
会社のホームページでも食わせればきちんと社長の名前が出力されると思います。LlamaindexとChatGPTの組み合わせにより、よりスマートで効率的な情報検索が実現できます!ぜひお試しください!🚀✨
フルコードです。
# SDK
pip install llama-index
# Open AIのAPIキーを設定
import os
os.environ["OPENAI_API_KEY"] = 'key'
# LlamaIndexのインポート
from llama_index import GPTVectorStoreIndex, SimpleDirectoryReader
# インデックスファイルを生成
documents = SimpleDirectoryReader('/path/').load_data()
index = GPTVectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
print(query_engine.query("社長は誰?"))