Interface: GenerationMiddleware<TContext>
정의 위치: packages/ai/src/activities/middleware/types.ts:191
활동과 무관하게 관찰만 수행하는 미들웨어입니다.
middleware 옵션으로 모든 활동에 등록할 수 있는 얇은 수명 주기 관찰자입니다. ChatMiddleware와 달리 이 훅은 관찰만 수행하므로 미디어 활동의 단일 요청 → 응답 형태에 적합합니다. OpenTelemetry에는 otelMiddleware()를 전달하거나 사용자 지정 백엔드용 훅을 직접 구현합니다.
훅은 등록 순서대로 await됩니다. 훅에서 예외가 발생하면 전파되어 활동이 실패하며, 이는 chat() 미들웨어의 의미 체계와 같습니다. 요청과 함께 인라인으로 실행되므로 가볍게 유지합니다.
호출마다 onFinish / onAbort / onError 중 정확히 하나만 실행됩니다.
예시
import { generateImage } from '@tanstack/ai'
import { otelMiddleware } from '@tanstack/ai/middlewares/otel'
import { openaiImage } from '@tanstack/ai-openai'
import { trace } from '@opentelemetry/api'
await generateImage({
adapter: openaiImage('gpt-image-1'),
prompt: 'A serene mountain landscape at sunset',
middleware: [otelMiddleware({ tracer: trace.getTracer('my-app') })],
})
타입 매개변수
TContext
TContext = unknown
속성
name?
optional name?: string;
정의 위치: packages/ai/src/activities/middleware/types.ts:193
선택적 이름이며 진단 정보에 표시됩니다.
onAbort?
optional onAbort?: (ctx, info) => void | Promise<void>;
정의 위치: packages/ai/src/activities/middleware/types.ts:207
활동이 중단될 때(예: 방치된 스트림) 호출됩니다.
매개변수
ctx
GenerationMiddlewareContext<TContext>
info
반환값
void | Promise<void>
onError?
optional onError?: (ctx, info) => void | Promise<void>;
정의 위치: packages/ai/src/activities/middleware/types.ts:212
활동이 완료되기 전에 예외를 발생시킬 때 호출됩니다.
매개변수
ctx
GenerationMiddlewareContext<TContext>
info
반환값
void | Promise<void>
onFinish?
optional onFinish?: (ctx, info) => void | Promise<void>;
정의 위치: packages/ai/src/activities/middleware/types.ts:202
활동이 성공적으로 완료된 후 호출됩니다.
매개변수
ctx
GenerationMiddlewareContext<TContext>
info
반환값
void | Promise<void>
onStart?
optional onStart?: (ctx) => void | Promise<void>;
정의 위치: packages/ai/src/activities/middleware/types.ts:195
어댑터 요청이 시작되기 전에 호출됩니다.
매개변수
ctx
GenerationMiddlewareContext<TContext>
반환값
void | Promise<void>
onUsage?
optional onUsage?: (ctx, usage) => void | Promise<void>;
정의 위치: packages/ai/src/activities/middleware/types.ts:197
프로바이더가 사용량을 보고할 때 onFinish 전에 호출됩니다.
매개변수
ctx
GenerationMiddlewareContext<TContext>
usage
반환값
void | Promise<void>