Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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

For deployments that use PostgreSQL for LangGraph checkpoints, Store data, or cross-worker interrupt coordination, install the optional integration:

uv add "langgraph-openai-serve[postgres]"

For polling-only background Responses executed by Hatchet, install its integration. InMemoryBackgroundBackend needs no extra for local trials; see Run Responses In The Background.

uv add "langgraph-openai-serve[hatchet]"

For built-in Langfuse tracing, install the tracing integration:

uv add "langgraph-openai-serve[tracing]"

Set LGOS_ENABLE_LANGFUSE=True together with LANGFUSE_PUBLIC_KEY and LANGFUSE_SECRET_KEY. LGOS creates the callback lazily on the first graph run; importing the package never initializes Langfuse.

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. The entire directory can be copied and run without files from this repository; its lgos-rag example searches the published documentation of the installed LGOS release.

Repository tasks require Bash and Just 1.58.0 or newer. Run just for package recipes and just demo/ for independent demo workflows. Use just --usage <recipe> to see a recipe's options and defaults.

Generate An Application

Create an independent project that lgos serve runs, with example graphs, tests, developer guidance, and Docker:

uvx cookiecutter https://github.com/ilkersigirci/langgraph-openai-serve.git \
  --directory lgos-starter-template

See the starter guide for setup, and Run The LGOS Server to serve your own registry.

Quick Demo

From this repository, prepare the demo environment and PostgreSQL:

cp demo/.env.example demo/.env
just demo/up lgos-db --wait
just demo/api --editable

Then call the demo with the OpenAI Python client:

from openai import OpenAI

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

response = client.responses.create(
    model="custom-input-output-context",
    input="Show me custom schemas.",
    store=False,
    safety_identifier="demo-user",
)

print(response.output_text)

Existing Chat Completions clients can call the same simple graph through the same base URL:

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

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

Use Responses for new clients and advanced workflow features. The Chat example is the compatibility path for existing Chat-only clients.

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

just demo/api --editable overlays this checkout without changing the self-contained demo project or its lockfile. The demo publishes independent API and Chainlit images and runs a pinned, lightly patched Open WebUI image with the demo's Open WebUI integration mounted into it. See the demo Docker Compose guide.

The complete Compose demo lets one OPENAI_GATEWAY_TYPE=litellm|bifrost setting place either gateway in front of both maintained UI clients. Chainlit and Open WebUI use normal managed/native Responses and Files routes. Metadata comes from LiteLLM's native /model/info after model sync, or Bifrost's native /v1/models after catalog sync. Neither UI connects directly to LGOS. The PostgreSQL-persistent Chainlit client uses a shared mock login by default, with OIDC login 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()
registry = GraphRegistry(
    graphs={
        "my-graph": GraphConfig(
            graph=my_graph,
            description="Answer questions with my LangGraph workflow.",
        )
    }
)

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

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

LGOS accepts native Responses input_file parts with opaque file_id values, but does not own file upload or storage. Deploy one Files API for the graph services that share a file namespace, or use a gateway-native Files provider. The standalone S3-backed demo Files API is a small reference deployment. Chat Completions remains available for direct compatibility clients; the maintained demo UIs use Responses exclusively. See Choose Responses or Chat Completions for a feature-by-feature comparison.

Docs

Metadata

Release files for langgraph_openai_serve 0.31.0rc2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for langgraph_openai_serve 0.31.0rc2
File Size Uploaded Provenance Actions
langgraph_openai_serve-0.31.0rc2.tar.gz 66.9 kB With provenance Details for langgraph_openai_serve-0.31.0rc2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for langgraph_openai_serve 0.31.0rc2
File Interpreter ABI Platform Actions
langgraph_openai_serve-0.31.0rc2-py3-none-any.whl Python 3 none any Details for langgraph_openai_serve-0.31.0rc2-py3-none-any.whl

Total release size: 155.4 kB

Release files / langgraph_openai_serve-0.31.0rc2.tar.gz

Download URL langgraph_openai_serve-0.31.0rc2.tar.gz
Size 66.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9f4b4a4b21d7fd559d58d9ad40d70c9f3bdb2631730ed5a3a2097b3686e023db
BLAKE2b-256 checksum
How to use checksums
ff165a98b80408f69a7d3bf0c02979eb39f0fe63ce49884495b666e9d16314c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.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}

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / langgraph_openai_serve-0.31.0rc2-py3-none-any.whl

Download URL langgraph_openai_serve-0.31.0rc2-py3-none-any.whl
Size 88.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd5995194a703259c4c1bb51d77d71270940573dc787c2b2854c0ca9994a6067
BLAKE2b-256 checksum
How to use checksums
cdc7f17f49392583951b195611539cb35fc4b930fe63f830a40b2e99624a7f66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.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}

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Security for langgraph_openai_serve 0.31.0rc2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for langgraph_openai_serve-0.31.0rc2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page