Skip to content

docs: Enhance user guide structure with improved navigation and content#474

Open
jeremyplichta wants to merge 8 commits intomainfrom
docs/improve-user-guides-structure
Open

docs: Enhance user guide structure with improved navigation and content#474
jeremyplichta wants to merge 8 commits intomainfrom
docs/improve-user-guides-structure

Conversation

@jeremyplichta
Copy link
Contributor

@jeremyplichta jeremyplichta commented Feb 11, 2026

Description

Major documentation overhaul to improve structure, consistency, and developer
experience.

What Changed

New Concepts Section

• Added docs/concepts/ with 4 pages covering architecture, search & indexing,
utilities, and extensions
• Created SVG architecture diagram (docs/_static/redisvl-architecture.svg)
• Focused on explanatory prose that builds mental models (no code snippets)

Restructured User Guides

• Consolidated Overview section (Installation, CLI) into User Guides
• Merged redundant how-to guides and tutorials into the main guide list
• Removed 10 duplicate/placeholder pages
• Added Use Cases landing page with 4 categories: Agent Context, Agent
Optimization, General Search, Personalization & RecSys

Standardized All 12 Notebooks

• Consistent Prerequisites section (Redis 8+, pip install, imports)
• Added "What You'll Learn" section at top of each guide
• Added "Next Steps" section linking to related guides
• Fixed informal language throughout

Updated Redis References

• Replaced all Redis Stack references with Redis 8+ (redis:latest)
• Updated Docker commands in README, Makefile, and all notebooks

Improved Home Page

• New welcome section with clear value proposition
• Quick Start with link to getting started guide
• Grid cards for main doc sections (Concepts, User Guides, API, Examples)

Sidebar & Styling

• Custom sidebar template for home page
• Enhanced CSS for better visual hierarchy and hover states
• Fixed html_sidebars config that caused build warnings

Copilot AI review requested due to automatic review settings February 11, 2026 18:38
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enhances the RedisVL user guide documentation by restructuring it following the Diátaxis documentation framework and best practices from LangChain and LlamaIndex. The changes introduce a more user-friendly navigation structure with clear separation between Getting Started, Tutorials, How-To Guides, and Use Cases.

Changes:

  • Added comprehensive index pages for all major documentation sections with visual grid card navigation
  • Created Getting Started section with quickstart overview, prerequisites, core concepts, learning paths, and FAQ
  • Organized existing guides into logical categories (Tutorials, How-To Guides organized by topic area, Use Cases)
  • Added navigation tables for quick access by experience level and use case

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
docs/user_guide/index.md Main user guide index with grid cards and navigation tables for experience levels and use cases
docs/user_guide/getting_started/index.md Comprehensive getting started guide with 30-second overview, prerequisites, architecture diagrams, and FAQ
docs/user_guide/tutorials/index.md Tutorials index organizing learning-oriented guides with time estimates and prerequisites
docs/user_guide/how_to_guides/index.md How-to guides index with grid cards for four categories and quick reference table
docs/user_guide/how_to_guides/querying/index.md Querying guides with descriptions and comparison tables
docs/user_guide/how_to_guides/embeddings/index.md Embeddings guides covering model selection and caching
docs/user_guide/how_to_guides/optimization/index.md Optimization guides for reranking and SVS-VAMANA with performance metrics
docs/user_guide/how_to_guides/storage/index.md Storage guides comparing Hash vs JSON with migration strategies
docs/user_guide/use_cases/index.md Use cases index with grid cards for complete application examples
docs/user_guide/IMPROVEMENT_PLAN.md Internal planning document outlining the restructuring approach

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@tylerhutcherson tylerhutcherson self-requested a review February 13, 2026 08:47
@tylerhutcherson tylerhutcherson added the documentation Improvements or additions to documentation label Feb 13, 2026
Cloud Agent added 2 commits February 13, 2026 09:48
… paths

- Reorganize user guides using Divio/Diátaxis documentation framework
- Create clear sections: Getting Started, Tutorials, How-To Guides, Use Cases
- Add comprehensive index pages for each section with learning paths
- Maintain backward compatibility by keeping original numbered guides
- Add IMPROVEMENT_PLAN.md documenting the restructuring rationale

Benefits:
- Improved discoverability: Users can find relevant guides quickly
- Clear learning paths: Beginners know where to start
- Better organization: Content grouped by purpose (learning vs. reference)
- Enhanced navigation: Category indexes with descriptions and prerequisites

Structure follows industry best practices from LangChain, LlamaIndex, and
the Divio documentation system.
- Add grid cards for visual navigation across all index pages
- Enhance main user guide index with quick navigation tables by experience level and use case
- Improve getting started guide with 30-second overview, architecture diagram, prerequisites, FAQ
- Update tutorials index with card-based tutorial listings
- Update how-to guides index with categorized grid cards and quick reference table
- Enhance use cases index with structured application examples and time estimates
- Follow Diátaxis documentation framework (tutorials, how-to guides, reference, explanation)
- Inspired by LangChain and LlamaIndex documentation best practices
@tylerhutcherson tylerhutcherson force-pushed the docs/improve-user-guides-structure branch from 41a3077 to 0b93aef Compare February 13, 2026 08:48
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings February 13, 2026 08:49
tylerhutcherson and others added 2 commits February 13, 2026 03:49
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 13 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 36 out of 37 changed files in this pull request and generated 7 comments.

Comments suppressed due to low confidence (1)

docs/user_guide/cli.ipynb:430

  • The notebook includes a hard-coded example password in a connection string and CLI invocation. Even as a placeholder, this can encourage copy/paste of credentials into docs; consider replacing with clearly-nonsecret placeholders (e.g., / $REDIS_PASSWORD) and avoid embedding passwords in URLs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +785 to 792
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/tyler.hutcherson/Documents/AppliedAI/redis-vl-python/.venv/lib/python3.13/site-packages/sql_redis/translator.py:136: UserWarning: Stopwords ['and'] were removed from phrase search 'diagnosing and treating'. By default, Redis does not index stopwords. To include stopwords in your index, create it with STOPWORDS 0.\n",
" return self._query_builder.build_text_condition(\n"
]
},
{
Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another stderr output in the rendered notebook includes an absolute local path (/Users/...) from a library warning. Please strip/suppress this output (or re-run with warnings filtered) so the committed notebook doesn’t contain machine-specific paths.

Suggested change
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/tyler.hutcherson/Documents/AppliedAI/redis-vl-python/.venv/lib/python3.13/site-packages/sql_redis/translator.py:136: UserWarning: Stopwords ['and'] were removed from phrase search 'diagnosing and treating'. By default, Redis does not index stopwords. To include stopwords in your index, create it with STOPWORDS 0.\n",
" return self._query_builder.build_text_condition(\n"
]
},
{

Copilot uses AI. Check for mistakes.
Comment on lines +209 to +227
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)\n",
"Cell \u001b[0;32mIn[7], line 4\u001b[0m\n",
"\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mredisvl\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mutils\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mvectorize\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m AzureOpenAITextVectorizer\n",
"\u001b[1;32m 3\u001b[0m \u001b[38;5;66;03m# create a vectorizer\u001b[39;00m\n",
"\u001b[0;32m----> 4\u001b[0m az_oai \u001b[38;5;241m=\u001b[39m \u001b[43mAzureOpenAITextVectorizer\u001b[49m\u001b[43m(\u001b[49m\n",
"\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdeployment_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# Must be your CUSTOM deployment name\u001b[39;49;00m\n",
"\u001b[1;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43mapi_config\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m{\u001b[49m\n",
"\u001b[1;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mapi_key\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mapi_key\u001b[49m\u001b[43m,\u001b[49m\n",
"\u001b[1;32m 8\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mapi_version\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mapi_version\u001b[49m\u001b[43m,\u001b[49m\n",
"\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mazure_endpoint\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mazure_endpoint\u001b[49m\n",
"\u001b[1;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[43m}\u001b[49m\u001b[43m,\u001b[49m\n",
"\u001b[1;32m 11\u001b[0m \u001b[43m)\u001b[49m\n",
"\u001b[1;32m 13\u001b[0m test \u001b[38;5;241m=\u001b[39m az_oai\u001b[38;5;241m.\u001b[39membed(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThis is a test sentence.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"\u001b[1;32m 14\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mVector dimensions: \u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28mlen\u001b[39m(test))\n",
"File \u001b[0;32m~/src/redis-vl-python/redisvl/utils/vectorize/text/azureopenai.py:78\u001b[0m, in \u001b[0;36mAzureOpenAITextVectorizer.__init__\u001b[0;34m(self, model, api_config, dtype)\u001b[0m\n",
Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The notebook currently commits a full ANSI-colored traceback in cell output. In rendered docs this is hard to read and suggests a failing example; consider clearing the output or catching the expected configuration error and printing a short, actionable message instead.

Copilot uses AI. Check for mistakes.
Comment on lines +88 to +91
"index": ["sidebar-nav-custom"],
"examples/**": [],
"examples/index": [],
"**": ["sidebar-nav-bs"],
Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

html_sidebars values typically reference template filenames (e.g., "sidebar-nav-bs.html"). Here the entries omit the .html extension, which can cause Sphinx to fail to locate the templates (including the new sidebar-nav-custom.html). Consider using the full template filenames to avoid build warnings/errors.

Suggested change
"index": ["sidebar-nav-custom"],
"examples/**": [],
"examples/index": [],
"**": ["sidebar-nav-bs"],
"index": ["sidebar-nav-custom.html"],
"examples/**": [],
"examples/index": [],
"**": ["sidebar-nav-bs.html"],

Copilot uses AI. Check for mistakes.
Comment on lines 58 to 61
if not args.schema:
logger.error("Schema must be provided to create an index")
print("Schema must be provided to create an index")
exit(1)
index = SearchIndex.from_yaml(args.schema, redis_url=create_redis_url(args))
Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use sys.exit(...) instead of exit(...). The exit helper is intended for interactive use and may not exist if Python is started with -S; also consider writing error messages to stderr (e.g., print(..., file=sys.stderr)) so failures don’t get mixed into normal command output.

Copilot uses AI. Check for mistakes.
Comment on lines 110 to +112
except ValueError:
logger.error(
"Must set REDIS_URL environment variable or provide host and port"
)
exit(0)
print("Must set REDIS_URL environment variable or provide host and port")
exit(1)
Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above: prefer sys.exit(1) over exit(1), and send this validation error to stderr so scripts can distinguish errors from normal output.

Copilot uses AI. Check for mistakes.
Comment on lines +43 to +50
| I want to... | Guide |
|--------------|-------|
| Cache LLM responses | [Cache LLM Responses](../03_llmcache.ipynb) |
| Store chat history | [Manage LLM Message History](../07_message_history.ipynb) |
| Route queries by intent | [Route Queries with SemanticRouter](../08_semantic_router.ipynb) |
| Filter results by multiple criteria | [Query and Filter Data](../02_complex_filtering.ipynb) |
| Use hybrid or multi-vector queries | [Use Advanced Query Types](../11_advanced_queries.ipynb) |
| Translate SQL to Redis | [Write SQL Queries for Redis](../12_sql_to_redis_queries.ipynb) |
Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Markdown table under “Quick Reference” is malformed (rows start with "||" instead of a single "|"). Most renderers won’t recognize this as a table; adjust the header/separator/rows to standard pipe-table syntax.

Copilot uses AI. Check for mistakes.
Comment on lines +53 to +58
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/tyler.hutcherson/Documents/AppliedAI/redis-vl-python/.venv/lib/python3.13/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
" from .autonotebook import tqdm as notebook_tqdm\n"
]
Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This notebook output includes an absolute local filesystem path (/Users/...) in stderr. That leaks author machine details and makes rendered docs noisy; clear the cell outputs or suppress/capture the warning so the published notebook output is path-independent.

Copilot uses AI. Check for mistakes.
Copy link
Collaborator

@vishal-bala vishal-bala left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally looks good! Didn't get to review the notebooks yet because they're painful to go through in GitHub, but will take a look sometime to evaluate those changes.


AggregateHybridQuery
================
====================
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do these actually render any differently? At least in the GitHub preview, it all turns into a regular horizontal line.

Comment on lines +44 to +46
### Wrapping Vectorizers

The embeddings cache can wrap any vectorizer, adding transparent caching. Calling the wrapped vectorizer checks the cache first. This requires no changes to your embedding code—just wrap the vectorizer and caching happens automatically.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if there's a clear sequence in which a reader encounters concepts, so it's not clear if the vectorizer concept would be clear when a reader encounters this section (or what their specific understanding of "calling a vectorizer" would be). The simplest treatment might just be to link to the doc page about the vectorizers from here.


### Supported Providers

RedisVL includes vectorizers for OpenAI, Azure OpenAI, Cohere, HuggingFace (local), Mistral, Google Vertex AI, AWS Bedrock, and VoyageAI. You can also create custom vectorizers that wrap any embedding function.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we throw in an "and others" here to ease up the duty to correct for every addition to our supported list? Alternatively, we can include a link to a more dynamic/official list of the supported providers for up-to-date information.

Comment on lines +21 to +23
+++
pip install • Redis Cloud • Docker
:::
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if I'm just misunderstanding the syntax - are these supposed to link out to somewhere with more information?

offering
RedisVL requires a distribution of Redis that supports the [Search and Query](https://redis.com/modules/redis-search/) capability. There are several options:

1. [Redis Cloud](https://redis.io/cloud), a fully managed cloud offering
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Worth mentioning that there's a free tier to this!

docker rm redis-stack || true
redis-start: ## Start Redis in Docker
@echo "🐳 Starting Redis"
docker run -d --name redis -p 6379:6379 redis:latest
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since redis:latest will only ever start the version of Redis that was latest when you downloaded the image (and not necessarily the latest Redis), it might be worth having the Makefile command print out the current version of Redis that was started.

Suggested change
docker run -d --name redis -p 6379:6379 redis:latest
docker run -d --name redis -p 6379:6379 redis:latest
@docker exec -it redis redis-cli INFO server | grep redis_version

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants