OpenAI Codex

Page content

OpenAI Codexは、現在(2024年5月時点)では直接一般ユーザーに提供されていません

Codexは、もともとGitHub Copilotの基盤技術として開発され、自然言語での指示をコードに変換したり、コードの補完、デバッグ支援などを行う強力なAIモデルでした。しかし、OpenAIはCodexの機能を、より高度で汎用的な**GPTシリーズのモデル(特にGPT-3.5やGPT-4oなど)**に統合していく方針を取っています。

したがって、現在の「OpenAI Codexの使い方」は、以下のいずれかの状況を指すことになります。

  1. GitHub Copilotとして利用する
  2. GPTモデル(API)をコーディングアシスタントとして利用する

それぞれについて説明します。


1. GitHub Copilotとして利用する

Codexの最も有名な応用例であり、現在もアクティブに利用できるのはGitHub Copilotです。GitHub Copilotは、OpenAI Codexを基盤として開発されたAIペアプログラマーであり、以下のIDE(統合開発環境)で利用できます。

  • Visual Studio Code (VS Code)
  • Visual Studio
  • JetBrains IDEs (IntelliJ IDEA, PyCharm, WebStorm, etc.)
  • Neovim

GitHub Copilotの基本的な使い方:

  1. GitHub Copilotの購読: GitHub Copilotは有料サービスです(個人向けとビジネス向けがあります)。GitHub Copilotのウェブサイトで購読を完了させます。
  2. IDE拡張機能のインストール: 使用しているIDE(例: VS Code)にGitHub Copilotの拡張機能をインストールします。
  3. GitHubアカウントとの連携: 拡張機能を有効にし、GitHubアカウントでログインして連携を承認します。
  4. コードの記述:
    • コメントによる指示: 自然言語で「// function that reverses a string」(文字列を反転させる関数)のようにコメントを書くと、Copilotがその下にコードを提案します。
    • コードの途中での補完: 変数名や関数名を入力し始めると、文脈に応じて残りのコードを自動補完してくれます。
    • ドキュメント生成: 関数定義の上にコメントを書くと、関数のドキュメンテーション文字列を生成してくれたりします。
  5. 提案の受け入れ/拒否:
    • 提案されたコードが表示されたら、Tabキーを押して受け入れるか、Escキーを押して拒否します。
    • 複数の提案がある場合は、Alt+]やAlt+[などで切り替えることができます。

GitHub Copilotは、あなたがコードを書くたびに、リアルタイムで関連性の高いコードスニペットや関数、さらにはファイル全体のコードを提案してくれます。


2. GPTモデル(API)をコーディングアシスタントとして利用する

Codexの能力は、OpenAIのより新しい汎用モデルであるGPT-3.5やGPT-4o(GPT-4を含む)に統合され、強化されています。これらのモデルは、APIを通じて開発者が利用でき、プログラミングに関する様々なタスクに活用できます。

GPTモデル(API)をコーディングアシスタントとして利用する一般的な方法:

  1. OpenAI APIキーの取得: OpenAIのウェブサイトでアカウントを作成し、APIキーを取得します。

  2. APIクライアントの利用: Pythonなどの言語でOpenAI APIクライアントライブラリを使用します。

  3. プロンプトエンジニアリング: AIに具体的な指示(プロンプト)を与えます。

    • コード生成の例:
      import openai
      
      openai.api_key = "YOUR_API_KEY"
      
      response = openai.chat.completions.create(
          model="gpt-4o", # または "gpt-3.5-turbo"
          messages=[
              {"role": "system", "content": "You are a helpful coding assistant."},
              {"role": "user", "content": "Pythonで、リスト内の重複要素を削除し、ソートする関数を書いてください。"},
          ]
      )
      print(response.choices[0].message.content)
      
    • コードのデバッグの例:
      # (上記のmessages部分を以下のように変更)
      messages=[
          {"role": "system", "content": "You are a helpful coding assistant."},
          {"role": "user", "content": "以下のPythonコードのバグを見つけて修正してください。\n\ndef add_numbers(a, b):\n    return a + c"},
      ]
      
    • コードの説明の例:
      # (上記のmessages部分を以下のように変更)
      messages=[
          {"role": "system", "content": "You are a helpful coding assistant."},
          {"role": "user", "content": "以下のJavaScriptコードは何をしますか?簡潔に説明してください。\n\nfunction factorial(n) {\n  if (n === 0) return 1;\n  return n * factorial(n - 1);\n}"},
      ]
      

これらのGPTモデルは、Codexが持っていたコード生成・補完能力に加え、より複雑な論理的推論や、多様なドメイン知識を組み合わせた応答が可能です。


まとめ:

OpenAI Codexそのものは、もはや独立した製品としては提供されていません。その機能は、GitHub Copilotとして、またはOpenAIの汎用GPTモデル(GPT-3.5, GPT-4, GPT-4oなど)のAPIを通じて利用できる、と理解してください。