@baseai/core
Version:
The Web AI Framework's core - BaseAI.dev
44 lines • 1.26 kB
JavaScript
// src/helpers/stream.ts
import { ChatCompletionStream } from "openai/lib/ChatCompletionStream";
import { Stream } from "openai/streaming";
var fromReadableStream = (readableStream) => {
return ChatCompletionStream.fromReadableStream(readableStream);
};
var getRunner = (readableStream) => {
return fromReadableStream(readableStream);
};
var getTextPart = (chunk) => {
var _a, _b;
return ((_b = (_a = chunk.choices[0]) == null ? void 0 : _a.delta) == null ? void 0 : _b.content) || "";
};
function handleResponseStream({
response,
rawResponse
}) {
const controller = new AbortController();
const streamSSE = Stream.fromSSEResponse(response, controller);
const stream = streamSSE.toReadableStream();
const result = {
stream,
threadId: response.headers.get("lb-thread-id")
};
if (rawResponse) {
result.rawResponse = {
headers: Object.fromEntries(response.headers.entries())
};
}
return result;
}
async function getToolsFromStream(stream) {
let run = getRunner(stream);
const { choices } = await run.finalChatCompletion();
return choices[0].message.tool_calls;
}
export {
fromReadableStream,
getRunner,
getTextPart,
getToolsFromStream,
handleResponseStream
};
//# sourceMappingURL=index.mjs.map