plano/demos/use_cases/vercel-ai-sdk
2026-01-08 15:22:28 -08:00
..
.github/workflows demo(vercel-ai-sdk): add CI workflows and env template 2026-01-08 15:21:53 -08:00
app demo(vercel-ai-sdk): add Next.js app routes, auth, and assets 2026-01-08 15:20:47 -08:00
artifacts demo(vercel-ai-sdk): add Next.js app routes, auth, and assets 2026-01-08 15:20:47 -08:00
components demo(vercel-ai-sdk): add UI components (incl. generative tool UIs) 2026-01-08 15:21:11 -08:00
hooks demo(vercel-ai-sdk): add app logic (AI provider, tools, db, utils) 2026-01-08 15:21:22 -08:00
lib demo(vercel-ai-sdk): add app logic (AI provider, tools, db, utils) 2026-01-08 15:21:22 -08:00
public/images demo(vercel-ai-sdk): add Next.js app routes, auth, and assets 2026-01-08 15:20:47 -08:00
tests demo(vercel-ai-sdk): add e2e tests 2026-01-08 15:22:08 -08:00
.dockerignore demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
.env.example demo(vercel-ai-sdk): add CI workflows and env template 2026-01-08 15:21:53 -08:00
.gitignore demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
biome.jsonc demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
components.json demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
config.yaml demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
docker-compose.yaml demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
drizzle.config.ts demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
instrumentation.ts demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
LICENSE demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
next.config.ts demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
package-lock.json demo(vercel-ai-sdk): add package manifests and lockfiles 2026-01-08 15:22:28 -08:00
package.json demo(vercel-ai-sdk): add package manifests and lockfiles 2026-01-08 15:22:28 -08:00
playwright.config.ts demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
pnpm-lock.yaml demo(vercel-ai-sdk): add package manifests and lockfiles 2026-01-08 15:22:28 -08:00
postcss.config.mjs demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
proxy.ts demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
README.md demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
tsconfig.json demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
vercel-template.json demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00
vercel.json demo(vercel-ai-sdk): add Plano+Jaeger quickstart + config 2026-01-08 15:20:35 -08:00

Plano Demo: Next.js + AI SDK + Observability (Jaeger)

This is a quick demo of Planos capabilities as an LLM gateway:

  • Routing & model selection: all LLM traffic goes through Plano.
  • OpenAI-compatible gateway: the app talks to Plano using the OpenAI API shape.
  • Observability: traces exported to Jaeger so you can inspect requests end-to-end.

The app also includes tool calling with generative UI:

  • getWeather
  • getCurrencyExchange

Both use open and free APIs.

Quickstart

1) Start Plano + Jaeger (Docker)

From demos/use_cases/vercel-ai-sdk/:

docker compose up
  • Plano Gateway: http://localhost:12000/v1
  • Jaeger UI: http://localhost:16686

2) Point the app at Plano

Create demos/use_cases/vercel-ai-sdk/.env.local:

# Generate a random secret: https://generate-secret.vercel.app/32 or `openssl rand -base64 32`
AUTH_SECRET=****

# Instructions to create a Vercel Blob Store here: https://vercel.com/docs/vercel-blob
BLOB_READ_WRITE_TOKEN=****

# Instructions to create a PostgreSQL database here: https://vercel.com/docs/postgres
POSTGRES_URL=****

# Instructions to create a Redis store here:
# https://vercel.com/docs/redis
REDIS_URL=****

PLANO_BASE_URL=http://localhost:12000/v1

3) Start the Next.js app (local)

In a second terminal (same directory):

npm install --legacy-peer-deps
npm run dev

Now open the app at http://localhost:3000.

Note

: This repo uses fast-moving dependencies (AI SDK betas, React 19, Next.js 16). npms strict peer dependency resolver can fail installs; passing --legacy-peer-deps helps keep the install unblocked.

What to try

  • Currency: “Convert 100 USD to EUR”
  • Weather: “Whats the weather in San Francisco?”

Tracing

Open Jaeger (http://localhost:16686) and search traces for the Plano service to see routing + latency breakdowns.