`simulateStreamingMiddleware()`

simulateStreamingMiddleware()

simulateStreamingMiddleware는 스트리밍하지 않는 언어 모델의 응답으로 스트리밍 동작을 시뮬레이션하는 미들웨어 함수입니다. 완전한 응답만 제공하는 모델을 사용할 때도 일관된 스트리밍 인터페이스를 유지하고 싶을 때 유용합니다.

출처: 문서

본문

import { simulateStreamingMiddleware } from 'ai';

const middleware = simulateStreamingMiddleware();

Import

import { simulateStreamingMiddleware } from "ai"

API Signature

Parameters (파라미터)

이 미들웨어는 파라미터를 받지 않습니다.

Returns (반환값)

다음과 같은 동작을 하는 미들웨어 객체를 반환합니다.

  • 언어 모델의 완전한 응답을 받습니다.
  • 청크의 시뮬레이션 스트림으로 변환합니다.
  • 다음과 같은 다양한 응답 구성 요소를 올바르게 처리합니다.
    • 텍스트 내용
    • Reasoning (문자열 또는 객체 배열)
    • 툴 호출
    • 메타데이터와 사용량 정보
    • 경고

Usage Example (사용 예제)

import { streamText } from 'ai';
import { wrapLanguageModel } from 'ai';
import { simulateStreamingMiddleware } from 'ai';

// Example with a non-streaming model
const result = streamText({
  model: wrapLanguageModel({
    model: nonStreamingModel,
    middleware: simulateStreamingMiddleware(),
  }),
  prompt: 'Your prompt here',
});

// Now you can use the streaming interface
for await (const chunk of result.stream) {
  // Process streaming chunks
}

How It Works (동작 방식)

미들웨어는 다음과 같이 동작합니다.

  1. 언어 모델의 완전한 응답을 기다립니다.
  2. 올바른 순서로 청크를 방출하는 ReadableStream을 만듭니다.
  3. 응답을 적절한 청크 유형으로 분해하여 스트리밍을 시뮬레이션합니다.
  4. 모든 메타데이터, reasoning, 툴 호출 및 기타 응답 속성을 보존합니다.

더 알아보기 (Learn more)