SDK

クライアントライブラリ

どちらも依存パッケージなしの1ファイルです。パッケージマネージャを通さず、 そのまま読み込んで使えます。

JavaScript

import { SEOBuilder } from "https://aisnsiodev-seobuilder.hf.space/static/sdk/seobuilder.js";

const sb = new SEOBuilder({ baseUrl: "https://aisnsiodev-seobuilder.hf.space", apiKey: process.env.SB_KEY });

// 配信(まずドライランで確認)
const job = await sb.publish(article, { dryRun: true });
console.log(job.results.map(r => `${r.target_id}: ${r.status}`));

// 診断
const report = await sb.analyze("my-article");
if (report.score < 70) console.warn(report.findings);

seobuilder.js をダウンロード

Python

from seobuilder_sdk import SEOBuilder

sb = SEOBuilder("https://aisnsiodev-seobuilder.hf.space", api_key=os.environ["SB_KEY"])

job = sb.publish(article, dry_run=True)
for r in job["results"]:
    print(r["target_id"], r["status"])

report = sb.analyze("my-article")
print(report["score"], len(report["findings"]))

seobuilder.py をダウンロードseobuilder_sdk.py として置いてください)

エラーの扱い

どちらのSDKも、HTTPエラーを専用の例外(SEOBuilderError)にして投げます。 statusbody を持つので、認証エラーと入力エラーを区別して扱えます。

try:
    sb.publish(article)
except SEOBuilderError as e:
    if e.status == 401:
        ...  # キーが無効
    elif e.status == 503:
        ...  # 外部連携が未設定(理由が e.body["detail"] に入る)

そのほかの入口

Swagger UI/docs-api — ブラウザから直接叩ける
ReDoc/redoc
OpenAPI/openapi.json — コード生成に使えます
計測タグ/static/js/sb.js — 記事ページに1行入れるだけ
メトリクス/metrics — Prometheus 形式