1
0
生成AIに関する記事を書こう!
Qiita Engineer Festa20242024年7月17日まで開催中!

AIにチャレンジ! OpenAI APIでAIを動かしてみよう♪

Last updated at Posted at 2024-06-11

こんにちは、みなさん!
前回の記事「はじめてのOpenAI API入門」でOpenAI APIを動かせる準備は整いましたね!今回は実際にAPIを動かしてみましょう♪

APIの種類

APIには2つの種類があります:Chat Completions APIとAssistants APIです。

この2つの違いは、会話が単発か継続かという点です。Chat Completions APIは1回きりの回答ですが、Assistants APIでは作成したスレッド上で会話を続けることができます。

今回はChat Completions APIの動かし方を解説します。

Chat Completions APIの構成

Chat Completions APIの構成は以下の通りです。

  • model: 使用するモデルを指定します
  • messages
    • role: contentの役割で、以下のいずれかの値を持ちます
      • system: ChatGPTのCustom instructionsに相当
      • user: ChatGPTを使うユーザーに相当
      • assistant: ChatGPTの回答に相当
      • tool: 関数呼び出しの結果、toolsパラメーター使用時に使います
    • content: プロンプトや回答

messagesの配列にはChatGPTとのやり取りを時系列で入力し、最後のmessageに対する回答が返ってきます。

APIを動かす方法

APIを動かす方法にはPlaygroundと自作のプログラムの2つがあります。

Playgroundで動かす方法
  1. メニューからPlaygroundのChatを選択します。

PlaygroundでChatを選択

  1. 下部の入力欄でuserを選択してプロンプトを入力します。

userを選択してプロンプトを入力

  1. 今度はassistantを選択して回答を入力します。

assistantを選択して回答を入力

  1. 続いてuserを選択してプロンプトの入力が終わったらrunボタンをクリックします。

runボタンをクリック

  1. プロンプトに対する回答が生成されました。

回答が生成されました

  1. 右上の </> をクリックすると実行されたコードを確認できます。

実行されたコードを確認

自作のプログラムで動かす方法

Playgroundで動かした際のコードをPythonで実行してみましょう。

from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
  model="gpt-4o",
  messages=[
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "2007年に日本一になった球団は?"
        }
      ]
    },
    {
      "role": "assistant",
      "content": [
        {
          "type": "text",
          "text": "中日ドラゴンズです。"
        }
      ]
    },
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "どの球場で決まりましたか?"
        }
      ]
    }
  ],
  temperature=1,
  max_tokens=256,
  top_p=1,
  frequency_penalty=0,
  presence_penalty=0
)

実行結果は以下の通りです。

{
  "id": "chatcmpl-9YuSbE65my4yR3nYl2OPSNKxmTR91",
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "message": {
        "content": "2007年の日本シリーズで中日ドラゴンズが日本一を決めた試合は、ナゴヤドーム(現在のバンテリンドーム ナゴヤ)で行われました。",
        "role": "assistant",
        "function_call": null,
        "tool_calls": null
      }
    }
  ],
  "created": 1718107213,
  "model": "gpt-4o-2024-05-13",
  "object": "chat.completion",
  "system_fingerprint": "fp_319be4768e",
  "usage": {
    "completion_tokens": 46,
    "prompt_tokens": 44,
    "total_tokens": 90
  }
}

messageのcontentに回答が含まれていることが確認できます。usageをみるとトークン数も確認できます。

まとめ

Chat Completions APIの基本構造を理解していただけましたか? PlaygroundとPythonから簡単に動かすことができましたね。Chat Completions APIにはパラメータがたくさんあります。次回以降でパラメータについて解説していきます。

何か質問があれば、コメントで教えてくださいね。それでは、次回の記事もお楽しみに!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0