Ask AI for your Sphinx docs
Drop in an Ask AI chatbot via the sphinx-biel extension. Three lines in conf.py. Source-cited answers, multilingual out of the box, autodoc-aware citations, and a Content Gaps view that shows what your docs don't cover. Works with sphinx-rtd-theme, furo, pydata-sphinx-theme, and Read the Docs.
acme.routes.configure_rate_limit
Configure per-route rate limiting. Each endpoint has its own bucket, scoped to the route path; authenticated and anonymous traffic are metered separately.
route(str) — Route path, e.g./v1/checkout.requests(int) — Maximum requests per window.burst(int, optional) — Transient surge cap above the steady-state limit.
Used by teams that take their documentation seriously
Three ways to ship Biel on Sphinx
Add the chatbot via sphinx-biel
sphinx-biel extension wires the Ask AI button into every built page. Three lines in conf.py: install, register, set the project ID. Layout, position, and theme are tunable through biel_* config values — no _templates/ overrides needed.- →Floating Ask AI button on every built page
- →Works with sphinx-rtd-theme, furo, pydata-sphinx-theme
- →Per-version scoping on Read the Docs
- →Indexes RST, MyST, and autodoc output
# 1. pip install sphinx-biel
# 2. Register and configure in conf.py.
extensions = [
# ... your existing extensions
'sphinx_biel',
]
biel_project = '<YOUR_PROJECT_ID>'
biel_header_title = 'Documentation AI'
biel_button_style = 'light' # default | dark | light
biel_button_position = 'bottom-right'
# Read the Docs: scope the chatbot per build.
import os
biel_version = os.environ.get('READTHEDOCS_VERSION', 'latest')
# 3. make htmlBiel.ai vs built-in Sphinx search
Honest read. Sphinx's built-in JavaScript search is offline-capable, free, and bundled with every project. Read the Docs Search adds server-side indexing across versions. Biel is built for natural-language questions with synthesized, autodoc-aware answers. Many Sphinx sites run both.
| Dimension | Sphinx + RTD search | Biel.ai |
|---|---|---|
| Query type | JavaScript keyword index built from searchindex.js at make html time. Title and heading matches. | Natural-language questions. Returns synthesized answers with source citations. |
| autodoc / autosummary | Indexes function names and headings. Docstring bodies surface as raw text fragments. | Reads docstring content as documentation. Cites specific functions, parameters, return types. |
| RST and MyST | Same searchindex covers both. Directives and roles are stripped, not interpreted. | Indexes the rendered HTML, so directives, admonitions, and code blocks are read in context. |
| intersphinx targets | Cross-references resolve at build time but cross-project search is not supported. | Index linked Sphinx projects as additional sources. Answers can cite across project boundaries. |
| Read the Docs versioning | Each version has its own searchindex. RTD Search adds project-wide ranking; no cross-version answers. | Per-version indexes. Scope answers to the user's current /en/ |
| Theme support | Built-in search styling tied to each theme; some themes hide it on mobile. | Theme-agnostic web component. Works on sphinx-rtd-theme, furo, pydata-sphinx-theme, custom themes. |
| Analytics | No content-gap signal. Search queries are not exposed to the project owner. | Unanswered questions, satisfaction trends, and a Content Gaps view that updates daily. |
| Languages | Per-language stemmers for the languages Sphinx supports. | Answers in 60+ languages, including languages your docs are not written in. |
| Install | Built into Sphinx and RTD. No install required. | pip install sphinx-biel and three lines in conf.py. Live in 15 minutes. |
| Cost | Free, included with Sphinx and Read the Docs. | From $50/mo, self-serve. 14-day free trial, no credit card required. |
Things teams ask during evaluation
Will it work with my theme?
Does it understand our API reference?
Does it work on Read the Docs?
/en/latest/, /en/stable/, tagged releases — is indexed separately, and the chatbot scopes answers to the version the reader is on.Can we keep our existing Sphinx search?
What if our docs span multiple Sphinx projects?
How long does the install take?
conf.py after pip install sphinx-biel. Most teams are live in 15 minutes including indexing the first version.