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 種類あります:

  1. API Key(最も簡単)
  2. 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);
}

次:API リファレンス →