Files
docs/reference/python/mkdocs.yml
T
2025-10-01 14:21:54 -04:00

453 lines
17 KiB
YAML

site_dir: ../dist/python
site_name: "LangChain Reference"
site_url: "https://reference.langchain.com/python/"
site_description: "Unified reference documentation for LangChain and LangGraph"
site_author: "LangChain"
repo_url: "https://github.com/langchain-ai/docs"
repo_name: "langchain-ai/docs"
edit_uri: tree/main/reference/docs/
# https://www.mkdocs.org/user-guide/configuration/#theme
theme:
name: material
# https://mrkeo.github.io/customization/#extending-the-theme
# Any file in the overrides directory will replace the file with the same name
# which is part of the original theme
#
# Also used to add files
custom_dir: overrides
# Branding
logo_dark_mode: static/brand/reference-dark.svg
logo_light_mode: static/brand/reference-light.svg
favicon: static/brand/docs-favicon.png
icon:
# Used for annotations in code blocks
annotation: material/chevron-right-circle
features:
# --- Global features ---
- announce.dismiss
# --- Content features ---
# https://squidfunk.github.io/mkdocs-material/setup/adding-a-git-repository/#code-actions
# Add "Edit this page" and "View source" links to the top of each page
# Uses linked `repo_url` and `edit_uri` above
- content.action.edit
- content.action.view
# https://squidfunk.github.io/mkdocs-material/reference/code-blocks/#code-copy-button
# Render a button to copy code blocks to the clipboard
- content.code.copy
# https://squidfunk.github.io/mkdocs-material/reference/code-blocks/#code-selection-button
# Render a button to select code blocks
- content.code.select
# https://squidfunk.github.io/mkdocs-material/reference/annotations/
# Add annotations to code blocks
- content.code.annotate
# https://squidfunk.github.io/mkdocs-material/reference/content-tabs/#linked-content-tabs
# Link all content tabs with the same name across the site such that switching a tab on one
# page switches the tab on all other pages (e.g. for switching between languages)
- content.tabs.link
# https://squidfunk.github.io/mkdocs-material/reference/tooltips/#improved-tooltips
# Tooltips such that when hovering over a link to a header within the current page,
# text is shown.
- content.tooltips
# --- Navigation features ---
# https://mrkeo.github.io/setup/setting-up-navigation/
# https://mrkeo.github.io/setup/setting-up-navigation/#section-index-pages
- navigation.indexes
# https://mrkeo.github.io/setup/setting-up-navigation/#navigation-sections
- navigation.sections
# https://mrkeo.github.io/setup/setting-up-navigation/#instant-loading
# Clicks on all internal links will be intercepted and dispatched without fully reloading
- navigation.instant
# https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#instant-prefetching
# Start to prefetch pages when a user hovers over a link
- navigation.instant.prefetch
# https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#progress-indicator
# Show a progress bar at the top of the page when navigating to a new page
- navigation.instant.progress
# https://mrkeo.github.io/setup/setting-up-navigation/#navigation-tabs
- navigation.tabs
# https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-path
# TODO: investigate, not working?
# Breadcrumb nav rendered above the title of each page
- navigation.path
# https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#back-to-top-button
# Back to top button on the bottom right of each page
- navigation.top
# https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-pruning
# Only the visible navigation items are included in the rendered HTML
- navigation.prune
# URL in the address bar is automatically updated with the active anchor
- navigation.tracking
# --- Table of contents features ---
# https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#anchor-following
# Sidebar table of contents automatically highlights the current section when scrolling
- toc.follow
# --- Search features ---
# https://mrkeo.github.io/setup/setting-up-site-search/
# https://mrkeo.github.io/setup/setting-up-site-search/#search-suggestions
# TODO: check that this works? It's labeled as insiders-only
- search.suggest
# https://mrkeo.github.io/setup/setting-up-site-search/#search-highlighting
# TODO: check that this works? It's labeled as insiders-only
- search.highlight
# https://mrkeo.github.io/setup/setting-up-site-search/#search-sharing
# TODO: check that this works? It's labeled as insiders-only
- search.share
palette:
- scheme: default
primary: white
accent: gray
toggle:
icon: material/brightness-7
name: Switch to dark mode
- scheme: slate
primary: grey
accent: white
toggle:
icon: material/brightness-4
name: Switch to light mode
font:
text: "Inter"
code: "Roboto Mono"
# https://www.mkdocs.org/user-guide/configuration/#plugins
plugins:
# https://squidfunk.github.io/mkdocs-material/plugins/search/#configuration
# Site-wide search functionality
- search
# This exists as a plugin but need to investigate whether it plays well with
# the above `search` plugin. Currently, the best way to hide a page from search
# is to add `search.exclude: true` to the page's front matter (see link)
# - exclude-search:
# exclude: []
# # - additional-resources/index.md
# https://squidfunk.github.io/mkdocs-material/plugins/tags/#configuration
# Categorizing pages with the use of tags
# Search and tag indexes
- tags
# https://squidfunk.github.io/mkdocs-material/plugins/privacy/#configuration
- privacy
# https://squidfunk.github.io/mkdocs-material/setup/adding-a-git-repository/#document-authors
# TODO: revisit if we want this later on
# Shows document authors based on git history
# - git-authors
# https://squidfunk.github.io/mkdocs-material/plugins/optimize/#configuration
# TODO: need the sponsoring tier
# - optimize
# https://github.com/mondeja/mkdocs-include-markdown-plugin
# Include certain sections of external markdown files
# - include-markdown
# https://mkdocstrings.github.io/
# Generates API documentation from Python docstrings
- mkdocstrings:
# Directory containing Jinja2 templates to override default rendering
custom_templates: templates
handlers:
python:
import:
# Import external inventories for cross-referencing documentation
- https://docs.python.org/3/objects.inv
options:
preload_modules:
# Preload modules before collecting documentation to enable cross-references
# TODO: understand this better
- langchain
- langchain_core
# Generate objects.inv file for this site to enable cross-referencing from other sites
# (e.g. what the python langchain.com site does above)
enable_inventory: true
# Order members by their appearance in source code (vs alphabetical)
members_order: source
# Allow dynamic inspection of objects when static analysis fails
# TODO: understand the implications of this better
allow_inspection: true
# Heading level (h2) for the documented object's name
heading_level: 2
# Show base classes for documented classes
show_bases: true
# Hide source code in documentation (only show signatures and docstrings)
show_source: false
# Show one-line summaries in tables of contents
summary: true
# Include members inherited from base classes
inherited_members: true
selection:
# Parse docstrings using Google style
docstring_style: google
# Render docstring sections (Args, Returns, etc.) as tables
docstring_section_style: table
# Hide the top-level module/package entry from the table of contents
show_root_toc_entry: false
# Display function/method signatures
show_signature: true
# Show type annotations in signatures
show_signature_annotations: true
# Display signature on its own line separate from the heading
separate_signature: true
# Maximum line length for signatures before wrapping
line_length: 60
# Show type (function, class, method, etc.) in the heading
show_symbol_type_heading: true
# Show type (function, class, method, etc.) in table of contents
show_symbol_type_toc: true
# Make type annotations in signatures clickable cross-references
signature_crossrefs: true
extensions:
- griffe_warnings_deprecated:
# https://mkdocstrings.github.io/griffe-warnings-deprecated/
# Uses our custom `deprecated` admonition
# Title and label can be customized if desired
kind: deprecated
options:
# Additional options for filtering members
filters:
# Exclude members starting with underscore (private members)
- "!^_"
# https://www.mkdocs.org/user-guide/configuration/#nav
# All paths relative to `./docs`
# - If not provided, lists all `.md` files recursively in alphabetical order
# - If provided, only the listed files will be included, in the specified order
# - If a directory is listed, all `.md` files in that directory will be included
nav:
- Get started: index.md
- LangChain:
- langchain/index.md
- LangChain:
- Agents: langchain/agents.md
- Models: langchain/models.md
- Embeddings: langchain/embeddings.md
- Core: langchain/core.md
- LangGraph:
- langgraph/index.md
- LangGraph:
- Graphs: langgraph/graphs.md
- Functional API: langgraph/func.md
- Pregel: langgraph/pregel.md
- Checkpointing: langgraph/checkpoints.md
- Storage: langgraph/store.md
- Caching: langgraph/cache.md
- Types: langgraph/types.md
- Runtime: langgraph/runtime.md
- Config: langgraph/config.md
- Errors: langgraph/errors.md
- Constants: langgraph/constants.md
- Channels: langgraph/channels.md
- Prebuilt:
- Agents: langgraph/agents.md
- Supervisor: langgraph/supervisor.md
- Swarm: langgraph/swarm.md
- MCP Adapters: langgraph/mcp.md
- Integrations:
- Overview: integrations/index.md
- Standard Tests: integrations/langchain-tests.md
- OpenAI: integrations/langchain-openai.md
- Anthropic: integrations/langchain-anthropic.md
- AWS: integrations/langchain-aws.md
- Google: integrations/langchain-google.md
- Platform:
- SDK (Python): platform/python_sdk.md
- RemoteGraph: platform/remote_graph.md
# https://www.mkdocs.org/user-guide/configuration/#markdown_extensions
markdown_extensions:
# --- EXTENSIONS REQUIRED FOR ANNOTATIONS ---
# https://squidfunk.github.io/mkdocs-material/reference/annotations/
# https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#attribute-lists
# Add HTML attributes and CSS classes to inline and block-level Markdown elements
- attr_list
# https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#markdown-in-html
# Allows for writing Markdown inside of HTML
# (By default, Markdown ignores any content within a raw HTML block-level element)
- md_in_html
- pymdownx.superfences
# --- EXTENSIONS REQUIRED FOR ANNOTATIONS ---
# https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#admonition
# https://squidfunk.github.io/mkdocs-material/reference/admonitions/#usage
- admonition
# https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#definition-lists
# https://squidfunk.github.io/mkdocs-material/reference/lists/#using-definition-lists
# Definition lists
- def_list
# https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#footnotes
# https://squidfunk.github.io/mkdocs-material/reference/footnotes/#adding-footnote-references
- footnotes
# https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/#table-of-contents
# Automatically generate a table of contents from a document - see link for config options
- toc:
permalink: true
# https://facelessuser.github.io/pymdown-extensions/extensions/details/
# Collapsible elements that hide their content
- pymdownx.details
# https://facelessuser.github.io/pymdown-extensions/extensions/tabbed/
# Add tabs for switching between content sections
- pymdownx.tabbed:
alternate_style: true
combine_header_slug: true
# https://facelessuser.github.io/pymdown-extensions/extensions/arithmatex/
# Preserve LaTeX math equations for downstream rendering by MathJax or KaTeX
- pymdownx.arithmatex:
generic: true
# https://facelessuser.github.io/pymdown-extensions/extensions/betterem/
# Improved emphasis handling
- pymdownx.betterem:
smart_enable: all
# https://facelessuser.github.io/pymdown-extensions/extensions/caret/
- pymdownx.caret
# https://facelessuser.github.io/pymdown-extensions/extensions/emoji/
# Inserting emoji via simple short names enclosed within colons
- pymdownx.emoji:
emoji_generator: !!python/name:material.extensions.emoji.to_svg
emoji_index: !!python/name:material.extensions.emoji.twemoji
# https://facelessuser.github.io/pymdown-extensions/extensions/magiclink/
# Auto-link, shorthand link, etc.
- pymdownx.magiclink:
normalize_issue_symbols: true
repo_url_shorthand: true
user: langchain-ai
repo: langchain
# https://facelessuser.github.io/pymdown-extensions/extensions/mark/
# Mark / highlight text
- pymdownx.mark
# https://facelessuser.github.io/pymdown-extensions/extensions/smartsymbols/
# Create special typographic characters for arrows and other symbols
- pymdownx.smartsymbols
# https://facelessuser.github.io/pymdown-extensions/extensions/tasklist/
# Task lists with checkboxes
- pymdownx.tasklist:
custom_checkbox: true
# --- Code highlighting ---
# https://mrkeo.github.io/reference/code-blocks/#highlight
# Code block syntax highlighting
- pymdownx.highlight:
anchor_linenums: true
line_spans: __span
use_pygments: true
pygments_lang_class: true
# https://facelessuser.github.io/pymdown-extensions/extensions/superfences/
# Nesting code blocks inside other code blocks
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
# https://mrkeo.github.io/reference/code-blocks/#inlinehilite
# Syntax highlighting of inline code blocks.
- pymdownx.inlinehilite
# --- Code highlighting ---
# https://mrkeo.github.io/reference/code-blocks/#keys
# Keyboard key icons
- pymdownx.keys
# https://mrkeo.github.io/reference/code-blocks/#snippets
# TODO: maybe add if needed?
# Allows inserting content from other files
# - pymdownx.snippets
# https://www.mkdocs.org/user-guide/configuration/#validation
# TODO: figure out what this is doing
validation:
# We are still raising for omitted files because they determine the breadcrumbs
# for pages.
omitted_files: info
absolute_links: warn
unrecognized_links: warn
anchors: warn
# this is needed to handle headers with anchors for nav
not_found: info
# https://www.mkdocs.org/user-guide/configuration/#extra_css
extra_css:
- stylesheets/logos.css
- stylesheets/sticky_navigation.css
- stylesheets/version_admonitions.css
# https://www.mkdocs.org/user-guide/configuration/#extra_javascript
extra_javascript:
- javascripts/shortcuts.js
# https://www.mkdocs.org/user-guide/configuration/#extra_templates
# extra_templates:
copyright: >
Copyright &copy; 2025 <a href="https://www.langchain.com/">LangChain, Inc</a> — <a href="https://docs.langchain.com/oss/python/contributing/documentation">Edit page</a>
# https://www.mkdocs.org/user-guide/configuration/#extra
extra:
social:
- icon: fontawesome/brands/github
link: https://github.com/langchain-ai/langchain
name: LangChain on GitHub
- icon: fontawesome/brands/slack
link: https://www.langchain.com/join-community
name: LangChain Community Slack
- icon: fontawesome/brands/x-twitter
link: https://twitter.com/LangChainAI
name: LangChain on Twitter / X
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/company/langchain/
name: LangChain on LinkedIn
- icon: fontawesome/brands/youtube
link: https://www.youtube.com/@LangChain
name: LangChain on YouTube
# https://mrkeo.github.io/setup/setting-up-the-footer/#remove-generator
# TODO: check that this works? It's labeled as insiders-only
generator: false