Building a Function App from YAMLΒΆ

The langgraph_func package reads a simple YAML file that lists your blueprints and graphs. Each entry points to a Python module containing the regular LangGraph definition. This approach keeps your graph code untouched while making it easy to expose as HTTP endpoints.

An example configuration looks like:

swagger:
  title: Demo Function App
  version: 1.0.0
  auth: FUNCTION
  ui_route: docs

blueprints:
  v1:
    path: v1
    description: Example blueprint
    graphs:
      vacancy_agent:
        path: vacancy
        source: langgraph_func.graphs.vacancies.vacancy_agent
        auth: FUNCTION
        description: Extracts vacancy information

Each graph entry specifies the route (path), the module to import (source), the authentication level and a description used for the generated documentation.

Once the file is saved (e.g. function-app.yml) you can load it and start the app:

from langgraph_func.func_app_builder.create_app import create_app_from_yaml

app = create_app_from_yaml("function-app.yml")

Internally create_app_from_yaml validates the YAML, builds a BlueprintBuilder for each blueprint and registers the graphs as Azure Functions. Swagger documentation is generated automatically from the dataclasses in the YAML file and the Pydantic models exported by your graphs.

Running the Functions host will serve the API under /api. Each graph can also be invoked by other graphs using call_subgraph, which makes them fully reusable components.