@mlflow/vercel
v0.3.0
Published
Vercel AI SDK integration for MLflow Tracing — SpanProcessor that translates AI SDK span attributes to MLflow format
Maintainers
Readme
MLflow Typescript SDK - Vercel AI
Seamlessly integrate MLflow Tracing with Vercel AI SDK to automatically trace your AI API calls.
| Package | NPM | Description |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| @mlflow/vercel | | Auto-instrumentation integration for Vercel AI SDK. |
Installation
npm install @mlflow/vercelThe package includes @opentelemetry/api and @opentelemetry/sdk-trace-base as peer dependencies. Depending on your package manager, you may need to install them separately.
Quickstart
Start MLflow Tracking Server. If you have a local Python environment, you can run the following command:
pip install mlflow
mlflow server --port 5000If you don't have Python environment locally, MLflow also supports Docker deployment or managed services. See Self-Hosting Guide for getting started.
Set up the MLflow span processor and use the Vercel AI SDK with telemetry enabled:
import { MLflowSpanProcessor } from '@mlflow/vercel';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto';
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
const provider = new NodeTracerProvider({
spanProcessors: [
new MLflowSpanProcessor(
new OTLPTraceExporter({
url: 'http://localhost:5000/api/2.0/otel/v1/traces',
headers: {
'x-mlflow-experiment-id': '<your-experiment-id>',
},
}),
),
],
});
provider.register();
const result = await generateText({
model: openai('gpt-5'),
prompt: "What's the weather like in Seattle?",
experimental_telemetry: { isEnabled: true },
});Databricks
To send traces to a Databricks Unity Catalog table, set the OTLP exporter URL to <DATABRICKS_HOST>/api/2.0/otel/v1/traces and include the following headers:
Authorization:Bearer <your-databricks-token>X-Databricks-UC-Table-Name:<catalog>.<schema>.<table_prefix>_otel_spans
Note: Do not set the x-mlflow-experiment-id header when using Databricks.
Attribute Translation
The Vercel AI SDK emits spans with ai.* attributes. MLflowSpanProcessor translates these into MLflow's format:
| Vercel AI SDK | MLflow | Description |
| -------------------------------------------- | ------------------------------------------ | -------------------------------- |
| ai.operationId | mlflow.spanType | Span type (LLM, TOOL, EMBEDDING) |
| ai.prompt.* / ai.response.* | mlflow.spanInputs / mlflow.spanOutputs | Structured request/response data |
| ai.model.id | mlflow.llm.model | Model name |
| ai.model.provider | mlflow.llm.provider | Provider name |
| ai.usage.promptTokens / completionTokens | mlflow.chat.tokenUsage | Token usage for cost tracking |
| (chat spans) | mlflow.message.format = "vercel_ai" | Enables chat UI rendering |
Documentation
License
This project is licensed under the Apache License 2.0.
