`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 (동작 방식)
미들웨어는 다음과 같이 동작합니다.
- 언어 모델의 완전한 응답을 기다립니다.
- 올바른 순서로 청크를 방출하는
ReadableStream을 만듭니다. - 응답을 적절한 청크 유형으로 분해하여 스트리밍을 시뮬레이션합니다.
- 모든 메타데이터, reasoning, 툴 호출 및 기타 응답 속성을 보존합니다.