Tutor-GPT は、Plastic Labs によって開発された LLM を利用した学習コンパニオンです。学習ニーズを動的に判断し、最適なサービスを提供するために独自のプロンプトを更新します。
私たちは心の実験の理論に傾倒し、今ではそれは単なる読み書きの家庭教師ではなく、幅広い学習の仲間となっています。仕組みについて詳しくは、こちらをご覧ください。
Tutor-GPT は Honcho によって強化されており、堅牢なユーザー表現を構築し、ユーザーごとにパーソナライズされたエクスペリエンスを作成します。
tutor-gpt
のホストされたバージョンは、Benjamin Bloom の 2 シグマ問題にちなんで Bloom と呼ばれています。
または、以下の手順に従って、ボットの独自のインスタンスを実行することもできます。
tutor-gpt プロジェクトは、さまざまなクライアントのバックエンド ロジックを分割する複数の異なるモジュールに分割されています。
agent/
- これにはコア ロジックとプロンプト アーキテクチャが含まれますbot/
- これには Discord ボットの実装が含まれますapi/
- これには、 agent/
ロジックを公開する FastAPI API インターフェイスが含まれていますwww/
- これには、API インターフェイスに接続できるNextJS
Web フロント エンドが含まれていますsupabase/
- ローカル supabase のセットアップに必要な SQL スクリプトが含まれていますNextJS アプリケーションを除いて、プロジェクトの大部分は Python を使用して開発されています。 Python の場合は依存関係の管理にuv
が使用され、Web インターフェイスにはpnpm
が使用されます。
bot/
とapi/
モジュールはどちらも依存関係としてagent/
使用し、 uv
使用してローカル パッケージとしてロードします。
注意 Web インターフェイスの詳細については、www/README を参照してください。この README には、主に tutor-gpt のバックエンドと tutor のコア ロジックに関する情報が含まれています
agent
、 bot
、およびapi
モジュールはすべてuv
ワークスペースを使用して管理されます
このセクションでは、Tutor-GPT を実行するための Python 環境をセットアップする方法について説明します。これにより、Discord ボットの実行、FastAPI アプリケーションの実行、またはagent
コードの開発が可能になります。
以下のコマンドは、tutor-gpt プロジェクトの実行に必要なすべての依存関係をインストールします。プロジェクトの仮想環境をセットアップするには、uv を使用することをお勧めします。
git clone https://github.com/plastic-labs/tutor-gpt.git && cd tutor-gpt
uv sync # set up the workspace
source .venv/bin/activate # activate the virtual environment
ここから、実行したいプロジェクトの一部に応じて、適切なディレクトリでuv sync
実行する必要があります。たとえば、FastAPI アプリケーションを実行するには、同期を再実行するディレクトリに移動する必要があります。
cd api/
uv sync
まだインストールされていない場合は、依存関係が解決またはインストールされたことを示すメッセージが表示されます。
あるいは (推奨される方法)、このプロジェクトを docker でビルドして実行することもできます。続行する前に、docker をインストールし、実行されていることを確認してください。
Web フロントエンドは、コードベースの残りの部分とは別に構築され、実行されます。以下は、discord ボットまたは FastAPI エンドポイントのいずれかを実行するために必要な依存関係を含む tutor-gpt プロジェクトのコアを構築するためのコマンドです。
git clone https://github.com/plastic-labs/tutor-gpt.git
cd tutor-gpt
docker build -t tutor-gpt-core .
同様に、Web インターフェイスを構築するには、以下のコマンドを実行します。
tutor-gpt の各インターフェイスが適切に動作するには、異なる環境変数が必要です。 bot/
モジュールとapi/
モジュールには両方とも、開始点として使用できる.env.template
ファイルが含まれています。 .env.template
をコピーして、名前を.env
に変更します。
以下は環境変数の詳細な説明です。
OPENAI_API_KEY
— OpenAI 互換 API を使用する Openrouter の API キーMODEL
— 使用する openrouter モデルNextJS と fastAPI
URL
— フロントエンド Next.js アプリケーションの URL エンドポイントHONCHO_URL
— 使用している Honcho インスタンスのベース URLHONCHO_APP_NAME
— Tutor-GPT に使用する honcho アプリケーションの名前オプションの追加物
SENTRY_DSN_API
— オプションのエラー報告用の Sentry DSNBOT_TOKEN
— これは Discord ボット トークンです。ボットの作成方法とトークンの生成方法については、pycord ドキュメントで説明されています。THOUGHT_CHANNEL_ID
— これは、ボットが思考を出力するための Discord チャネルです。サーバーにチャネルを作成し、チャネルを右クリックしてリンクをコピーして ID をコピーします。チャネル ID は、リンク内の最後の数字の文字列です。必要に応じて、Docker コンテナを使用してアプリケーションをローカルで実行することもできます。以下は、Docker コンテナー内にない.env
ファイルを使用して discord ボットをローカルで実行するコマンドです。 Docker コンテナに.env
追加しないように注意してください。これは安全ではなく、秘密が漏洩する可能性があります。
docker run --env-file .env tutor-gpt-core python bot/app.py
WebUI を実行するには、バックエンドのFastAPI
とフロントエンドのNextJS
コンテナを個別に実行する必要があります。 2 つの別々の端末インスタンスで次のコマンドを実行して、両方のアプリケーションを実行します。現在の動作では、ローカル リポジトリ内の.env
ファイルを利用してボットを実行します。
docker run -p 8000:8000 --env-file .env tutor-gpt-core python -m uvicorn api.main:app --host 0.0.0.0 --port 8000 # FastAPI Backend
docker run tutor-gpt-web
注: コアの docker ファイル内のデフォルトの run コマンドは FastAPI バックエンドを実行するため、 docker run --env-file .env tutor-gpt-core を実行するだけで済みます。
このプロジェクトは完全にオープンソースであり、あらゆるオープンソースの貢献を歓迎します。貢献するためのワークフローは、リポジトリをフォークすることです。 [問題] タブで問題を主張したり、新しいスレッドを開始して、取り組んでいる機能やバグ修正を示すことができます。
コントリビューションが完了したら、 staging
ブランチに向けて PR を作成すると、プロジェクト マネージャーによってレビューされます。変更について話し合ったり、サポートを受けたりするには、お気軽に Discord に参加してください。
変更が受け入れられ、ステージングにマージされると、アップストリームからmain
に入る前に、一定期間のライブ テストが行われます。
Tutor-GPT は、GPL-3.0 ライセンスに基づいてライセンスされています。詳細については、ライセンス ファイルをご覧ください。