SDK 開発ガイド
このドキュメントでは、RAG プラットフォームと LMS / HR / Knowledge API を 外部アプリケーションから利用するための開発者向け SDK の仕様をまとめています。 C#, JavaScript, Python 用のクライアント実装例と、認証フロー、ベクトル/検索/学習データ API の呼び出し方法を紹介します。
1. 概要
SDK は以下の機能を簡単に扱うためのラッパーです:
- OAuth2 / API Key 認証
- ドキュメントのアップロード・チャンク化
- ベクトル生成・検索
- RAG クエリ(検索 + 応答生成)
- LMS / ユーザー学習データ取得
- Webhook 検証
SDK は現在以下の言語で提供されています:
- C# / .NET 7+
- JavaScript / TypeScript
- Python(3.10+)
2. 認証
認証方法は 2 種類あります:
- API Key(最も簡単)
- OAuth2 Client Credentials(企業向け)
■ API Key の使用例
C# (.NET)
var client = new RagClient("YOUR_API_KEY");
var result = await client.SearchAsync("請求書の書き方について教えて");
JavaScript
import { RagClient } from "@lms/sdk";
const client = new RagClient({ apiKey: "YOUR_API_KEY" });
const result = await client.search("AI 活用方法とは?");
Python
from lms_sdk import RagClient
client = RagClient(api_key="YOUR_API_KEY")
result = client.search("社内 Wiki の更新方法を教えて")
3. RAG 検索
■ C# / .NET
var response = await client.RagQueryAsync(new RagQueryRequest
{
Query = "決裁フローの最新ルールを教えて",
TopK = 5,
Filter = new { department = "管理部" }
});
■ JavaScript
const response = await client.ragQuery({
query: "社内の AI 利用ポリシーを要約して",
topK: 5
});
■ Python
response = client.rag_query(
query="営業部の成功事例を教えて",
top_k=5
)
4. ベクトル操作
■ Upsert
await client.Vectors.UpsertAsync(new VectorUpsertRequest {
Id = "chunk-001",
Values = embedding,
Metadata = new {
text = "AIとは…",
source = "wiki",
category = "tech"
}
});
■ Search
var results = await client.Vectors.SearchAsync(new VectorSearchRequest {
Vector = queryEmbedding,
TopK = 5
});
5. ドキュメントアップロード
大量の PDF / Word / Markdown を一括ロードして自動でチャンク化し、ストアに登録できます。
■ C#
await client.Documents.UploadAsync(new DocumentUploadRequest {
FileName = "規程集.pdf",
Content = fileBytes,
SplitBy = "auto"
});
6. Webhook 検証
var ok = WebhookVerifier.Verify(signature, body, secret);
Webhook は RAG 更新、教材生成、学習進捗通知などで使用されます。
7. エラーハンドリング
SDK は API エラーとネットワークエラーを統一形式で返します。
try {
var r = await client.SearchAsync("テスト");
}
catch (ApiException ex) {
Console.WriteLine(ex.StatusCode);
Console.WriteLine(ex.Error.Detail);
}