2026年5月25日月曜日

OpenAI Codex


図:OpenAI Codexの起動画面


かつてClaude Codeを絶賛していた菅野完が,Codexに乗り換えるというので,さっそく追随してみた。AIによるプログラム開発支援モードである。

まずは,brew install codex でインストールしたところ,既にnpmで入っていたものとぶつかってしまう(どこかで見た風景)。仕方がないので,アンインストールしてから,brew install --cask codex でOK。ターミナルで,codexとすると,図の実行画面になる。

macOSにはWebインターフェースのcodexアプリ版もあるのだけれど,ChatGPTには,CLI版を使うようにアドバイスされた。Claude CodeとCodexの違いも聞いたのだが,Claude Codeは親切な対話型でコードのレベルも高くコンテキストウィンドウも大きい。しかし,トークンが嵩みコストが高すぎるのがネックだ。Codexは自動型でどんどん進んでいくが(ちょっと速すぎてこわかった),トークンコストは低いし,OpenAI Plusで無料で利用できる部分もある。

実行例として,日本語Wikipediaからテンプレートとモジュールと抽出するコードで試した。
Codex CLIのコマンドラインでの結果をClaudeでまとめてもらったものが,以下である。

A(Claude):
OpenAI Codex(GPT-5.5搭載)を使用して、日本語版Wikipediaからテンプレート使用状況を抽出するCLIツールを作成した過程をまとめました。

1.開発環境の準備と要件定義
まずはプロジェクト用のディレクトリを作成し、仮想環境を有効化してCodexを起動します。

```bash
source ~/myenv/bin/activate
pwd
# /Users/koshi/jawiki-template-test
codex
```

依頼内容:
・Wikipedia APIからwikitextを取得し、テンプレート名と出現回数をCSV出力するPythonツール。
・ `extract_templates.py`, `articles.txt`, `requirements.txt`, `README.md` の4ファイルを作成。

2.実装フェーズ(一括生成)
Codexがリポジトリ内を確認し、既存ファイルがないことを把握した上で、一気に4つのファイルを生成しました。

> **Codexの判断:**
> 「フォルダ内には既存ファイルがないようです。API取得、簡易テンプレート抽出、CSV出力、READMEの最小構成で実装します。」

メインロジックである `extract_templates.py` では、MediaWiki APIへのリクエスト処理が実装されました。

```python
# APIリクエスト部分の引用
params = {
    "action": "query",
    "format": "json",
    "prop": "revisions",
    "titles": title,
    "rvprop": "content",
    "rvslots": "main",
    "redirects": "1",
}
```

3.ユニットテストと動作検証
ファイル生成後、Codexは自律的に「コードが動くか」のチェックを開始します。

・構文チェック: `python -m py_compile` でエラーがないか確認。
・ロジック検証: ネットワークを使わずに、正規表現によるテンプレート抽出が正しく機能するかテスト。

```bash
# 抽出ロジックのテスト実行
python -c "from extract_templates import extract_template_names; \
print(extract_template_names('{{Infobox|x={{small|a}}}} text {{テンプレート:出典の明記}}'))"
# 出力結果: ['Infobox', 'small', '出典の明記']
```

4.ネットワーク接続テスト(実機確認)
最後に、実際にWikipediaのサーバーへ接続して記事(「日本」「東京」)のデータを取得できるかテストします。一度ネットワークエラーが出たものの、権限を承認して再実行。

```bash
python extract_templates.py --input articles.txt --output template_usage.csv
# Fetching: 日本
# Fetching: 東京
# Wrote template_usage.csv
```

5.仕上げ(クリーンアップ)
動作確認のために生成された一時ファイル(`template_usage.csv` や `__pycache__`)を、Codexが「依頼外のファイルである」と判断して自動的に削除しました。

> **Codexの配慮:**
> 「動作確認で CSV が生成されましたが、依頼された作成対象は4ファイルなので、成果物サンプルは残さず削除しておきます。」

まとめ
最新のGPT-5.5モデルを搭載したCodexは、単にコードを書くだけでなく、「環境確認 → 実装 → テスト → 修正 → 掃除」という一連のエンジニアリング工程を自律的に完遂しました
最終的に、指定通りの4ファイルが揃ったクリーンな状態で作業完了となりました。


0 件のコメント: