ai-utils.js
Version:
Build AI applications, chatbots, and agents with JavaScript and TypeScript.
20 lines (19 loc) • 647 B
JavaScript
export async function* extractTextDeltas({ deltaIterable, extractDelta, onDone, onError, }) {
let accumulatedText = "";
let lastFullDelta;
for await (const event of deltaIterable) {
if (event?.type === "error") {
onError(event.error);
throw event.error;
}
if (event?.type === "delta") {
lastFullDelta = event.fullDelta;
const delta = extractDelta(lastFullDelta);
if (delta != null && delta.length > 0) {
accumulatedText += delta;
yield delta;
}
}
}
onDone(accumulatedText, lastFullDelta);
}