JavaScript | OpenAI APIの実装サンプルコード
JavascriptでOpenAI APIを実装するサンプルコードです。
紹介しているJavascriptのサンプルコードではChatGPTに搭載されているAIモデル「GPT-3」を利用しています。
また、fetch()
を使ったバージョンとXMLHttpRequest()
を使ったバージョンを紹介しています。
以下のサンプルコードで最低限必要なものは、OpenAIのAPIキーと問い合わせるキーワードやメッセージになります。
関連:OpenAI | APIキーを取得する方法 | ONE NOTES
OpenAI APIの実装サンプルコード(fetchバージョン)
OpenAIのAPIをJavascriptで実装するサンプルコード、fetch()
を使ったバージョンになります。
下記にて指定パラメータについて紹介しています。
async function sendPrompt(prompt = '') {
let API_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
// promptがない場合
if (!prompt) return
const response = await fetch('https://api.openai.com/v1/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${API_KEY}`,
},
body: JSON.stringify({
'model': 'text-davinci-003',
// 'model': 'text-curie-001', // 動作テスト用(料金的に)
'prompt': prompt,
"max_tokens": 150, // 出力される文章量の最大値(トークン数) max:4096
"temperature": 1, // 単語のランダム性 min:0.1 max:2.0
"top_p": 1, // 単語のランダム性 min:-2.0 max:2.0
"frequency_penalty": 0.0, // 単語の再利用 min:-2.0 max:2.0
"presence_penalty": 0.6, // 単語の再利用 min:-2.0 max:2.0
"stop": [" Human:", " AI:"] // 途中で生成を停止する単語
}),
})
const data = await response.json()
console.log(data.choices[0].text.trim())
}
let prompt = ''
sendPrompt(prompt)
OpenAI APIの実装サンプルコード(XMLHttpRequestバージョン)
OpenAIのAPIをJavascriptで実装するサンプルコード、XMLHttpRequest()
を使ったバージョンになります。
function sendPrompt(prompt = '') {
let API_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
// promptがない場合
if (!prompt) return
let xhr = new XMLHttpRequest()
xhr.open('POST', 'https://api.openai.com/v1/completions')
xhr.setRequestHeader('Content-Type', 'application/json')
xhr.setRequestHeader('Authorization', `Bearer ${API_KEY}`
xhr.send(JSON.stringify({
'model': 'text-davinci-003',
// 'model': 'text-curie-001', // 動作テスト用(料金的に)
'prompt': prompt,
"max_tokens": 150, // 出力される文章量の最大値(トークン数) max:4096
"temperature": 1, // 単語のランダム性 min:0.1 max:2.0
"top_p": 1, // 単語のランダム性 min:-2.0 max:2.0
"frequency_penalty": 0.0, // 単語の再利用 min:-2.0 max:2.0
"presence_penalty": 0.6, // 単語の再利用 min:-2.0 max:2.0
"stop": [" Human:", " AI:"] // 途中で生成を停止する単語
}))
xhr.onreadystatechange = function () {
if (xhr.readyState === XMLHttpRequest.DONE) {
// レスポンス受け取り後の処理
let response = JSON.parse(xhr.responseText)
console.log(response.choices[0].text.trim())
}
}
}
let prompt = ''
sendPrompt(prompt)
実装サンプルコードの実行結果
送信するテキストを prompt に代入してsendPrompt()
を実行します。
let prompt = '好きです。付き合って下さい。'
sendPrompt(prompt)
// ごめんなさい。私はすでに付き合っている人がいます。ただの友人関係として一緒にいることはできますが、付き合うことはできません。
ほとんど振られますが、たまに告白に成功します。
また、ChatGPTの方でAIに告白して(強引に)成功したものを紹介していますので宜しければ。
関連:AIに愛の告白をしてみた、恋愛そして結婚へー(ChatGPT) | ONE NOTES
OpenAI APIのパラメータ
各種パラメータを設定していますが、チャットによる会話がメインとなる場合のパラメータ設定になっています。
例えば、翻訳にしたい場合は「temperature」を「0.1」、「top_p」を「-2」にると決まった結果を得やすくなります。
また、目的が翻訳であれば「model」を「text-curie-001」にしても十分に機能します。
「text-curie-001」ならAPIの利用料金が10分の1になります。
関連:OpenAI | APIの利用料金と無料分など、ChatGPTモデルは高額になりやすい? | ONE NOTES
ディスカッション
コメント一覧
まだ、コメントがありません