ChatGPT の回答のファクトチェック(factool,Python を使用)(Windows 上)

ChatGPT の回答の中の「徳川家康は日本のほとんどを統制下に置いた」が 「徳川家康は日本の一部を統制下に置いた」に修正されている.

前準備

Python 3.12 のインストール(Windows 上) [クリックして展開]

以下のいずれかの方法で Python 3.12 をインストールする。Python がインストール済みの場合、この手順は不要である。

方法1:winget によるインストール

管理者権限コマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。

winget install --scope machine --id Python.Python.3.12 -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/quiet InstallAllUsers=1 PrependPath=1 Include_pip=1 Include_test=0 Include_launcher=1 InstallLauncherAllUsers=1"

--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動すると PATH が自動的に設定される。

方法2:インストーラーによるインストール

  1. Python 公式サイト(https://www.python.org/downloads/)にアクセスし、「Download Python 3.x.x」ボタンから Windows 用インストーラーをダウンロードする。
  2. ダウンロードしたインストーラーを実行する。
  3. 初期画面の下部に表示される「Add python.exe to PATH」に必ずチェックを入れてから「Customize installation」を選択する。このチェックを入れ忘れると、コマンドプロンプトから python コマンドを実行できない。
  4. 「Install Python 3.xx for all users」にチェックを入れ、「Install」をクリックする。

インストールの確認

コマンドプロンプトで以下を実行する。

python --version

バージョン番号(例:Python 3.12.x)が表示されればインストール成功である。「'python' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない。

Git のインストール

管理者権限コマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。

REM Git をシステム領域にインストール
winget install --scope machine --id Git.Git -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/VERYSILENT /NORESTART /NOCANCEL /SP- /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS /COMPONENTS=""icons,ext\reg\shellhere,assoc,assoc_sh"" /o:PathOption=Cmd /o:CRLFOption=CRLFCommitAsIs /o:BashTerminalOption=MinTTY /o:DefaultBranchOption=main /o:EditorOption=VIM /o:SSHOption=OpenSSH /o:UseCredentialManager=Enabled /o:PerformanceTweaksFSCache=Enabled /o:EnableSymlinks=Disabled /o:EnableFSMonitor=Disabled"

関連する外部ページ

factool のインストールと設定(Windows 上)

factool のインストール(Windows 上)

  1. 以下の手順を管理者権限コマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
  2. ソースコードのダウンロード
    cd /d c:%HOMEPATH%
    rmdir /s /q factool
    git clone https://github.com/GAIR-NLP/factool
    cd factool
    
  3. factool\knowledge_qa\pipeline.py の修正

    次のコマンドでメモ帳を実行

    notepad factool\knowledge_qa\pipeline.py
    

    次のように修正.3箇所に「, encoding='utf-8'」を追加して保存.

  4. factool\math\pipeline.py の修正

    次のコマンドでメモ帳を実行

    notepad factool\math\pipeline.py
    

    次のように修正.2箇所に「, encoding='utf-8'」を追加して保存.

  5. factool\scientific\pipeline.py の修正

    次のコマンドでメモ帳を実行

    notepad factool\scientific\pipeline.py
    

    次のように修正.2箇所に「, encoding='utf-8'」を追加して保存.

  6. factool\med_doc_qa\pipeline.py の修正

    次のコマンドでメモ帳を実行

    notepad factool\med_doc_qa\pipeline.py
    

    次のように修正.3箇所に「, encoding='utf-8'」を追加して保存.

  7. インストール
    python -m pip install -U --ignore-installed pip
    python -m pip install -U python-dotenv
    cd /d c:%HOMEPATH%
    cd factool
    pip install -e .
    

OpenAPI の API キーの取得

OpenAI の APIキーを準備する

関連する外部ページ

Serper の API キーの取得

  1. Serper のページにアクセス

    https://serper.dev/

  2. サインアップして,アカウントを取得する.
  3. API key を取得する

    「API key」をクリックする.画面が変わる.「Copy」をクリックすることにより,クリップボードに API key がコピーされる.

Scraper の API キーの取得

  1. Scraper のページにアクセス

    https://www.scraperapi.com/

  2. 「GET STARTED FOR FREE」をクリック.
  3. Google アカウントでサインインできる.
  4. 画面が変わる.「API Key」のところに,API キーが表示されている.コピーして使用する.

OpenAPI の API キー,Serper の API キー,Scraper の API キーを .env ファイルに保存

  1. OpenAI の APIキーを準備する

    OpenAI の APIキーのページ

    https://platform.openai.com/api-keys

    料金の条件や利用履歴はこちらで確認.

    https://platform.openai.com/settings/organization/limits

  2. Windows で,コマンドプロンプトを実行
  3. エディタを起動
    cd /d c:%HOMEPATH%
    mkdir factool
    cd factool
    type nul > .env
    notepad .env
    
  4. エディタで , OpenAPI の API キーを 「export OPENAI_API_KEY=sk-...」のように書く.
  5. エディタで, Serper の API キーを 「export SERPER_API_KEY=...」のように書く.
  6. エディタで, Scraper の API キー 「export SCRAPER_API_KEY=...」のように書く.

factool の動作確認(Windows 上)

Python プログラムを実行.

  1. Windows で,コマンドプロンプトを実行
  2. エディタを起動
    cd /d c:%HOMEPATH%\factool
    notepad factool.py
    
  3. エディタで,次のプログラムを保存

    このプログラムは, 公式の GitHub のページ: https://github.com/GAIR-NLP/factoolで公開されていたものを変更して使用している.

    from factool import Factool
    import dotenv
    dotenv.load_dotenv()
    
    # Initialize a Factool instance with the specified keys. foundation_model could be either "gpt-3.5-turbo" or "gpt-4"
    factool_instance = Factool("gpt-3.5-turbo")
    
    inputs = [
                {
                    "prompt": "Introduce Graham Neubig",
                    "response": "Graham Neubig is a professor at MIT",
                    "category": "kbqa"
                },
    ]
    response_list = factool_instance.run(inputs)
    
    print(response_list)
    
  4. Python プログラムの実行
    Python プログラムの実行

    Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.

    Python のまとめ: 別ページ »にまとめ

    プログラムを factool.pyのようなファイル名で保存したので, 「python factool.py」のようなコマンドで行う.

    python factool.py
    
  5. 結果の確認
  6. 再び,エディタを起動
    cd /d c:%HOMEPATH%\factool
    notepad factool.py
    
  7. エディタで,次のようにプログラムを書き換える

    このプログラムは, 公式の GitHub のページ: https://github.com/GAIR-NLP/factoolで公開されていたものを変更して使用している.

    from factool import Factool
    
    # Initialize a Factool instance with the specified keys. foundation_model could be either "gpt-3.5-turbo" or "gpt-4"
    factool_instance = Factool("gpt-3.5-turbo")
    
    inputs = [
                {
                    "prompt": "徳川家康について600文字以内で説明してください",
                    "response": "徳川家康(1543-1616)は、日本の戦国時代から江戸時代初期にかけての武将であり、江戸幕府の初代将軍として知られる。彼の統治のもとで始まった徳川幕府は約260年にわたり日本を統治し、平和な時代である江戸時代をもたらした。家康は三河国の小領主の出身で、幼少時代は多くの困難に直面したが、巧みな外交術と戦略で次第に勢力を拡大していった。戦国時代の終盤、関ヶ原の戦いにおいて西軍を破り、全国の制覇を果たした。この戦いにより、家康は日本のほとんどを統制下に置くこととなった。1603年、家康は征夷大将軍として認められ、これにより正式に江戸幕府が開かれた。その後、家康は江戸を新しい首都と定め、全国の大名を交互に江戸と自領に滞在させる参勤交代制度を設けることで、大名の動向を監視し、反乱を防ぐ体制を築いた。家康は、外国との交流を制限し、キリスト教の禁止などを行いながら、国内の安定と統治を固めた。また、文化や芸術の保護も行い、平和な時代の基盤を築いた。彼の死後も、徳川家は15代にわたり日本を統治した。家康の政策と統治の手法は、日本に長い平和な時代をもたらし、国内の経済や文化が発展する土壌を作った。徳川家康は、日本の歴史において非常に影響力のある人物として位置づけられている。",
                    "category": "kbqa"
                },
    ]
    response_list = factool_instance.run(inputs)
    
    print(response_list)
    
  8. Python プログラムの実行
    python factool.py
    
  9. 結果の確認

    下図のように,「徳川家康は日本のほとんどを統制下に置いた」が 「徳川家康は日本の一部を統制下に置いた」に修正されている.

    その他,いくつかの修正が行われている.