// the find
langchain-ai/langserve
LangServe 🦜️🏓
LangServe wraps LangChain runnables/chains into FastAPI REST endpoints with automatic schema inference, streaming support, and a built-in playground UI. It's for Python developers who want to quickly expose a LangChain pipeline as an HTTP service without writing boilerplate FastAPI code. It was officially deprecated in November 2024 in favor of LangGraph Platform.
- Zero-boilerplate deployment: `add_routes(app, chain, path='/foo')` gives you invoke/batch/stream/stream_log endpoints with Pydantic validation and OpenAPI docs automatically derived from the runnable's type annotations.
- The built-in playground UI (including a chat-focused variant) is genuinely useful for testing chains during development without writing a separate frontend.
- RemoteRunnable client lets you call a deployed LangServe endpoint as if it were a local LangChain object, including async and streaming—useful for chaining multiple deployed services.
- Solid example coverage: auth patterns, configurable runnables, file handling, persistence, and agent variants all have working server+client pairs.
- Officially deprecated as of November 2024—the maintainers themselves say don't use this for new projects. Adopting it now means planning a migration to LangGraph Platform before you're even done building.
- No support for stateful/graph-based agents, which is where LangChain usage has moved. LangGraph workflows simply don't fit the Runnable interface assumptions LangServe was built around.
- Per-user auth is awkward: `per_req_config_modifier` works but breaks OpenAPI doc generation, and the examples make clear there's no clean first-class solution for multi-tenant scenarios.
- Multipart file upload is unsupported—files must be base64-encoded and sent as JSON, which is inefficient and breaks standard HTTP file upload conventions.