Open2
はじめてのChatGPT
openIにアカウントを作ったので初めてのアクセス
curlでAPIを叩くサンプルがあったのでそれを試す。
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
}
]
}
例によって、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
}
]
}