📘

GPTsを使用してChatGPTの個人化をしてみた

2025/01/26に公開

はじめに

最近、個人ブログの開発をしながら、ChatGPTを良く使うのです。
でも、たまに意図と違ったり、古いバージョンの回答をする時があり、必要な公式ドキュメントを学習させて使うと思いました。そこでOpenAPIのGPTs機能を使ってファイルをアップロードして学習させることができることを分かって、これをブログ開発に活用してみようと思います。

従って、アプリケーション開発に必要なライブラリの公式ドキュメントを一箇所に集めてアップロードして使用すれば、正確で最新のバージョンの情報を得ることができるでしょう。

私の個人ブログでは主にAstroTailwindCSSを使用して実装するつもりなので、この二つのライブラリのドキュメントを入れて適用してみようと思います。

GPTsとは?

GPTsはOpenAIが提供する機能で、ユーザーが自分のAIモデルをパーソナライズし、特定の資料や知識を反映させることができます。これにより、カスタマイズされた自分だけのGPTを作成することができます。

GPTsを作成する

Creating a GPTにアクセスして直接作成することもできますし、Chat GPTでも作成することができます。

Chat GPTにログイン後、My GPTsをクリックします。

Create a GPTをクリックしてGPT Builder**に移動します。

GPT Builderを使用して、チャットで簡単にGPTを作成することができます。詳細はGPT Builderを参照してください。

しかし、今回は各ライブラリのドキュメントをアップロードする必要があるので、Configureをクリックします。

Configure をクリックすると、Name, Description, Instructions, Conversation starters, Knowledge, Capabilities などを設定することができます。ここで、Knowledge 項目に必要なファイルをアップロードして自分だけのGPTを作成します。

Knowledge in GPTsを参照すると、Knowledge機能を使用して、GPTがユーザーメッセージに応答する際に参照するデータを設定することができます。

最大20個のファイルをGPTに添付することができ、各ファイルのサイズは512MBで、2,000,000,000個のトークンを含めることができます。アップロードファイルはテキストファイル形式を推奨しており、PDFやPowerPointスライドは理解しにくいと言われています。

テキストファイルの作成

アップロードする場所を確認したので、GPTに適用するファイルを生成する必要があります。今回アップロードするドキュメントはAstroとTailwindCSSです。 このようなオープンソースライブラリはほとんどGithubで公式ドキュメントを簡単に見ることができます。

このように二つのライブラリのリポジトリを探しました。

GPTsにドキュメントをアップロードする主な手順は下記になります。

1.ドキュメントファイルのパスを確認する。
2.リポジトリをクローンする。
3.ファイルをマージして一つのテキストファイルにする。
4.作成したファイルをGPTsにアップロードします。

ファイルパスの確認

ほとんどのライブラリ文書は md または mdx 形式で主に文書が作成されるので、該当リポジトリで md を検索すると見つけることができます。もし、検索結果がない場合は、ディレクトリを一つずつ検索して必要なドキュメントを探してみてください。

例えば、Astroの場合は docs/tree/main/src/content/docs/en にドキュメントがあり、TailwindCSSは src/pages/docs にドキュメントがあります。

リポジトリのクローン作成

下記のコマンドを使ってリポジトリをローカルリポジトリにコピーします。

git clone <<repository-url>>

ファイルをマージして一つのテキストファイルにする

色んな方法がありますが、私はChatGPTを使ってシェルスクリプトを生成して一つのファイルにマージしました。

#!/bin/bash

# Check if both arguments are provided
if [ "$#" -ne 2 ]; then
    echo "Usage: $0 <base_directory> <output_file>"
    exit 1
fi

# Base directory
base_dir="$1"
output_file="$2"

# Create or clear the output file
> "$output_file"

# Find and concatenate all .mdx files into the output file
find "$base_dir" -type f -name "*.mdx" | while read -r file; do
    echo -e "\n\n<!-- Start File: ${file##*/} -->\n" >> "$output_file"  # Add filename as a comment
    cat "$file" >> "$output_file"
    echo -e "\n\n<!-- End File: ${file##*/} -->\n" >> "$output_file"  # Add filename as a comment
done

echo "All .mdx files have been combined into $output_file"

上記のスクリプトは、指定したディレクトリ内のすべての .mdx ファイルを 再帰的に探して一つのファイルにマージするスクリプトです。

1.スクリプトは base_diroutput_file という二つの引数で実行されます。

  • base_dir : 文書があるファイルパス。
  • output_file` : マージされたファイル名。
    2.ファイルの始まりと終わりを区別するためにStart FileEnd Fileを追加しました。

上記のスクリプトを使用してGPTアップロード用ファイルを生成します。

GPTsにアップロードする

最後のステップとして、再びGPTsに戻り、Upload filesをクリックし、2つのファイルをアップロードします。
詳細は、左側のCreateタブでいつものChatGPTを使うように入力して自動的に設定することができます。

これでGPTsに必要な文書を反映して設定が完了しました。 これから実際にブログを作ってみて、この機能が開発過程で役に立つかどうか直接テストしてみます。 皆さんのプロジェクトにも役立つと思います。

Discussion