Tablebox ドキュメントサイト English

Tablebox のプログラム

Tablebox は、すべてのプロジェクトで五つのプログラムを動かします。プログラムは参加者と同じように Relay に接続し、自分のパスの木を受け持つので、アプリはほかのものと同じ呼び出しでプログラムを使えます。

プログラム アプリが読むもの すること ページ
Aggregation .aggregation/{name} {name} の下に大勢の書き手が書いたものをまとめる Aggregation
Persistence .persistence/{path} {path} の JSON を保存し続け、保存したものを受け取る Persistence
Egress .egress/{source}/{dest} {source} を録るか、配信サービスへ送る Egress
Agent .agent/{source} {source} を聞く AI と話す Agent
Ingress (なし) 配信ソフトのストリームをパスに出す Ingress

プログラムを呼ぶ

プログラムを呼ぶことは、その木の中のパスを読むことです。最初の読み出しで動き始め、そのパスを読む人全員で共有し、最後の読み手が去ってから 20 秒で止まります(Aggregation は書き手がいる間も動きます)。subscribe のパターンがそのパスに一致するセッションは、それを呼べます。木は、その入力と同じように許してください。.persistence/{path} を読むと {path} の中身が分かり、.egress/{source}/… を読むと {source} がプロジェクトの外へ送られます。subscribe が ** のトークンは、ルートの下のすべてで、すべてのプログラムを呼べます。

ルートから見た木

プロジェクトのルートより下の R をルートにするセッションは、.aggregation/{rest} をプロジェクトの .aggregation/{R}/{rest} として読みます。.persistence、.egress、.agent も同じです。プロジェクトのルートをルートにするセッションは、そのまま読みます。そのため、アプリはどのルートでも同じパスを使え、二つのルートがプログラムの出力を共有することはありません。この木は読むだけで、書くのはプログラムだけです。

環境変数

プログラムが使うキーや送り先は、プロジェクトの環境変数です。Console の環境変数の画面か管理 API で設定します。値は書き込むだけです。変更は 5 秒以内にプログラムに届きます。要る変数がない間に各プログラムがどうするかは、それぞれのページにあります。

プログラム 環境変数
Aggregation まとめた文書のための、Persistence のストレージの変数
Persistence STORAGE_BUCKET, STORAGE_ACCESS_KEY_ID, STORAGE_SECRET_ACCESS_KEY, STORAGE_ENDPOINT, STORAGE_REGION, STORAGE_PREFIX
Egress 配信の送り先ごとの EXPORT_{NAME}_URL と、録画のためのストレージの変数
Agent AGENT_PROVIDER, OPENAI_API_KEY か GEMINI_API_KEY, AGENT_MODEL, AGENT_VOICE, AGENT_INSTRUCTIONS, AGENT_TOOLS
Ingress なし

拒否と状態

プログラムは、依頼やトラックを受け持つ側のコード、bad-request、missing-variable、failed、too-large で断ります。拒否はコードだけを運ぶので、Egress と Agent は status.json のトラックも出します。state と、何かがうまくいかなかったときの code と message(たとえば足りない環境変数の名前)を持つ JSON スナップショットです。

動き方

自分のプログラムを書くには、SDK で自分のパスのプレフィックスを受け持ちます(パスを受け持つ)。