Skip to main content

Basic Setup

The setup is the same for all providers:
  1. Import the Observ SDK and your chosen provider
  2. Create an Observ instance with your API key
  3. Wrap the model with observ.wrap()
  4. Use the model with Vercel AI SDK functions

Provider Examples

import { Observ } from "observ-sdk";
import { openai } from "@ai-sdk/openai";
import { generateText } from "ai";

const observ = new Observ({
  apiKey: "your-observ-api-key",
  recall: true, // Enable semantic caching
});

// Wrap the model
const model = observ.wrap(openai("gpt-4"));

// Use it normally
const result = await generateText({
  model,
  prompt: "What is TypeScript?",
});

console.log(result.text);

Streaming

Streaming works automatically with all providers:
import { streamText } from "ai";

// Use any wrapped model
const stream = await streamText({
  model, // Your wrapped model
  prompt: "Write a detailed explanation of async/await",
});

// Stream chunks to the client
for await (const chunk of stream.textStream) {
  process.stdout.write(chunk);
}
Streaming requests are fully traced in Observ, including latency metrics for each chunk.

Adding Sessions and Metadata

You can add session tracking and custom metadata via providerOptions:

Session Tracking

import { generateText } from "ai";

const result = await generateText({
  model, // Your wrapped model
  prompt: "Explain React hooks",
  providerOptions: {
    observ: {
      sessionId: "conversation_abc123",
    },
  },
});

Custom Metadata

import { generateText } from "ai";

const result = await generateText({
  model, // Your wrapped model
  prompt: "Explain React hooks",
  providerOptions: {
    observ: {
      metadata: {
        user_id: "user_123",
        feature: "documentation",
        version: "2.0",
      },
    },
  },
});

Combined

const result = await generateText({
  model,
  prompt: "Explain React hooks",
  providerOptions: {
    observ: {
      sessionId: "conversation_abc123",
      metadata: {
        user_id: "user_123",
        feature: "documentation",
      },
    },
  },
});
Learn more about Session Tracking and Custom Metadata.

Configuration Options

When creating the Observ instance, you can configure:
OptionTypeDefaultDescription
apiKeystringYour Observ API key (required)
recallbooleanfalseEnable semantic caching
environmentstring"production"Environment tag for filtering
debugbooleanfalseEnable debug logging
Example with all options:
const observ = new Observ({
  apiKey: "your-observ-api-key",
  recall: true,
  environment: "staging",
  debug: true,
});

Next Steps