Skip to main content

Middleware

Ultra-Dex includes a built-in middleware pipeline. Each middleware runs before and/or after every chat(), stream(), and embed() call.

Built-in middleware

loggingMiddleware

Records latency and success/failure of every request.

import { loggingMiddleware } from '@ultra-dex/sdk'

dex.middleware.use('log', loggingMiddleware())

retryMiddleware

Retries failed requests with exponential backoff.

import { retryMiddleware } from '@ultra-dex/sdk'

dex.middleware.use('retry', retryMiddleware({ maxRetries: 3 }))

cacheMiddleware

Caches identical requests for a TTL.

import { cacheMiddleware } from '@ultra-dex/sdk'

dex.middleware.use('cache', cacheMiddleware({ ttlMs: 60000 }))

rateLimitMiddleware

Enforces a local rate limit.

import { rateLimitMiddleware } from '@ultra-dex/sdk'

dex.middleware.use('rateLimit', rateLimitMiddleware({ maxRequests: 60, windowMs: 60000 }))

Custom middleware

dex.middleware.use('myHook', {
async before(ctx) {
console.log('Before:', ctx.provider)
},
async after(ctx, result) {
console.log('After:', result.provider)
return result
},
})