
AI SDK Python Streaming
https://github.com/vercel-labs/ai-sdk-preview-python-streaming- Category
- Developer Tools
- Rank
- No. 1449Tools index
Previous survey · No. 1456 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- vercel-labs
- GitHub
- 364 stars
- Date
About
Reference template for streaming Python backends with the Vercel AI SDK frontend.
What it does
This starter connects a Next.js chat interface to a FastAPI endpoint that returns model output as an event stream. The browser renders text incrementally, tracks submission and streaming states, supports cancellation, and can display completed tool results such as weather data.
Why it's ranked here
The template makes a useful cross-language boundary concrete: React manages chat interaction while Python handles model requests and streamed responses. It also demonstrates tool-result rendering and development routing. Its value is educational and architectural, not as a complete application foundation.
What's good
The example covers more than token display. It includes loading feedback, stopping generation, rate-limit messaging, rendered Markdown, attachment presentation, tool execution states, and filtering of incomplete tool parts. Development scripts start both application halves together, while rewrites keep browser requests on one API surface.
Tradeoffs
The setup requires both Node and Python dependency environments, plus provider credentials or Vercel identity. The backend is tied to Vercel AI Gateway and an OpenAI-compatible client. The shown chat identifier is fixed, and the supplied text shows no persistence, authentication flow, automated tests, or general tool interface beyond the weather example.
How to use it well
Use it when prototyping a Next.js chat experience around an existing Python service, especially when you need a concrete streaming protocol example. Fork it, replace the sample tool and fixed chat identity, then add application-specific security and storage. It does not supply production account management, conversation persistence, or a broad provider abstraction.
Technical notes+
api/index.py exposes POST /api/chat, validates messages with Pydantic, converts them through convert_to_openai_messages, creates an OpenAI client using oidc.get_vercel_oidc_token() and https://ai-gateway.vercel.sh/v1, then returns StreamingResponse(stream_text(...)) as text/event-stream. next.config.js rewrites API, docs, and OpenAPI requests to local FastAPI during development. components/chat.tsx uses useChat for message state, streaming status, submission, and cancellation. components/message.tsx renders text with Streamdown and recognizes tool-* parts across input and output states. lib/utils.ts removes unfinished tool parts from assistant messages. package.json runs Next.js and Uvicorn concurrently, while requirements.txt pins the Python environment.
Observed
- Languages
- Python backend with a TypeScript and React frontend.
- Interface
- HTTP POST chat API returning a text/event-stream response.
- Backend stack
- FastAPI, Uvicorn, Pydantic, and an OpenAI-compatible Python client.
- Frontend stack
- Next.js, React, AI SDK React hooks, Tailwind CSS, and Streamdown.
- Install surface
- Node dependencies install through pnpm, while Python dependencies install from requirements.txt in a virtual environment.
- Deployment surface
- Includes a Vercel clone-and-deploy link and Vercel OIDC gateway authentication.
Read from README.md, package.json, requirements.txt, lib/utils.ts, next.config.js, postcss.config.js, tailwind.config.js, api/index.py, app/icons.tsx, app/layout.tsx, components/chat.tsx, components/icons.tsx, components/navbar.tsx, components/message.tsx, components/weather.tsx.
What it can do
Stream AI responses in real-time
User prompts or messages → Streaming text responses
Handle conversational AI interactions
Chat messages and conversation history → Contextual AI responses
Process streaming data from Python backend
Server-sent events from Python API → Real-time UI updates
Manage WebSocket connections for real-time communication
Client connection requests → Bidirectional data streams
Integrate frontend with Python AI models
Frontend requests and parameters → AI model predictions and responses
Handle streaming text generation
Text generation prompts → Token-by-token text streams
Tags
Tech Stack
Media
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.