cc25a-openai-api-agent-project123123123 について
OpenAI APIを使ったエージェント開発を学ぶための講座プロジェクトです。エージェントアプリ、MCP サーバー機能、ファインチューニングデータの処理例を含みます。
主な機能
- 01エージェントアプリの実行
- 02Function Calling用の関数定義
- 03関数をMCPツールとして利用
- 04SFT、DPO、RFTデータの準備とアップロード
活用シーン
- 01OpenAI APIベースのエージェントアプリの実行
- 02プロジェクトの関数をMCPクライアントに提供
- 03ファインチューニングデータの変換とアップロード
MCP 対応
tools.pyの関数をMCPツールとして使用し、MCP サーバーからクライアントに公開できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
エンドポイント
https://server.smithery.ai/@cc25a/openai-api-agent-project123123123/mcpインストールコマンドをコピー
Claude CodeTerminal
claude mcp add --transport http ai-smithery-cc25a-openai-api-agent-project123123123 https://server.smithery.ai/@cc25a/openai-api-agent-project123123123/mcpCursor.cursor/mcp.json
{"mcpServers":{"ai-smithery-cc25a-openai-api-agent-project123123123":{"type":"http","url":"https://server.smithery.ai/@cc25a/openai-api-agent-project123123123/mcp"}}}Cursor で開くVS Code.vscode/mcp.json
{"servers":{"ai-smithery-cc25a-openai-api-agent-project123123123":{"type":"http","url":"https://server.smithery.ai/@cc25a/openai-api-agent-project123123123/mcp"}}}VS Code で開くClaude Desktopclaude_desktop_config.json
{"mcpServers":{"ai-smithery-cc25a-openai-api-agent-project123123123":{"type":"http","url":"https://server.smithery.ai/@cc25a/openai-api-agent-project123123123/mcp"}}}Windsurf~/.codeium/windsurf/mcp_config.json
{"mcpServers":{"ai-smithery-cc25a-openai-api-agent-project123123123":{"serverUrl":"https://server.smithery.ai/@cc25a/openai-api-agent-project123123123/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
すべてのエンドポイント
Streamable HTTP
https://server.smithery.ai/@cc25a/openai-api-agent-project123123123/mcp認証が必要ツール
詳細
OpenAI API Agent School - プロジェクト
本資料は、(株)エーアイキャッスルが作成したOpenAI APIで学ぶエージェント開発の第一歩 (OpenAI API Agent School)講座のプロジェクト資料です。
[0] インストールとビルド(uv)
# uv Install
curl -LsSf https://astral.sh/uv/install.sh | sh
# uv Build
uv sync --frozen && uv cache prune --ci
[1] プロジェクトのセットアップ
1.1. 環境変数(.env)
- .env ファイルで設定するか、デプロイ環境で指定
OPENAI_API_KEY:エージェントアプリ、またはファインチューニング用データをアップロードするときに使用する OpenAI API キーPROMPT_ID:エージェントアプリで使用する OpenAI プロンプト IDTITLE:エージェントアプリの上部に表示するタイトルPASSWORD:パスワードの設定(空欄の場合、誰でもアクセスできます)- エージェントアプリでは、ログインが必要になります
- MCP サーバーでは、
?password=<your-password>のようにクエリ文字列で渡す必要があります
1.2. config.overrides.jsonc
- エージェントアプリから openai api をリクエストするときに、responses create で上書きする設定値
- config.overrides.jsonc ファイルで設定するか、デプロイ環境で指定
- ファイルの場所
- プロジェクトフォルダー(優先)
- /etc/secrets/
1.3. tools.py
- エージェントアプリで Function Calling に使用する関数です。
- または、MCP サーバーでツールとして使用する関数です。
- ファイルの場所:tools.py
[2] アプリの実行
実行
uv run main.py
-
ポート:環境変数
PORTが指定されている場合はその値を使用し、指定されていない場合は8000を使用します。 -
エージェントアプリの URL:https://localhost:8000/agent
-
MCP サーバーの URL:https://localhost:8000/mcp
KEEPALIVE_URL
- 実行中のアプリが一定時間アクセスされず、アイドル状態になる場合、
KEEPALIVE_URLを github actions の環境変数(secrets)に指定すると、定期的にアクセスする cron ジョブを実行できます。 - フォークした場合は、フォークしたリポジトリにアクセスし、上部の Actions タブで Actions を有効にして、.github/workflows/keepalive-url.yml を有効にしてください。
- リポジトリ > settings > Secrets and Variables > Actions > New repository secret にアクセスし、以下のように入力します(Secret にはご自身がデプロイした URL を入力してください)
- 例
- Name:
KEEPALIVE_URL - Secret:
https://<your-project-name>.onrender.com
- Name:
[3] ファインチューニングデータ
正常にアップロードするには、.envファイルにOPENAI_API_KEYを登録する必要があります。
3.1. SFT(教師ありファインチューニング)
- フォルダーの場所:
fine_tuning_data/supervised/ - データの作成とアップロード
uv run fine_tuning_data/supervised/convert_and_upload.py
3.2. DPO(直接選好最適化)
- フォルダーの場所:
fine_tuning_data/preference/ - データの作成とアップロード
uv run fine_tuning_data/preference/convert_and_upload.py
3.3. RFT(強化ファインチューニング)
- フォルダーの場所:
fine_tuning_data/reinforcement/ - データの作成とアップロード
uv run fine_tuning_data/reinforcement/convert_and_upload.py
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。