OpenAI Codex
OpenAI Codexは、現在(2024年5月時点)では直接一般ユーザーに提供されていません。
Codexは、もともとGitHub Copilotの基盤技術として開発され、自然言語での指示をコードに変換したり、コードの補完、デバッグ支援などを行う強力なAIモデルでした。しかし、OpenAIはCodexの機能を、より高度で汎用的な**GPTシリーズのモデル(特にGPT-3.5やGPT-4oなど)**に統合していく方針を取っています。
したがって、現在の「OpenAI Codexの使い方」は、以下のいずれかの状況を指すことになります。
- GitHub Copilotとして利用する
- 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の基本的な使い方:
- GitHub Copilotの購読: GitHub Copilotは有料サービスです(個人向けとビジネス向けがあります)。GitHub Copilotのウェブサイトで購読を完了させます。
- IDE拡張機能のインストール: 使用しているIDE(例: VS Code)にGitHub Copilotの拡張機能をインストールします。
- GitHubアカウントとの連携: 拡張機能を有効にし、GitHubアカウントでログインして連携を承認します。
- コードの記述:
- コメントによる指示: 自然言語で「// function that reverses a string」(文字列を反転させる関数)のようにコメントを書くと、Copilotがその下にコードを提案します。
- コードの途中での補完: 変数名や関数名を入力し始めると、文脈に応じて残りのコードを自動補完してくれます。
- ドキュメント生成: 関数定義の上にコメントを書くと、関数のドキュメンテーション文字列を生成してくれたりします。
- 提案の受け入れ/拒否:
- 提案されたコードが表示されたら、Tabキーを押して受け入れるか、Escキーを押して拒否します。
- 複数の提案がある場合は、Alt+]やAlt+[などで切り替えることができます。
GitHub Copilotは、あなたがコードを書くたびに、リアルタイムで関連性の高いコードスニペットや関数、さらにはファイル全体のコードを提案してくれます。
2. GPTモデル(API)をコーディングアシスタントとして利用する
Codexの能力は、OpenAIのより新しい汎用モデルであるGPT-3.5やGPT-4o(GPT-4を含む)に統合され、強化されています。これらのモデルは、APIを通じて開発者が利用でき、プログラミングに関する様々なタスクに活用できます。
GPTモデル(API)をコーディングアシスタントとして利用する一般的な方法:
-
OpenAI APIキーの取得: OpenAIのウェブサイトでアカウントを作成し、APIキーを取得します。
-
APIクライアントの利用: Pythonなどの言語でOpenAI APIクライアントライブラリを使用します。
-
プロンプトエンジニアリング: 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を通じて利用できる、と理解してください。