Add draft caption ingest support and dev watch workflow

This commit is contained in:
Adolfo Reyna
2026-02-28 21:30:38 -05:00
parent f0afa200b1
commit 8aa1f3addd
3 changed files with 52 additions and 11 deletions

View File

@@ -5,7 +5,7 @@ const axios = require("axios");
const baseUrl = (process.env.CAPTION_TEST_BASE_URL || process.env.BASE_URL || "http://localhost:3000").replace(/\/+$/, "");
const ingestUrl = `${baseUrl}/live-captions/ingest`;
const intervalMs = 5000;
const intervalMs = 6000;
const samples = [
{
@@ -37,9 +37,8 @@ const samples = [
let sampleIndex = 0;
let timer = null;
const sendNextSample = async () => {
const payload = samples[sampleIndex];
sampleIndex = (sampleIndex + 1) % samples.length;
const postPayload = async (payload) => {
const kind = payload?.draft ? "draft" : "final";
try {
const response = await axios.post(ingestUrl, payload, {
@@ -47,7 +46,8 @@ const sendNextSample = async () => {
timeout: 10000,
});
const seq = response?.data?.caption?.sequence || response?.data?.latestSequence || "?";
console.log(`[live-captions:test-sender] sent sequence=${seq} original="${payload.original}"`);
const text = payload?.draft || payload?.original || "";
console.log(`[live-captions:test-sender] sent ${kind} sequence=${seq} text="${text}"`);
} catch (error) {
const status = error?.response?.status;
const body = error?.response?.data;
@@ -56,6 +56,21 @@ const sendNextSample = async () => {
}
};
const sendNextSample = async () => {
const payload = samples[sampleIndex];
const draftWords = String(payload?.original || "").split(" ").filter(Boolean);
if (draftWords.length > 2) {
await postPayload({ draft: draftWords.slice(0, 2).join(" ") });
await new Promise((resolve) => setTimeout(resolve, 550));
await postPayload({ draft: draftWords.slice(0, 4).join(" ") });
await new Promise((resolve) => setTimeout(resolve, 550));
}
await postPayload(payload);
sampleIndex = (sampleIndex + 1) % samples.length;
};
const start = async () => {
console.log(`[live-captions:test-sender] posting to ${ingestUrl} every ${intervalMs / 1000}s`);
await sendNextSample();