Skip to main content

LangGraph OpenAI Serve

Serve LangGraph graphs through an OpenAI-compatible /v1 API so existing OpenAI SDKs, Chainlit, Open WebUI, and similar clients can call them without a project-specific protocol.

Install

Use uv for project dependency management:

uv add langgraph-openai-serve

The equivalent pip command is:

pip install langgraph-openai-serve

The package contains the OpenAI-compatible server integration, not a built-in LLM graph. Applications register their own graphs. The demo/ checkout keeps each deployable application in an independent uv project with its own lockfile. Its lgos-rag example indexes a small corpus packaged with the demo API, so the entire directory can be copied and run without files from this repository.

Quick Demo

From this repository, prepare the demo environment and PostgreSQL:

cd demo
cp .env.example .env
docker compose -f compose.yaml up -d lgos-db
uv run --directory api --env-file ../.env \
  --locked --with-editable ../.. lgos-demo-api-setup
uv run --directory api --env-file ../.env \
  --locked --with-editable ../.. lgos-demo-api

Then call the demo with the OpenAI Python client:

from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="DUMMY")

response = client.chat.completions.create(
    model="custom-input-output-context",
    messages=[{"role": "user", "content": "Show me custom schemas."}],
    user="demo-user",
)

print(response.choices[0].message.content)

Use curl http://localhost:8000/v1/models only as a diagnostic to inspect the registered demo graph names.

The optional editable overlay tests this checkout without changing the self-contained demo project or its lockfile. The demo publishes independent API and Chainlit images and uses official images for third-party services such as Open WebUI. See the demo Docker Compose guide.

The demo also includes a PostgreSQL-persistent Chainlit client. It uses a shared mock login by default, with PocketID OAuth available as an opt-in mode. See the Chainlit demo.

Use In FastAPI

from fastapi import FastAPI
from langgraph_openai_serve import GraphConfig, GraphRegistry, LanggraphOpenaiServe
from your_graphs import my_graph

app = FastAPI()
graphs = GraphRegistry(
    registry={
        "my-graph": GraphConfig(
            graph=my_graph,
            description="Answer questions with my LangGraph workflow.",
            streamable_node_names=["generate"],
        )
    }
)

LanggraphOpenaiServe(app=app, graphs=graphs).bind_openai_api()

The default base URL is {host}/v1. Registered graph names become OpenAI model values.

Docs

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langgraph_openai_serve-0.9.2.tar.gz (25.0 kB view details)

Uploaded Source

File details

Details for the file langgraph_openai_serve-0.9.2.tar.gz.

File metadata

  • Download URL: langgraph_openai_serve-0.9.2.tar.gz
  • Upload date:
  • Size: 25.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for langgraph_openai_serve-0.9.2.tar.gz
Algorithm Hash digest
SHA256 4c8826d6baeadbc5dfb678f1c2671e1e7ca7cf0771793b448bc9357963690d22
MD5 4a4c8e71ab8e8dacfe49251523a00112
BLAKE2b-256 6fd1e8363a0e8582e420fc1217f58d1c0dd4e4a3425bcb50027af982ded4848c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page