sgcWebSockets 2023.3.0 以降、OpenAI API が完全にサポートされています。
OpenAI API は、自然言語・コード・画像の理解や生成に関わるほぼあらゆるタスクに適用できます。OpenAI はタスクに応じた様々な能力レベルのモデルを提供しており、独自カスタムモデルのファインチューニング機能も備えています。コンテンツ生成からセマンティック検索・分類まで幅広く活用できます。
認証
OpenAI API は認証に API キーを使用します。リクエストで使用する API キーは API キーページで取得してください。
API キーは秘密情報です。他者と共有したり、クライアント側のコード(ブラウザ・アプリ)に公開しないでください。本番リクエストは、API キーを環境変数またはキー管理サービスから安全に読み込める独自のバックエンドサーバー経由でルーティングする必要があります。この API キーはコンポーネントの OpenAIOptions.ApiKey プロパティに設定する必要があります。複数の組織に属するユーザーは、アカウントが組織に属している場合は OpenAIOptions.Organization プロパティで組織を設定できます。
OpenAI モデル
API キーを設定したら、以下は OpenAI API を操作するための利用可能な関数の一覧です。
モデルAPI で利用可能な各種モデルの一覧と説明。
- GetModels: 現在利用可能なモデルを一覧表示し、オーナーや利用可能状況などの基本情報を提供します。
- GetModel: モデルインスタンスを取得し、オーナーや権限などの基本情報を提供します。
- Model: このリクエストで使用するモデルの ID
補完
プロンプトを与えると、モデルは1つ以上の予測補完を返します。各位置の代替トークンの確率も返せます。
- CreateCompletion: 指定したプロンプトとパラメーターに対して補完を作成します。
- Model: 使用するモデルの ID。List models API で利用可能なモデルを確認できます。
- Prompt: 補完を生成するためのプロンプト。
チャット会話を与えると、モデルはチャット補完レスポンスを返します。
- Model: 使用するモデルの ID。Chat API がサポートするモデル一覧は GetModels を呼び出して取得します。
- Message: チャット補完を生成するためのメッセージ。
- Role: デフォルトは user、他のオプション:system、assistant。
プロンプトと指示を与えると、モデルは編集されたバージョンを返します。
- CreateEdit: 入力・指示・パラメーターに対して新しい編集を作成します。
- Model: 使用するモデルの ID。このエンドポイントでは text-davinci-edit-001 または code-davinci-edit-001 を使用できます。
- Instruction: プロンプトの編集方法をモデルに指示する指示文。
- Input: (オプション)編集の起点となる入力テキスト。
プロンプトや入力画像を与えると、モデルは新しい画像を生成します。
- CreateImage: プロンプトに基づいて画像を作成します。
- Prompt: 生成したい画像のテキスト説明。最大1000文字。
- CreateImageEdit: 元の画像とプロンプトを基に編集または拡張された画像を作成します。
- Image: 編集する画像。有効な PNG ファイル、4MB 未満、正方形である必要があります。マスクが指定されない場合、透明部分がマスクとして使用されます。
- Prompt: 生成したい画像のテキスト説明。最大1000文字。
- CreateImageVariations: 指定した画像のバリエーションを作成します。
- Image: バリエーションの基となる画像。有効な PNG ファイル、4MB 未満、正方形である必要があります。
Embeddings
機械学習モデルやアルゴリズムで利用しやすいベクトル表現を取得します。
- CreateEmbeddings: 入力テキストを表す埋め込みベクトルを作成します。
- Model: 使用するモデルの ID。
- Input: Embeddings を取得する入力テキスト。
音声
音声をテキストに変換します。
- CreateTranscriptionFromFile: ファイル名から指定の言語に音声を文字起こしします。
- Model: 使用するモデルの ID。現在は whisper-1 のみ利用可能です。
- Filename: 文字起こしする音声ファイル(形式:mp3、mp4、mpeg、mpga、m4a、wav、webm)。
- CreateTranscription: X 秒間音声を録音して文字起こしします。
- Model: 使用するモデルの ID。現在は whisper-1 のみ利用可能です。
- Time: ミリ秒単位の時間、デフォルトは10秒。
- CreateTranslationFromFile: 音声を英語に翻訳します。
- Model: 使用するモデルの ID。現在は whisper-1 のみ利用可能です。
- Filename: 翻訳する音声ファイル(形式:mp3、mp4、mpeg、mpga、m4a、wav、webm)。
- CreateTranslation: X 秒間音声を録音して翻訳します。
- Model: 使用するモデルの ID。現在は whisper-1 のみ利用可能です。
- Time: ミリ秒単位の時間、デフォルトは10秒。
ファインチューニングなどの機能で使用するドキュメントのアップロードに使用します。
- ListFiles: ユーザーの組織に属するファイルの一覧を返します。
- UploadFile: 各種エンドポイント・機能で使用するドキュメントを含むファイルをアップロードします。現在、1つの組織がアップロードできるファイルの合計サイズは最大1GBです。
- Filename: アップロードする JSON Lines ファイルの名前。目的が "fine-tune" の場合、各行はトレーニング例を表す "prompt" と "completion" フィールドを持つ JSON レコードです。
- Purpose: アップロードされるドキュメントの目的。ファインチューニングには "fine-tune" を使用します。
- DeleteFile: ファイルを削除します。
- FileId: このリクエストで使用するファイルの ID
- RetrieveFile: 特定のファイルの情報を返します。
- FileId: このリクエストで使用するファイルの ID
- RetrieveFileContent: 指定したファイルの内容を返します。
- FileId: このリクエストで使用するファイルの ID
特定のトレーニングデータに合わせてモデルをカスタマイズするファインチューニングジョブを管理します。
- CreateFineTune: 指定したデータセットから指定モデルをファインチューニングするジョブを作成します。レスポンスにはジョブステータスや完了後のファインチューニングモデル名を含むキューイングされたジョブの詳細が含まれます。
- TrainingFile: トレーニングデータを含むアップロード済みファイルの ID。
- ListFineTunes: 組織のファインチューニングジョブを一覧表示します。
- RetrieveFineTune: ファインチューニングジョブの情報を取得します。
- FineTuneId: ファインチューニングジョブの ID
- CancelFineTune: ファインチューニングジョブを即座にキャンセルします。
- FineTuneId: ファインチューニングジョブの ID
- ListFineTuneEvents: ファインチューニングジョブの詳細なステータス更新を取得します。
- FineTuneId: ファインチューニングジョブの ID
- DeleteFineTuneModel: ファインチューニング済みモデルを削除します。組織内でオーナーロールを持つ必要があります。
- Model: 削除するモデル。
モデレーション
入力テキストを与えると、モデルがそれを OpenAI のコンテンツポリシー違反として分類するかどうかを出力します。
- CreateModeration: テキストが OpenAI のコンテンツポリシーに違反するかどうかを分類します。
- Input: 分類する入力テキスト
OpenAI の例
以下は OpenAI API を使用して Delphi で構築されたアプリケーションの例です。
2. OpenAI Transcription Delphi Client
3. Translate OpenAI Delphi Client
4. Image Generator OpenAI Delphi Client
以下は、Delphi sgcWebSockets ライブラリを使用して Windows 向けに構築されたサンプル OpenAI API クライアントで、API の主要なメソッドを示しています。
