PyTorch Documentation Search
STDIOA semantic search prototype for PyTorch documentation with command-line capabilities.
A semantic search prototype for PyTorch documentation with command-line capabilities.
A semantic search prototype for PyTorch documentation with command-line capabilities.
⚠️ This project is currently paused for significant redesign.
The tool provides a basic command-line search interface for PyTorch documentation but requires substantial improvements in several areas. While the core embedding and search functionality works at a basic level, both relevance quality and MCP integration require additional development.
$ python scripts/search.py "How are multi-attention heads plotted out in PyTorch?"
Found 5 results for 'How are multi-attention heads plotted out in PyTorch?':
--- Result 1 (code) ---
Title: plot_visualization_utils.py
Source: plot_visualization_utils.py
Score: 0.3714
Snippet: # models. Let's start by analyzing the output of a Mask-RCNN model. Note that...
--- Result 2 (code) ---
Title: plot_transforms_getting_started.py
Source: plot_transforms_getting_started.py
Score: 0.3571
Snippet: https://github.com/pytorch/vision/tree/main/gallery/...
✅ Basic Semantic Search: Command-line interface for querying PyTorch documentation
✅ Vector Database: Functional ChromaDB integration for storing and querying embeddings
✅ Content Differentiation: Distinguishes between code and text content
✅ Interactive Mode: Option to run continuous interactive queries in a session
❌ Relevance Quality: Moderate similarity scores (0.35-0.37) indicate suboptimal results
❌ Content Coverage: Specialized topics may have insufficient representation in the database
❌ Chunking Strategy: Current approach breaks documentation at arbitrary points
❌ Result Presentation: Snippets are too short and lack sufficient context
❌ MCP Integration: Connection timeout issues prevent Claude Code integration
Create a conda environment with all dependencies:
conda env create -f environment.yml conda activate pytorch_docs_search
The tool requires an OpenAI API key for embedding generation:
export OPENAI_API_KEY=your_key_here
# Search with a direct query python scripts/search.py "your search query here" # Run in interactive mode python scripts/search.py --interactive # Additional options python scripts/search.py "query" --results 5 # Limit to 5 results python scripts/search.py "query" --filter code # Only code results python scripts/search.py "query" --json # Output in JSON format
ptsearch/core/
: Core search functionality (database, embedding, search)ptsearch/config/
: Configuration managementptsearch/utils/
: Utility functions and loggingscripts/
: Command-line toolsdata/
: Embedded documentation and databaseptsearch/protocol/
: MCP protocol handling (currently unused)ptsearch/transport/
: Transport implementations (STDIO, SSE) (currently unused)After evaluating the current implementation, we've identified several challenges that require significant redesign:
Data Quality Issues: The current embedding approach doesn't capture semantic relationships between PyTorch concepts effectively enough. Relevance scores around 0.35-0.37 are too low for a quality user experience.
Chunking Limitations: Our current method divides documentation into chunks based on character count rather than conceptual boundaries, leading to fragmented results.
MCP Integration Problems: Despite multiple implementation approaches, we encountered persistent timeout issues when attempting to integrate with Claude Code:
When development resumes, we plan to focus on:
pytest -v tests/
black .
MIT License