このガイドでは、Neuradex SDKを使って以下を行います:
- ナレッジを登録
- セマンティック検索を実行
- Chat APIでRAGを構築
セットアップ
クライアントを初期化
import { NdxClient } from '@neuradex/sdk';
const client = new NdxClient({
apiKey: process.env.NEURADEX_API_KEY,
projectId: process.env.NEURADEX_PROJECT_ID,
});
ナレッジの登録
ナレッジは、タイトル・コンテンツ・タグで構成されます。
// 単一のナレッジを作成
const knowledge = await client.knowledge.create({
title: '返品ポリシー',
content: `
商品到着後30日以内であれば返品可能です。
返品条件:
- 未使用・未開封であること
- タグが付いた状態であること
- レシートまたは注文確認メールがあること
返品手続き:
1. マイページから返品申請
2. 返送用ラベルを印刷
3. 商品を梱包して発送
`,
tags: ['返品', 'ポリシー', 'カスタマーサポート'],
});
console.log(`作成完了: ${knowledge.id}`);
一括登録
複数のナレッジを一度に登録することもできます。
const items = await client.knowledge.bulkCreate([
{
title: '配送について',
content: '通常配送は3-5営業日です。お急ぎ便は翌日配送。',
tags: ['配送', 'FAQ'],
},
{
title: '支払い方法',
content: 'クレジットカード、銀行振込、コンビニ払いに対応。',
tags: ['支払い', 'FAQ'],
},
]);
セマンティック検索
登録したナレッジを自然言語で検索できます。
// 検索を実行
const results = await client.knowledge.search('商品を返品したい');
// 結果を表示
for (const result of results) {
console.log(`${result.title} (スコア: ${result.score})`);
console.log(` 概要: ${result.summary}`);
console.log(` タグ: ${result.tags.join(', ')}`);
}
search()はタイトル・タグ・スコアのみを返します。フルコンテンツが必要な場合はget()を使用します。
詳細を取得
検索結果から詳細を取得します。
// 最も関連性の高い結果の詳細を取得
if (results.length > 0) {
const detail = await client.knowledge.get(results[0].id);
console.log(detail.title);
console.log(detail.content);
// 関連するナレッジも確認
for (const connected of detail.connectedKnowledge) {
console.log(`関連: ${connected.title}`);
}
}
Chat APIでRAGを構築
**Chat API**を使えば、コンテキスト取得・プロンプト構築・LLM呼び出しを1ステップで実現できます。
Chat APIは、コンテキスト取得・プロンプト構築・LLM呼び出しを内部で自動処理します。memory: { enabled: true } を指定するだけで、ナレッジベースを活用したRAGが完成します。
import { NdxClient } from '@neuradex/sdk';
const client = new NdxClient({
apiKey: process.env.NEURADEX_API_KEY,
projectId: process.env.NEURADEX_PROJECT_ID,
});
// これだけでRAG完成 — Memory取得もプロンプト構築もSDKが自動処理
const stream = client.chat.create({
model: 'gpt-4o',
messages: [
{
role: 'system',
content: 'あなたはカスタマーサポートアシスタントです。',
},
{
role: 'user',
content: '返品したいのですが、どうすればいいですか?',
},
],
memory: { enabled: true, maxTokens: 4000, includeEpisodes: true },
});
// ストリーミングで即座に表示
for await (const chunk of stream.textStream) {
process.stdout.write(chunk);
}
次のステップ
Chat API
メモリ付きChat Completions
Knowledge API
ナレッジの詳細な操作方法