ChatGPT の回答のファクトチェック(factool,Python を使用)(Windows 上)
ChatGPT の回答の中の「徳川家康は日本のほとんどを統制下に置いた」が 「徳川家康は日本の一部を統制下に置いた」に修正されている.

前準備
Python 3.12,Git のインストール(Windows 上)
Pythonは,プログラミング言語の1つ. Gitは,分散型のバージョン管理システム.
【手順】
- Windows で,コマンドプロンプトを管理者権限で起動する(手順:Windowsキーまたはスタートメニュー,「cmd」と入力,右クリックメニューなどで「管理者として実行」を選択)
次のコマンドを実行
次のコマンドは,Python ランチャーとPython 3.12とGitをインストールし,Gitにパスを通すものである.
次のコマンドでインストールされるGitは 「git for Windows」と呼ばれるものであり, Git,MinGW などから構成されている.
reg add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /t REG_DWORD /d 1 /f REM Python, Git をシステム領域にインストール winget install --scope machine --id Python.Python.3.12 --id Python.Launcher --id Git.Git -e --silent REM Python のパス set "INSTALL_PATH=C:\Program Files\Python312" echo %PATH% | find /i "%INSTALL_PATH%" >nul if errorlevel 1 setx PATH "%PATH%;%INSTALL_PATH%" /M >nul echo %PATH% | find /i "%INSTALL_PATH%\Scripts" >nul if errorlevel 1 setx PATH "%PATH%;%INSTALL_PATH%\Scripts" /M >nul REM Git のパス set "NEW_PATH=C:\Program Files\Git\cmd" if exist "%NEW_PATH%" echo %PATH% | find /i "%NEW_PATH%" >nul if exist "%NEW_PATH%" if errorlevel 1 setx PATH "%PATH%;%NEW_PATH%" /M >nul
【関連する外部ページ】
- Python の公式ページ: https://www.python.org/
- Git の公式ページ: https://git-scm.com/
【サイト内の関連ページ】
【関連項目】 Python, Git バージョン管理システム, Git の利用
factool のインストールと設定(Windows 上)
factool のインストール(Windows 上)
- Windows で,コマンドプロンプトを管理者権限で起動する(手順:Windowsキーまたはスタートメニュー,「cmd」と入力,右クリックメニューなどで「管理者として実行」を選択)
- ソースコードのダウンロード
cd /d c:%HOMEPATH% rmdir /s /q factool git clone https://github.com/GAIR-NLP/factool cd factool
- factool\knowledge_qa\pipeline.py の修正
次のコマンドでメモ帳を実行
notepad factool\knowledge_qa\pipeline.py
次のように修正.3箇所に「, encoding='utf-8'」を追加して保存.
- factool\math\pipeline.py の修正
次のコマンドでメモ帳を実行
notepad factool\math\pipeline.py
次のように修正.2箇所に「, encoding='utf-8'」を追加して保存.
- factool\scientific\pipeline.py の修正
次のコマンドでメモ帳を実行
notepad factool\scientific\pipeline.py
次のように修正.2箇所に「, encoding='utf-8'」を追加して保存.
- factool\med_doc_qa\pipeline.py の修正
次のコマンドでメモ帳を実行
notepad factool\med_doc_qa\pipeline.py
次のように修正.3箇所に「, encoding='utf-8'」を追加して保存.
- インストール
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キーを準備する
【関連する外部ページ】
- OpenAI の API キーのページ
- 料金の条件や利用履歴はこちらで確認.
Serper の API キーの取得
- Serper のページにアクセス
- サインアップして,アカウントを取得する.
- API key を取得する
「API key」をクリックする.画面が変わる.「Copy」をクリックすることにより,クリップボードに API key がコピーされる.
Scraper の API キーの取得
- Scraper のページにアクセス
- 「GET STARTED FOR FREE」をクリック.
- Google アカウントでサインインできる.
- 画面が変わる.「API Key」のところに,API キーが表示されている.コピーして使用する.
OpenAPI の API キー,Serper の API キー,Scraper の API キーを .env ファイルに保存
- OpenAI の APIキーを準備する
OpenAI の APIキーのページ
https://platform.openai.com/api-keys
料金の条件や利用履歴はこちらで確認.
- Windows で,コマンドプロンプトを実行
- エディタを起動
cd /d c:%HOMEPATH% mkdir factool cd factool type nul > .env notepad .env
- エディタで , OpenAPI の API キーを 「export OPENAI_API_KEY=sk-...」のように書く.
- エディタで, Serper の API キーを 「export SERPER_API_KEY=...」のように書く.
- エディタで, Scraper の API キー 「export SCRAPER_API_KEY=...」のように書く.
factool の動作確認(Windows 上)
Python プログラムを実行.
- Windows で,コマンドプロンプトを実行
- エディタを起動
cd /d c:%HOMEPATH%\factool notepad factool.py
- エディタで,次のプログラムを保存
このプログラムは, 公式の 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)
- Python プログラムの実行
Python プログラムの実行
- Windows では python (Python ランチャーは py)
- Ubuntu では python3
Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.
Python のまとめ: 別ページ »にまとめ
プログラムを factool.pyのようなファイル名で保存したので, 「python factool.py」のようなコマンドで行う.
python factool.py
- 結果の確認
- 再び,エディタを起動
cd /d c:%HOMEPATH%\factool notepad factool.py
- エディタで,次のようにプログラムを書き換える
このプログラムは, 公式の 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)
- Python プログラムの実行
python factool.py
- 結果の確認
下図のように,「徳川家康は日本のほとんどを統制下に置いた」が 「徳川家康は日本の一部を統制下に置いた」に修正されている.
その他,いくつかの修正が行われている.