Skip to content

@mfui/openai-compatible ​

@mfui/openai-compatible adapts Chat Completions-compatible SSE streams into MFUI semantic SSE streams.

Use this package when your provider returns OpenAI Chat Completions-style chunks with choices[].delta.content.

createMFUIResponse() ​

Creates an MFUI semantic SSE Response from an upstream Chat Completions stream.

Import ​

ts
import { createMFUIResponse } from '@mfui/openai-compatible';

Signature ​

ts
function createMFUIResponse(
  source: OpenAICompatibleStreamSource,
  mfui: MFUIManifest,
  options?: OpenAICompatibleMFUIResponseOptions,
): Response

Parameters ​

NameTypeRequiredDefaultDescription
sourceOpenAICompatibleStreamSourceYesn/aProvider Response, response body stream, or null.
mfuiMFUIManifestYesn/aComponents available to this request.
optionsOpenAICompatibleMFUIResponseOptionsNo{}Response, parser, writer, and lifecycle options.

Returns ​

TypeDescription
Responsetext/event-stream response that emits MFUI semantic SSE events.

Example ​

ts
import { createMFUIPrompt } from '@mfui/server';
import { createMFUIResponse } from '@mfui/openai-compatible';

const upstream = await fetch('https://api.openai.com/v1/chat/completions', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    model: 'gpt-4o-mini',
    messages: [
      {
        role: 'system',
        content: [
          'You are a helpful assistant.',
          createMFUIPrompt(mfui),
        ].join('\n\n'),
      },
      ...messages,
    ],
    stream: true,
  }),
});

return createMFUIResponse(upstream, mfui, {
  onMessage(message) {
    saveAssistantMessage(message);
  },
});

Notes ​

When provider processing fails, the returned MFUI stream emits an error event and then closes. onError is called when provided.

OpenAICompatibleStreamSource ​

Source accepted by createMFUIResponse(), readStream(), and pipeMFUIStream().

Shape ​

ts
type OpenAICompatibleStreamSource =
  | Response
  | ReadableStream<Uint8Array>
  | null

OpenAICompatibleMFUIResponseOptions ​

Options for createMFUIResponse().

PropertyTypeRequiredDefaultDescription
closebooleanNotrueWhether to close the MFUI parser and writer when the provider stream finishes. Set to false only when another process will close the parser.
parserMFUIBlockParserOptionsNo{}Options passed to createMFUIBlockParser().
writerMFUIStreamWriterOptionsNo{}Options passed to createMFUIStreamWriter().
responseInitResponseInitNo{}Init object passed to the returned Response.
onMessageMFUIMessageHandlerNon/aCalled with the final projected message after the MFUI response finishes.
onErrorMFUIErrorHandlerNon/aCalled when provider stream processing or MFUI block parsing fails.

readStream() ​

Reads Chat Completions SSE events and yields JSON chunks.

Import ​

ts
import { readStream } from '@mfui/openai-compatible';

Signature ​

ts
function readStream(
  source: OpenAICompatibleStreamSource,
): AsyncIterable<OpenAICompatibleStreamChunk>

Parameters ​

NameTypeRequiredDefaultDescription
sourceOpenAICompatibleStreamSourceYesn/aProvider SSE source.

Returns ​

TypeDescription
AsyncIterable<OpenAICompatibleStreamChunk>Parsed provider chunks. [DONE] sentinel events are skipped.

OpenAICompatibleStreamChunk ​

Provider chunk shape consumed by writeMFUIStream().

PropertyTypeRequiredDefaultDescription
choicesArray<{ delta?: Record<string, unknown> }>Non/aChat Completions choices. delta.content string values are appended to the MFUI block parser.
usageRecord<string, unknown>Non/aToken usage. prompt_tokens maps to inputTokens; completion_tokens maps to outputTokens.
[key]unknownNon/aAdditional provider fields are ignored by MFUI.

writeMFUIStream() ​

Writes parsed provider chunks into an MFUI block parser.

Import ​

ts
import { writeMFUIStream } from '@mfui/openai-compatible';

Signature ​

ts
function writeMFUIStream(
  stream: AsyncIterable<OpenAICompatibleStreamChunk>,
  parser: MFUIBlockParser,
  options?: OpenAICompatibleMFUIStreamOptions,
): Promise<void>

Parameters ​

NameTypeRequiredDefaultDescription
streamAsyncIterable<OpenAICompatibleStreamChunk>Yesn/aParsed provider chunks.
parserMFUIBlockParserYesn/aMFUI block parser receiving provider text deltas.
optionsOpenAICompatibleMFUIStreamOptionsNo{}Stream writing options.

Returns ​

TypeDescription
Promise<void>Resolves after the provider stream is fully consumed and the parser is flushed or closed.

OpenAICompatibleMFUIStreamOptions ​

Options for writeMFUIStream() and pipeMFUIStream().

PropertyTypeRequiredDefaultDescription
closebooleanNotrueWhether to call parser.close() when the provider stream ends. When false, parser.flush() is called instead.

pipeMFUIStream() ​

Reads a provider SSE source and writes it into an MFUI block parser.

Import ​

ts
import { pipeMFUIStream } from '@mfui/openai-compatible';

Signature ​

ts
function pipeMFUIStream(
  source: OpenAICompatibleStreamSource,
  parser: MFUIBlockParser,
  options?: OpenAICompatibleMFUIStreamOptions,
): Promise<void>

Parameters ​

NameTypeRequiredDefaultDescription
sourceOpenAICompatibleStreamSourceYesn/aProvider SSE source.
parserMFUIBlockParserYesn/aMFUI block parser receiving provider text deltas.
optionsOpenAICompatibleMFUIStreamOptionsNo{}Stream writing options.

Returns ​

TypeDescription
Promise<void>Resolves after the provider stream is consumed.