ChatGPT API Perl版

logo_gpt

ChatGPT API メモ。

OpenAI API Reference

 

エンドポイント

Chatエンドポイント

https://api.openai.com/v1/chat/completions

 

画像生成エンドポイント

https://api.openai.com/v1/images/generations

 

ドキュメントにあるCURLのリクエストとレスポンス

Chat

デフォルトChatリクエスト

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "Hello!"
      }
    ]
  }'

 

デフォルトChatレスポンス

{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "gpt-3.5-turbo-0125",
  "system_fingerprint": "fp_44709d6fcb",
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "\n\nHello there, how may I assist you today?",
    },
    "logprobs": null,
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 12,
    "total_tokens": 21
  }
}

 

Image Inputリクエスト

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4-turbo",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "What'\''s in this image?"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
            }
          }
        ]
      }
    ],
    "max_tokens": 300
  }'

 

Image Inputレスポンス

{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "gpt-3.5-turbo-0125",
  "system_fingerprint": "fp_44709d6fcb",
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "\n\nThis image shows a wooden boardwalk extending through a lush green marshland.",
    },
    "logprobs": null,
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 12,
    "total_tokens": 21
  }
}

 

画像生成

リクエスト

curl https://api.openai.com/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "dall-e-3",
    "prompt": "A cute baby sea otter",
    "n": 1,
    "size": "1024x1024"
  }'

 

prompt dall-e-3は、最大4000文字
model dall-e-2、dall-e-3 デフォルトはdall-e-2
n 生成枚数。dall-e-3は、1枚のみ
quality 画像のクオリティをstandardhdで指定(dall-e-3のみ)デフォルトはstandard
response_format 生成画像タイプをURLb64_jsonで指定。デフォルトはURL(URLの場合、画像生成後60分で消滅)
size 生成画像のサイズ指定。dall-e-3は、1024x1024 1792x1024 1024x1792 の3種類
style vivid naturalがある。デフォルトはvividvivid を使用すると、超リアルでドラマチックな画像を生成。Natural を選択すると、より自然で、あまり現実的ではない画像を生成。
user 不正利用対策に利用できる

 

レスポンス

{
  "created": 1589478378,
  "data": [
    {
      "url": "https://..."
    },
    {
      "url": "https://..."
    }
  ]
}

 

Perl サブルーチン

続きを読むにはパスワードを入力してください。

この記事はパスワードを入力することで閲覧可能になります。