Vercelは、開発者がウェブサイトやサーバーレス関数を簡単に管理できるウェブアプリケーションのデプロイとホスティングのプラットフォームです。

セットアップ

SambaNovaプロバイダーは以下から利用可能です:sambanova-ai-providerモジュール。以下のようにインストールできます:
npm install sambanova-ai-provider

環境変数

作成する.envファイルにSAMBANOVA_API_KEY変数を設定します。

プロバイダーインスタンス

デフォルトのプロバイダーインスタンスをインポートできますsambanovaからsambanova-ai-provider
import { sambanova } from 'sambanova-ai-provider';
カスタマイズされたセットアップが必要な場合は、createSambaNovaからsambanova-ai-providerをインポートして、設定を指定してプロバイダーインスタンスを作成できます:
import { createSambaNova } from 'sambanova-ai-provider';

const sambanova = createSambaNova({
  // Optional settings
});
以下のオプション設定を使用して、SambaNovaプロバイダーインスタンスをカスタマイズできます:
  • baseURL string プロキシサーバーなどを使用するために、API呼び出しに異なるURLプレフィックスを使用します。デフォルトのプレフィックスはhttps://api.sambanova.ai/v1です。
  • apiKey string ヘッダーとして送信されるAPIキーAuthorization。デフォルトはSAMBANOVA_API_KEY環境変数です。
  • headers Record<string,string> リクエストに含めるカスタムヘッダー。
  • fetch (input: RequestInfo, init?: RequestInit) => Promise<Response> カスタムfetch実装。デフォルトはグローバルのfetch関数です。リクエストのインターセプトや、テストなどのためのカスタムフェッチ実装の提供に使用できます。

モデル

プロバイダーインスタンスでサポートされているモデルを使用できます。最初の引数はモデルID、例えばMeta-Llama-3.3-70B-Instructです。
const model = sambanova('Meta-Llama-3.3-70B-Instruct');

使用例

SambaNovaプロバイダーを使用したテキスト生成の基本的なデモンストレーション。
import { createSambaNova } from 'sambanova-ai-provider';
import { generateText } from 'ai';

const sambanova = createSambaNova({
  apiKey: 'YOUR_API_KEY',
});

const model = sambanova('Meta-Llama-3.3-70B-Instruct');

const { text } = await generateText({
  model,
  prompt: 'Hello, nice to meet you.',
});

console.log(text);
以下のような出力が得られます:
Hello. Nice to meet you too. Is there something I can help you with or would you like to chat?

フェッチリクエストのインターセプト

フェッチリクエストのインターセプトがサポートされています。詳細はこちらをご覧ください。

import { createSambaNova } from 'sambanova-ai-provider';
import { generateText } from 'ai';

const sambanovaProvider = createSambaNova({
  apiKey: 'YOUR_API_KEY',
  fetch: async (url, options) => {
    console.log('URL', url);
    console.log('Headers', JSON.stringify(options.headers, null, 2));
    console.log(`Body ${JSON.stringify(JSON.parse(options.body), null, 2)}`);
    return await fetch(url, options);
  },
});

const model = sambanovaProvider('Meta-Llama-3.3-70B-Instruct');

const { text } = await generateText({
  model,
  prompt: 'Hello, nice to meet you.',
});

出力例

URL https://api.sambanova.ai/v1/chat/completions
Headers {
  "Content-Type": "application/json",
  "Authorization": "Bearer YOUR_API_KEY"
}
Body {
  "model": "Meta-Llama-3.3-70B-Instruct",
  "temperature": 0,
  "messages": [
    {
      "role": "user",
      "content": "Hello, nice to meet you."
    }
  ]
}