🙂

OpenAI o3 考えながら行動がより自然に

はじめに

日本時間2025年4月17日早朝にOpenAIからo3o4-miniが発表されました。合わせて、CLIベースの開発支援ツールであるCodex CLIも発表されました。

  • ChatGPT Plus、Pro、Teamユーザーは、モデルセレクターでo1、o3-mini、o3-mini-highに代わり、o3、o4-mini、o4-mini-highが表示される
  • ChatGPT EnterpriseおよびEduユーザーは1週間後に新モデルへアクセスできるようになる
  • 無料ユーザーは、クエリ送信前にコンポーザーで「Think」を選択することでo4-miniを試すことができる
  • 全プランのレート制限は以前のモデルセットから変更なし
  • OpenAI o3-proは数週間以内にリリース予定
  • 現時点では、Proユーザーは引き続きo1-proを利用できる

詳しい紹介やベンチマーク系の話しは下記一次情報をご覧頂けたらと思います。
https://openai.com/index/introducing-o3-and-o4-mini/
https://www.youtube.com/watch?v=sq8GBPUb3rk
https://www.youtube.com/watch?v=FUq9qRwrDrI
https://x.com/OpenAI/status/1912560057100955661

Webやアプリ上で既に「o1とo3-mini → o3とo4-mini」

下記画像のように、既に「o1とo3-mini → o3とo4-mini」へ置き換えられています。o3がo1の後継で、o4-miniがo3-miniの後継のようです。

2025年4月17日時点のモデルラインナップ

ツールの使用能力が向上

o3は、推論に加えてChatGPTで使えるツールの使用能力が向上しています。

  • 最新情報をウェブで検索
  • Pythonを使ったデータ分析
  • 画像を理解
  • 必要に応じて画像やグラフを作成

実際にo3を使って、Codex CLIをインストールした時のトラブルシューティングしてみました。かなり自然に考えながらWeb検索をしてアウトプットしてくれているのがわかります。

Codex CLIをインストールした時のトラブルシューティング
また、ChatGPTの長期記憶を使って知識の開拓をしてもらいました。Pythonを使ってグラフを作ってくれているのと、Canvasに下書きを書いて直接編集できるようにしてくれていますね。

プロンプト
私について知っている情報を踏まえ、最新のニュースから、私の興味分野のうち少なくとも2つに関連し、かつ私がまだ知らないと思われる、やや専門的なトピックを紹介してください。また、興味深い統計・関連性・データを示すグラフも作成してください。さらに、得られた情報を基にcanvasでブログ記事の下書きを作成してください(引用は不要)。下書きには、作成したグラフを挿入する位置にプレースホルダーを付けてください。

##重要
グラフは日本語だと文字化けするので英語で記載してください


ChatGPTの長期記憶を使って知識の開拓
これまでのo1にはそもそもWeb検索がありませんでした。また、3/14にo1でもPythonが動かせるようになりましたが、かなり明示的に書かないとPythonが実行されなかったり、意図した通りに動かない印象でした。(https://zenn.dev/acntechjp/articles/e87be0bfb7c91c)

o3への第一印象としては、推論に強いo1の良い所を残しつつ、ツールの使用能力が向上しているです!

というかAIエージェントです!

https://youtu.be/XXWZcGrYNVE
なぜかというと、下記のようなタスクをo3がステップバイステップで動かしてくれました。これって、ManusやGenSparkのハイパーエージェントレベルじゃんって思ってしまいました。

  • AI記事検索
  • ブログ用にマークダウン作成
  • グラレコ作成
  • ブログ用のタイトル画像生成

具体的なプロンプトも掲載しますね。興味がある方はぜひ参考にしてみてください。

プロンプト
プロンプト
# 目的:
#   任意の最新IT技術トピックを受け取り、
#   1. IT技術トピックについて検索する。
#   2. ITブログ向けにマークダウン形式に変換する。
#   3. グラフィックレコーディング風のHTMLインフォグラフィックに変換する。
#   4. ITブログ記事のイメージ画像を自動生成する。
---------------------------------------------------------------------------
meta_prompt:
  variables:                       # 
    size:         "1920x1280"      # 出力サイズ
    ratio:        "3:2"            # アスペクト比

  system_prompt: |-
    あなたはトップレベルIT専門のブロガーです。以下の4ステップを順に実行してください。

## Step1 — IT技術トピックについて検索する
1. TechCrunch、VentureBeat、The Vergeといった主要なAI関連ニュースサイトから最新のAIニュースのみを検索し、記事の内容を忠実に抽出する
2. 上位 5記事を抽出したうえで、背景、特徴、強み、弱みを詳細に出力する。結果は日本語で出力する。

## Step2 — ITブログ向けにマークダウン形式に変換する。変換する際は、専門用語を残しつつ専門家ではなくてもわかるように表現する。
1. Step1の内容について、ITブログ向けにマークダウン形式に変換する。変換する際は、専門用語を残しつつ専門家ではなくてもわかるように表現する

## Step3 - グラフィックレコーディング風のHTMLインフォグラフィックに変換する。
1. 超一流デザイナーが作成したような、日本語で完璧なグラフィックレコーディング風のHTMLインフォグラフィックに変換してCanvasに出力する。
2. デザイン仕様は下記

### 1. カラースキーム
#### HTML
  <palette>
  <color name='ファッション-1' rgb='593C47' r='89' g='59' b='70' />
  <color name='ファッション-2' rgb='F2E63D' r='242' g='230' b='60' />
  <color name='ファッション-3' rgb='F2C53D' r='242' g='196' b='60' />
  <color name='ファッション-4' rgb='F25C05' r='242' g='91' b='4' />
  <color name='ファッション-5' rgb='F24405' r='242' g='68' b='4' />
  </palette>
### 2. グラフィックレコーディング要素
- 左上から右へ、上から下へと情報を順次配置
- 日本語の手書き風フォントの使用(Yomogi, Zen Kurenaido, Kaisei Decol)
- 手描き風の囲み線、矢印、バナー、吹き出し
- テキストと視覚要素(アイコン、シンプルな図形)の組み合わせ
- キーワードの強調(色付き下線、マーカー効果)
- 関連する概念を線や矢印で接続
- 絵文字やアイコンを効果的に配置(✏️📌📝🔍📊など)
### 3. タイポグラフィ
- タイトル:32px、グラデーション効果、太字
- サブタイトル:16px、#475569
- セクション見出し:18px、#1e40af、アイコン付き
- 本文:14px、#334155、行間1.4
- フォント指定:
#### html
    <style>
    @import url('https://fonts.googleapis.com/css2?family=Kaisei+Decol&family=Yomogi&family=Zen+Kurenaido&display=swap');
    </style>
    
### 4. レイアウト
- ヘッダー:左揃えタイトル+右揃え日付/出典
- 3カラム構成:左側33%、中央33%、右側33%
- カード型コンポーネント:白背景、角丸12px、微細シャドウ
- セクション間の適切な余白と階層構造
- 適切にグラスモーフィズムを活用
- コンテンツの横幅は100%にして

### 5. グラフィックレコーディング表現技法
- テキストと視覚要素のバランスを重視
- キーワードを囲み線や色で強調
- 簡易的なアイコンや図形で概念を視覚化
- 数値データは簡潔なグラフや図表で表現
- 接続線や矢印で情報間の関係性を明示
- 余白を効果的に活用して視認性を確保
### 6. 全体的な指針
- 読み手が自然に視線を移動できる配置
- 情報の階層と関連性を視覚的に明確化
- 手書き風の要素で親しみやすさを演出
- 視覚的な記憶に残るデザイン
- フッターに出典情報を明記
### 7. 変換する文章/記事
- Step2の内容

## Step4 - ITブログ記事のイメージ画像を自動生成する。
### 1. フォーマット
- サイズ: {{size}} ({{ratio}})
### 2. 生成する画像
- Step2の内容をイメージできるような画像を生成する。アニメ風でお願いします。

このプロンプトは、テツトモさんMakiさんのをかなり参考にしています。

画像認識もすごい!

https://youtu.be/NCHsVdqy4YY
画像認識も精度あがっていますね。この動画では領収書をOCRしたのですが、かなり細かく画像解析してくれています。

画像解析の様子
こんなかんじで。プロンプトも置きますね。

プロンプト
プロンプト
あなたは優秀な経理担当者です。受け取った領収書を画像解析して文字や金額を起こしてください。
## 重要事項
- わからない項目がある場合は、正直に「N/A」と記入してください。
- 1枚の画像に複数の領収書が含まれている場合は、それぞれの領収書ごとに別々のJSONを作成してください。
- 回答はJSONのみで出力してください。
- 標準的でない形式や追加情報がある場合は、各行の注記として記載してください。
- テキスト出力した根拠となる画像の場所について、クロップできるように、それぞれ座標(x,y)と幅、高さも教えてください。単位はpxでお願いします。
- 座標は最大限精確に算出してください。

## 項目の説明
- 支払先会社名
- 発行日
- 支払金額税込
- 通貨
- 登録番号

## 出力形式
以下の項目をJSON形式で出力してください。

## 出力項目(優先順位順)
1. 支払先会社名
2. 発行日
3. 支払金額税込
4. 通貨
5. 登録番号
6. 注記

## JSONの定義
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "InvoiceFields",
"type": "object",
"properties": {
  "imageWidthPx": {
    "type": "integer",
    "description": "撮影した画像の幅(px)"
  },
  "imageHeightPx": {
    "type": "integer",
    "description": "撮影した画像の高さ(px)"
  },
  "payeeName": {
    "type": "object",
    "title": "支払先会社名",
    "description": "支払先の会社名。宛名や請求先ではなく、実際に支払う先の会社名を示します。",
    "properties": {
      "value": {
        "type": "string",
        "description": "実際の文字列値(支払先会社名)"
      },
      "x": {
        "type": "number",
        "description": "座標X"
      },
      "y": {
        "type": "number",
        "description": "座標Y"
      },
      "width": {
        "type": "number",
        "description": "幅"
      },
      "height": {
        "type": "number",
        "description": "高さ"
      }
    },
    "required": ["value", "x", "y", "width", "height"]
  },
  "issueDate": {
    "type": "object",
    "title": "発行日",
    "description": "領収書を発行した日付(YYYY-MM-DD形式)",
    "properties": {
      "value": {
        "type": "string",
        "description": "実際の文字列値(発行日)",
        "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|1\\d|2\\d|3[01])$",
        "example": "2025-03-15"
      },
      "x": {
        "type": "number",
        "description": "座標X"
      },
      "y": {
        "type": "number",
        "description": "座標Y"
      },
      "width": {
        "type": "number",
        "description": "幅"
      },
      "height": {
        "type": "number",
        "description": "高さ"
      }
    },
    "required": ["value", "x", "y", "width", "height"]
  },
  "amountIncludingTax": {
    "type": "object",
    "title": "支払金額税込",
    "description": "税込み合計金額(カンマ区切り、小数点以下2桁まで)。税抜き金額しかない場合は、税額を加算して税込みにしてください。",
    "properties": {
      "value": {
        "type": "string",
        "description": "実際の文字列値(支払金額税込)",
        "pattern": "^\\d{1,3}(,\\d{3})*(\\.\\d{2})?$",
        "example": "12,345.67"
      },
      "x": {
        "type": "number",
        "description": "座標X"
      },
      "y": {
        "type": "number",
        "description": "座標Y"
      },
      "width": {
        "type": "number",
        "description": "幅"
      },
      "height": {
        "type": "number",
        "description": "高さ"
      }
    },
    "required": ["value", "x", "y", "width", "height"]
  },
  "currency": {
    "type": "object",
    "title": "通貨",
    "description": "支払金額の通貨。例:JPY、USD、EUR",
    "properties": {
      "value": {
        "type": "string",
        "description": "実際の文字列値(通貨)",
        "pattern": "^[A-Z]{3}$",
        "example": "JPY"
      },
      "x": {
        "type": "number",
        "description": "座標X"
      },
      "y": {
        "type": "number",
        "description": "座標Y"
      },
      "width": {
        "type": "number",
        "description": "幅"
      },
      "height": {
        "type": "number",
        "description": "高さ"
      }
    },
    "required": ["value", "x", "y", "width", "height"]
  },
  "registrationNumber": {
    "type": "object",
    "title": "登録番号",
    "description": "適格請求書発行事業者の登録番号。法人番号がある場合は「T+法人番号」、ない場合は「T+13桁の固有番号」(例:T0000000000000)。",
    "properties": {
      "value": {
        "type": "string",
        "description": "実際の文字列値(登録番号)",
        "pattern": "^T\\d{13}$",
        "example": "T1234567890123"
      },
      "x": {
        "type": "number",
        "description": "座標X"
      },
      "y": {
        "type": "number",
        "description": "座標Y"
      },
      "width": {
        "type": "number",
        "description": "幅"
      },
      "height": {
        "type": "number",
        "description": "高さ"
      }
    },
    "required": ["value", "x", "y", "width", "height"]
  },
  "notes": {
    "type": "object",
    "title": "注記",
    "description": "領収書や支払に関して補足や特記事項があれば記入します。",
    "properties": {
      "value": {
        "type": "string",
        "description": "実際の文字列値(注記)"
      },
      "x": {
        "type": "number",
        "description": "座標X"
      },
      "y": {
        "type": "number",
        "description": "座標Y"
      },
      "width": {
        "type": "number",
        "description": "幅"
      },
      "height": {
        "type": "number",
        "description": "高さ"
      }
    },
    "required": ["value", "x", "y", "width", "height"]
  }
},
"required": [
  "imageWidthPx",
  "imageHeightPx",
  "payeeName",
  "issueDate",
  "amountIncludingTax",
  "currency",
  "registrationNumber",
  "notes"
]
}

o3を普段使いしましょう!

様々なベンチマーク結果や使っている様子や事例が飛び交っていますが、我々はまだo3をどう使っていくのかわかっていないと私は考えています。これからo3を使い倒してビジネスや私生活にどう活かしていくのか考えるフェーズかなと。私含めて、みなさんもぜひo3を普段使いしていきましょう!

Codex CLIも興味深い

CodexはCLIベースの開発支援ツールで、OpenAIの最新AIモデル(o3やo4-mini)と連携できます。オープンソースでGithubに公開されました。
https://github.com/openai/codex
Codex CLIは、OpenAIのモデルをコマンドラインインターフェースに統合することで、開発者のワークフローに直接組み込みやすい点が注目されています。このアプローチはAnthropicのClaude Codeと類似しており、個人的にはAnthropicの方向性に追随して来たのが嬉しい!
現状、o3とo4-miniのみですが、GPT-4.1などにも対応していくそうです。

おわりに

いかがでしたか。新しいモデルがでるとワクワクしますね!ぜひぜひo3を普段使いして、いろいろ試していきましょう!

Accenture Japan (有志)

Discussion