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);
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)にして投げます。
status と body を持つので、認証エラーと入力エラーを区別して扱えます。
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 形式 |