このガイドでは、AIGNE フレームワーク内で xAI の言語モデル、具体的には Grok を設定して使用するための手順を説明します。必要なパッケージのインストール、API キーの設定、モデルのインスタンス化、そして標準呼び出しとストリーミング呼び出しの両方の例について解説します。
@aigne/xai パッケージは xAI API への直接的なインターフェースとして機能し、開発者は AIGNE フレームワークが提供する標準化された ChatModel インターフェースを通じて、Grok の機能をアプリケーションに統合できます。

インストール
まず、お好みのパッケージマネージャーを使用して @aigne/xai パッケージと AIGNE コアライブラリをインストールします。
npm
```bash npm install @aigne/xai @aigne/core ```
yarn
```bash yarn add @aigne/xai @aigne/core ```
pnpm
```bash pnpm add @aigne/xai @aigne/core ```
設定
XAIChatModel クラスは、xAI API とやり取りするための主要なインターフェースです。これを使用するには、xAI API キーで設定する必要があります。
API キーは 2 つの方法で提供できます:
コンストラクタで直接指定する
apiKeyプロパティ経由でキーを渡します。環境変数
XAI_API_KEY環境変数を設定します。モデルはそれを自動的に検出して使用します。
コンストラクタのオプション
XAIChatModel のインスタンスを作成する際に、以下のオプションを指定できます:
- apiKey
string— xAI API キーです。提供されない場合、システムは XAI_API_KEY 環境変数をフォールバックとして使用します。 - model
string(default:grok-2-latest) — チャット補完に使用する特定の xAI モデルです。デフォルトは grok-2-latest です。 - baseURL
string(default:https://api.x.ai/v1) — xAI API のベース URL です。これは事前設定されており、通常は変更する必要はありません。 - modelOptions
object— temperature や topP など、xAI API に渡す追加のオプションです。
基本的な使用方法
以下の例では、XAIChatModel をインスタンス化し、それを呼び出してレスポンスを取得する方法を示します。
Basic Invocation
import { XAIChatModel } from "@aigne/xai";
const model = new XAIChatModel({
// API キーを直接指定するか、環境変数 XAI_API_KEY を使用します
apiKey: "your-api-key", // 環境変数に設定されている場合はオプションです
// モデルを指定します (デフォルトは 'grok-2-latest')
model: "grok-2-latest",
modelOptions: {
temperature: 0.8,
},
});
const result = await model.invoke({
messages: [{ role: "user", content: "Tell me about yourself" }],
});
console.log(result);レスポンスの例
invoke メソッドは、モデルのレスポンスと使用状況のメタデータを含むオブジェクトを返します。
Response Object
{
"text": "I'm Grok, an AI assistant from X.AI. I'm here to assist with a touch of humor and wit!",
"model": "grok-2-latest",
"usage": {
"inputTokens": 6,
"outputTokens": 17
}
}ストリーミングレスポンス
リアルタイムアプリケーション向けに、モデルからのレスポンスをストリーミングできます。invoke メソッドで streaming: true オプションを設定すると、データが利用可能になり次第、チャンクで受信できます。
Streaming Example
import { isAgentResponseDelta } from "@aigne/core";
import { XAIChatModel } from "@aigne/xai";
const model = new XAIChatModel({
apiKey: "your-api-key",
model: "grok-2-latest",
});
const stream = await model.invoke(
{
messages: [{ role: "user", content: "Tell me about yourself" }],
},
{ streaming: true },
);
let fullText = "";
const json = {};
for await (const chunk of stream) {
if (isAgentResponseDelta(chunk)) {
const text = chunk.delta.text?.text;
if (text) fullText += text;
if (chunk.delta.json) Object.assign(json, chunk.delta.json);
}
}
console.log(fullText);
console.log(json);ストリーミング出力
ストリームを反復処理する際に、テキストの差分を蓄積して完全なメッセージを形成し、JSON 部分をマージして最終的なメタデータを取得できます。
Text Output
I'm Grok, an AI assistant from X.AI. I'm here to assist with a touch of humor and wit!JSON Output
{
"model": "grok-2-latest",
"usage": {
"inputTokens": 6,
"outputTokens": 17
}
}これで @aigne/xai パッケージの使用に関するガイドは終わりです。利用可能な他のモデルに関する詳細については、モデル概要 を参照してください。