Note
Documentation auto-generated by ai-docs.
AI Docs is a Python project that generates technical documentation for code repositories using the Anthropic Claude AI model. The project aims to automate the process of creating comprehensive documentation by analyzing the codebase and generating readable, structured content. It can be particularly useful for quickly documenting projects and facilitating knowledge transfer among development teams.
The AI Docs codebase is organized into a few key modules:
api.py
: Contains the main functionality for interacting with the Anthropic API, sending prompts, and receiving generated documentation.extract_repo.py
: Responsible for extracting relevant code files from a local repository and converting them into a single text file for processing.generate_docs.py
: Provides a high-level function to generate documentation for a given local repository directory.
The project uses the anthropic
library for communicating with the Claude AI model and the transformers
library for token counting. It also utilizes the python-dotenv
library for managing environment variables, such as the Anthropic API key.
To set up the development environment for AI Docs, follow these steps:
- Ensure you have Python 3.9 or higher installed on your system.
- Clone the AI Docs repository from the version control system.
- Navigate to the project directory.
- Install Poetry, the dependency management tool used by the project, by following the official installation guide: https://python-poetry.org/docs/#installation
- Run
poetry install
to install the project dependencies. - Set up your Anthropic API key as an environment variable named
ANTHROPIC_API_KEY
. You can use a.env
file for this purpose.
The AI Docs repository has the following structure:
pyproject.toml
: The Poetry configuration file that defines the project's dependencies and metadata.ai_docs/
: The main package directory containing the Python modules.api.py
: Contains the core functionality for interacting with the Anthropic API.extract_repo.py
: Handles the extraction of code files from a local repository.generate_docs.py
: Provides a high-level function to generate documentation for a given repository.
-
Token Management:
- The
check_prompt_token_size
function inapi.py
uses the GPT-2 tokenizer to estimate the number of tokens in a prompt. This is important to ensure that the prompt does not exceed the maximum token limit of the Claude model. - Handling token limits and efficiently constructing prompts is crucial for effectively utilizing the AI model.
- The
-
Extracting Relevant Code Files:
- The
extract_repo.py
module contains functions to determine which files in a repository are relevant for documentation generation. - It filters out unnecessary files and directories based on predefined criteria, such as file extensions, directory names, and file contents.
- Extracting only the relevant code files helps reduce noise and focuses the documentation on the core aspects of the project.
- The
To install and set up AI Docs, follow these steps:
- Clone the AI Docs repository from the version control system.
- Navigate to the project directory.
- Ensure you have Python 3.9 or higher installed on your system.
- Install Poetry by following the official installation guide: https://python-poetry.org/docs/#installation
- Run
poetry install
to install the project dependencies. - Set up your Anthropic API key as an environment variable named
ANTHROPIC_API_KEY
. You can use a.env
file for this purpose.
To generate documentation for a code repository using AI Docs, follow these steps:
- Ensure you have completed the installation and setup process.
- Open a terminal and navigate to the AI Docs project directory.
- Run the following command, replacing
<local repository directory>
with the path to your code repository:python -m ai_docs.generate_docs <local repository directory>
- The script will extract the relevant code files, send them to the Claude AI model for processing, and generate a
README.md
file inside the specified repository directory. - Review the generated documentation and make any necessary adjustments or additions.
That's it! You have now generated technical documentation for your code repository using AI Docs.