ai
Version:
AI SDK by Vercel - build apps like ChatGPT, Claude, Gemini, and more with a single interface for any model using the Vercel AI Gateway or go direct to OpenAI, Anthropic, Google, or any other model provider.
26 lines (23 loc) • 831 B
text/typescript
import type { UIMessageChunk } from '../ui-message-stream/ui-message-chunks';
import {
HttpChatTransport,
type HttpChatTransportInitOptions,
} from './http-chat-transport';
import { transformTextToUiMessageStream } from './transform-text-to-ui-message-stream';
import type { UIMessage } from './ui-messages';
export class TextStreamChatTransport<
UI_MESSAGE extends UIMessage,
> extends HttpChatTransport<UI_MESSAGE> {
constructor(options: HttpChatTransportInitOptions<UI_MESSAGE> = {}) {
super(options);
}
protected processResponseStream(
stream: ReadableStream<Uint8Array<ArrayBufferLike>>,
): ReadableStream<UIMessageChunk> {
return transformTextToUiMessageStream({
stream: stream.pipeThrough(
new TextDecoderStream() as ReadableWritablePair<string, Uint8Array>,
),
});
}
}