v1-chat-completions API の JavaScript (Node.js) クイックスタートガイド
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2025年01月24日(金)
Table of Contents
Heroku Managed Inference and Agent アドオンは現在パイロット段階です。パイロットの一環として提供される製品は本番環境での使用を目的としたものではなく、ベータサービスとみなされています。また、https://www.salesforce.com/company/legal/agreements.jsp のベータサービス条件が適用されます。
Heroku の Claude チャットモデル (Claude 3.5 Sonnet Latest、Claude 3.5 Sonnet、Claude 3.5 Haiku、Claude 3.0 Haiku)) は、入力メッセージに対する会話補完を生成します。このガイドでは、JavaScript で v1-chat-completions API を使用する方法について説明します。
前提条件
リクエストを行う前に、選択したモデルへのアクセスをプロビジョニングします。
まだインストールされていない場合は、Heroku CLI をインストールします。次に、Heroku AI プラグインをインストールします。
heroku plugins:install @heroku/plugin-ai
チャットモデルをアプリにアタッチします。
# If you don't have an app yet, you can create one with: heroku create $APP_NAME # specify the name you want for your app (or skip this step to use an existing app you have) # Create and attach one of our chat models to your app, $APP_NAME: heroku ai:models:create -a $APP_NAME claude-3-5-sonnet --as INFERENCE # OR heroku ai:models:create -a $APP_NAME claude-3-haiku --as INFERENCE
必要な
axios
パッケージをインストールします。npm install axios
JavaScript のサンプルコード
const axios = require('axios');
// Assert that environment variables are set
const INFERENCE_URL = process.env.INFERENCE_URL;
const INFERENCE_KEY = process.env.INFERENCE_KEY;
const INFERENCE_MODEL_ID = process.env.INFERENCE_MODEL_ID;
if (!INFERENCE_URL || !INFERENCE_KEY || !INFERENCE_MODEL_ID) {
console.error("Missing required environment variables.");
console.log("Set them up using the following commands:");
console.log("export INFERENCE_URL=$(heroku config:get -a $APP_NAME INFERENCE_URL)");
console.log("export INFERENCE_KEY=$(heroku config:get -a $APP_NAME INFERENCE_KEY)");
console.log("export INFERENCE_MODEL_ID=$(heroku config:get -a $APP_NAME INFERENCE_MODEL_ID)");
process.exit(1);
}
async function parseChatOutput(response) {
if (response.status === 200) {
console.log("Chat Completion:", response.data.choices[0].message.content);
} else {
console.log(`Request failed: ${response.status}, ${response.statusText}`);
}
}
async function generateChatCompletion(payload) {
try {
const response = await axios.post(`${INFERENCE_URL}/v1/chat/completions`, payload, {
headers: {
'Authorization': `Bearer ${INFERENCE_KEY}`,
'Content-Type': 'application/json'
}
});
await parseChatOutput(response);
} catch (error) {
console.error("Error generating chat completion:", error.message);
}
}
// Example payload
const payload = {
model: INFERENCE_MODEL_ID,
messages: [
{ role: "user", content: "Hello!" },
{ role: "assistant", content: "Hi there! How can I assist you today?" },
{ role: "user", content: "Why is Heroku so cool?" }
],
temperature: 0.5,
max_tokens: 100,
stream: false
};
// Generate chat completion
generateChatCompletion(payload);