0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【0から目指すAIエンジニア】Day4:curlでopenaiのAPIを動かしてみた

Last updated at Posted at 2025-04-09

はじめに

こんにちは、慶應義塾大学理工学部機械工学科3年の金賢佑です!
私は東大発AIベンチャーの株式会社2WINSの元でインターンをしています!

これからの記事では自分がインターンを通して最強のAIエンジニアを目指していきます!
第四回はチャットAPIをcurlで動かしてみました!

curlとは

curl(カール)とはコマンドライン(ターミナルとか)でURLを指定してデータの送受信をするツールです!
また今回はWeb API、特にREST APIを使ってopenaiとデータの送受信をします。

また、REST APIに含まれるHTTPメソッドは以下の4つです。
GET:データを取得する
POST:データを作成する
PUT:データを更新する
DELETE:データを消去する

今回はデータを作成するのでPOSTを使います。

curlでチャットAPIを使ってみよう

まずは以下のコマンドAPIKEYを設定します!

export OPENAI_API_KEY='ここにAPIKEYを入力してください!'

その後実際にAPIリクエストを送ってみましょう!

curl -X POST https://api.openai.com/v1/chat/completions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      {"role": "user", "content": "こんにちは、元気ですか?"}
    ]
  }'

では重要な部分を解説していきます。

curl -X POST https://api.openai.com/v1/chat/completions \

curl:Webリクエストを送るためのコマンドラインツールです。
-X POST:POSTメソッドを使う!
https://api.openai.com/v1/chat/completions:エンドポイント
\は改行を意味します。

  -H "Authorization: Bearer $OPENAI_API_KEY" \

-HはHTTPヘッダーって言って、付属情報みたいなもの!
OPENAI_API_KEYを使って認証

  -H "Content-Type: application/json" \

送るデータはJSON形式だよ!

  -d '{
    "model": "gpt-4o",
    "messages": [
      {"role": "user", "content": "こんにちは、元気ですか?"}
    ]
  }'

-ddataの中身を書いているよ。

GPTからの回答が返ってきた!

{
  "id": "chatcmpl-BJalri90pdkM5uEatpPVtEsOoLNeS",
  "object": "chat.completion",
  "created": 1744009279,
  "model": "gpt-4o-2024-08-06",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "こんにちは!元気です、ありがとうございます。お手伝いできることがあれば教えてくださいね。",
        "refusal": null,
        "annotations": []
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 14,
    "completion_tokens": 24,
    "total_tokens": 38,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "audio_tokens": 0
    },
    "completion_tokens_details": {
      "reasoning_tokens": 0,
      "audio_tokens": 0,
      "accepted_prediction_tokens": 0,
      "rejected_prediction_tokens": 0
    }
  },
  "service_tier": "default",
  "system_fingerprint": "fp_898ac29719"
}

これはこの前Google colabでopenaiのライブラリを使った時と同じ結果が返ってきたね。

curlコマンド vs openai

curlでもも両方やっていることは同じ

# Google colab
import openai

openai.api_key = "YOUR_OPENAI_KEY"

response = openai.ChatCompletion.create(
    model="gpt-4o",
    messages=[
        {"role": "user", "content": "こんにちは!"}
    ]
)

print(response.choices[0].message.content)

でも一回一回APIリクエストを送るcurlはかなり面倒。。。
だからこそ一連のリクエストをフレームワークしたopenaiライブラリがめっちゃ優秀なわけ!

まとめ

openaiライブラリの優秀さがわかりましたね

今回は以上です!

参考文献

LangChainとLangGraphによるRAG・AIエージェント〈実践〉入門/西見公宏/吉田真吾/大嶋勇樹

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?