diff --git a/README.md b/README.md index 7180efd5a..f4ffab311 100644 --- a/README.md +++ b/README.md @@ -147,14 +147,49 @@ You can follow these steps to generate a PageIndex tree from a PDF document. pip3 install --upgrade -r requirements.txt ``` -### 2. Set your OpenAI API key +### 2. Set your API key -Create a `.env` file in the root directory and add your API key: +PageIndex now supports multiple LLM providers via [LiteLLM](https://docs.litellm.ai/). Create a `.env` file in the root directory and add your API key: +**OpenAI (default):** ```bash +OPENAI_API_KEY=your_openai_key_here +# or CHATGPT_API_KEY=your_openai_key_here ``` +**Anthropic Claude:** +```bash +ANTHROPIC_API_KEY=your_anthropic_key_here +``` + +**Google Gemini:** +```bash +GEMINI_API_KEY=your_google_key_here +``` + +**Azure OpenAI:** +```bash +AZURE_API_KEY=your_azure_key_here +AZURE_API_BASE=your_azure_endpoint +AZURE_API_VERSION=2024-02-01 +``` + +**AWS Bedrock:** +```bash +AWS_ACCESS_KEY_ID=your_access_key +AWS_SECRET_ACCESS_KEY=your_secret_key +AWS_REGION_NAME=us-east-1 +``` + +**Groq:** +```bash +GROQ_API_KEY=your_groq_key_here +``` + +**Ollama (local):** +No API key needed. Just ensure Ollama is running locally. + ### 3. Run PageIndex on your PDF ```bash @@ -167,7 +202,15 @@ python3 run_pageindex.py --pdf_path /path/to/your/document.pdf You can customize the processing with additional optional arguments: ``` ---model OpenAI model to use (default: gpt-4o-2024-11-20) +--model LLM model to use (default: gpt-4o-2024-11-20) + Examples: + - OpenAI: gpt-4o, gpt-4-turbo + - Claude: claude-3-opus-20240229, claude-3-sonnet-20240229 + - Gemini: gemini/gemini-pro, gemini/gemini-1.5-pro + - Azure: azure/your-deployment-name + - Bedrock: bedrock/anthropic.claude-3-opus-20240229-v1:0 + - Groq: groq/llama-3.1-70b-versatile + - Ollama: ollama/llama3 --toc-check-pages Pages to check for table of contents (default: 20) --max-pages-per-node Max pages per node (default: 10) --max-tokens-per-node Max tokens per node (default: 20000) diff --git a/pageindex/config.yaml b/pageindex/config.yaml index aa60a1f91..0b44a1c18 100644 --- a/pageindex/config.yaml +++ b/pageindex/config.yaml @@ -1,3 +1,38 @@ +# PageIndex Configuration +# +# Model Configuration: +# PageIndex now supports multiple LLM providers via LiteLLM. +# Set the model string according to your preferred provider: +# +# OpenAI (default): +# model: "gpt-4o-2024-11-20" or "gpt-4o" or "gpt-4-turbo" +# Env var: OPENAI_API_KEY or CHATGPT_API_KEY +# +# Anthropic Claude: +# model: "claude-3-opus-20240229" or "claude-3-sonnet-20240229" +# Env var: ANTHROPIC_API_KEY +# +# Google Gemini: +# model: "gemini/gemini-pro" or "gemini/gemini-1.5-pro" +# Env var: GEMINI_API_KEY +# +# Azure OpenAI: +# model: "azure/your-deployment-name" +# Env vars: AZURE_API_KEY, AZURE_API_BASE, AZURE_API_VERSION +# +# AWS Bedrock: +# model: "bedrock/anthropic.claude-3-opus-20240229-v1:0" +# Env vars: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION_NAME +# +# Groq: +# model: "groq/llama-3.1-70b-versatile" +# Env var: GROQ_API_KEY +# +# Ollama (local): +# model: "ollama/llama3" +# +# For more providers, see: https://docs.litellm.ai/docs/providers + model: "gpt-4o-2024-11-20" # model: "anthropic/claude-sonnet-4-6" toc_check_page_num: 20