Open2

はじめてのChatGPT

MasatMasat

openIにアカウントを作ったので初めてのアクセス
curlでAPIを叩くサンプルがあったのでそれを試す。

https://platform.openai.com/docs/api-reference/chat
のサンプルで動いた。ただし一箇所だけ直した。
Authorization: に「Bearer」をつけた

curl https://api.openai.com/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
  -d '{
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content": "こんにちは"}]

結果はこんな感じ

{
    "id": "chatcmpl-6qcHVFil317GoPSRDXo3BcBYG6Fmr",
    "object": "chat.completion",
    "created": 1677998229,
    "model": "gpt-3.5-turbo-0301",
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 12,
        "total_tokens": 21
    },
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "こんにちは!元気ですか?"
            },
            "finish_reason": "stop",
            "index": 0
        }
    ]
}
MasatMasat

例によって、AIの力をたくさん借りてdenoで書いてみる
コメントはAIの力を借りるため多めにした。

//ChatGPTのAPIを利用するためのサンプルプログラムです
//特別なライブラリは使いません

// OpenAIのAPIキーを設定します
const OPENAI_API_KEY: string = "取得したアクセストークン";

// APIに送るデータをJSON形式に変換します
const data: string = JSON.stringify({
    model: "gpt-3.5-turbo",
    messages: [{role: "user", content: "こんにちは"}],
    });

// APIに送るオプションを設定します
const options: RequestInit = {
    method: "POST",
    headers: {
    Authorization: `Bearer ${OPENAI_API_KEY}`,
    "Content-Type": "application/json",
    },
    body: data,
    };

// APIにリクエストを送ります
(async () => {
    try {
    const res: Response = await fetch(
    `https://api.openai.com/v1/chat/completions`,
    options
    );

// 応答のステータスコードやヘッダーを表示します
console.log(`Status code: ${res.status}`);
console.log(`Headers: ${JSON.stringify(res.headers)}`);

// 応答のデータを受け取ります
const body = await res.json();

// 応答のデータを表示します
console.log(`Body: ${JSON.stringify(body)}`);
} catch (error) {
// エラーが発生した場合は表示します
    console.error(error);
}
})();

結果成功!

> Status code: 200
Headers: {}
Body: {
    "id": "chatcmpl-6qdLoK2QTP0ep6jJcpaoLho4RskQn",
    "object": "chat.completion",
    "created": 1678002340,
    "model": "gpt-3.5-turbo-0301",
    "usage": {
        "prompt_tokens": 8,
        "completion_tokens": 39,
        "total_tokens": 47
    },
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "、こんにちは! お元気ですか?私はAIアシスタントです。何かお手伝いできることはありますか?"
            },
            "finish_reason": "stop",
            "index": 0
        }
    ]
}