メインコンテンツへスキップ
見出し画像

GPT Index で専門知識を必要とする質問応答チャットボットを簡単作成

    「GPT Index」を試したので、まとめました。

    1. GPT Index

    「GPT Index」は、専門知識を必要とする質問応答チャットボットを簡単に作成できるライブラリです。

    同様のチャットボットは「LangChain」でも作成できますが、「GPT Index」は、コード数行で完成してお手軽なのが特徴になります。

    2. ドキュメントの準備

    はじめに、チャットボットに教える専門知識を記述したドキュメントを用意します。

    今回は、マンガペディアの「ぼっち・ざ・ろっく!」のあらすじのドキュメントを用意しました。

    ・bocchi.txt

    画像

    【注意】ドキュメントが大きいと、OpenAI APIの呼び出しも多くなるので、コストを注意する必要があります。

    3. Colabでの実行

    Google Colabでの実行手順は、次のとおりです。

    (1) パッケージのインストール。

    # パッケージのインストール
    !pip install gpt-index

    (2) 環境変数の準備。
    以下のコードの <OpenAI_APIのトークン> にはOpenAI APIのトークンを指定します。(有料)

    import os
    os.environ["OPENAI_API_KEY"] = "<OpenAI_APIのトークン>"

    (3) Colabにdataフォルダを作成してドキュメントを配置。
    左端のフォルダアイコンでファイル一覧を表示し、右クリック「新しいフォルダ」でフォルダを作成し、ドキュメントをドラッグ&ドロップします。

    画像

    (4) インデックスの作成。

    from gpt_index import GPTSimpleVectorIndex, SimpleDirectoryReader
    
    # インデックスの作成
    documents = SimpleDirectoryReader('data').load_data()
    index = GPTSimpleVectorIndex(documents)

    (5) 質問応答。

    # 質問応答
    print(index.query("ぼっちちゃんの本名は?"))
    > [query] Total LLM token usage: 3234 tokens
    > [query] Total embedding token usage: 19 tokens
    
    後藤ひとり

    「どう思う?」で感想、「一番中の良い友だちは?」で推測も答えてくれました。

    画像

    4. インデックスの保存

    作成したインデックスは保存しておくと、次回に再作成する必要がなくなります。

    (1) インデックスの保存。

    # インデックスの保存
    index.save_to_disk('index.json')

    (2) インデックスの読み込み。

    # インデックスの読み込み
    index = GPTSimpleVectorIndex.load_from_disk('index.json')

    次回



     
     

    npaka

     
     
    プログラマー。iPhone / Android / Unity / ROS / AI / AR / VR / RasPi / ロボット / ガジェット。年2冊ペースで技術書を執筆。アニソン / カラオケ / ギター / 猫 twitter : @npaka123

    あなたへのおすすめ