Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
# Examples:
# OpenAI models: gpt-4o, gpt-4o-mini, gpt-4-vision-preview
# OpenRouter models: openrouter/anthropic/claude-3.5-sonnet, openrouter/google/gemini-pro-vision
# Requesty models: requesty/openai/gpt-4o, requesty/anthropic/claude-sonnet-4-5
# OpenAI-Compatible models: openai/hunyuan-turbo-vision, openai/doubao-1-5-vision-pro-32k-250115
MODEL_NAME=gpt-4o

Expand All @@ -24,6 +25,10 @@ MODEL_NAME=gpt-4o
# OPENROUTER_API_KEY=your-openrouter-api-key-here
# OPENROUTER_API_BASE=https://openrouter.ai/api/v1/ # [OPTIONAL]

# Requesty API Key (for Requesty models) - get one at https://app.requesty.ai/api-keys
# REQUESTY_API_KEY=your-requesty-api-key-here
# REQUESTY_API_BASE=https://router.requesty.ai/v1 # [OPTIONAL]

# =============================================================================
# Generation Parameters (Optional)
# =============================================================================
Expand All @@ -49,6 +54,10 @@ RETRY_TIMES=3
# MODEL_NAME=openrouter/anthropic/claude-sonnet-4
# OPENROUTER_API_KEY=sk-or-v1-...

# For Requesty GPT-4o:
# MODEL_NAME=requesty/openai/gpt-4o
# REQUESTY_API_KEY=...

# For Doubao 1.5 Vision Pro:
# MODEL_NAME=openai/doubao-1-5-vision-pro-32k-250115
# OPENAI_API_KEY=sk-...
Expand Down
17 changes: 16 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ MarkPDFDown is designed to simplify the process of converting PDF documents into

- **PDF to Markdown Conversion**: Transform any PDF document into well-formatted Markdown
- **Image to Markdown Conversion**: Transform image into well-formatted Markdown
- **Multi-Provider Support**: Supports OpenAI and OpenRouter through LiteLLM
- **Multi-Provider Support**: Supports OpenAI, OpenRouter, and Requesty through LiteLLM
- **Flexible CLI**: Both file-based and pipe-based usage modes
- **Format Preservation**: Maintains headings, lists, tables, and other formatting elements
- **Page Range Selection**: Convert specific page ranges from PDF documents
Expand Down Expand Up @@ -92,6 +92,8 @@ MODEL_NAME=gpt-4o
OPENAI_API_KEY=your-openai-api-key
# or for OpenRouter
OPENROUTER_API_KEY=your-openrouter-api-key
# or for Requesty
REQUESTY_API_KEY=your-requesty-api-key

# Optional Parameters
TEMPERATURE=0.3
Expand All @@ -115,6 +117,13 @@ MODEL_NAME=openrouter/google/gemini-pro-vision
MODEL_NAME=openrouter/meta-llama/llama-3.2-90b-vision
```

#### Requesty Models
Get your API key at https://app.requesty.ai/api-keys
```bash
MODEL_NAME=requesty/openai/gpt-4o
MODEL_NAME=requesty/anthropic/claude-sonnet-4-5
```

## Usage

### File Mode (Recommended)
Expand Down Expand Up @@ -172,6 +181,12 @@ docker run -i \
-e MODEL_NAME=openrouter/anthropic/claude-3.5-sonnet \
-e OPENROUTER_API_KEY=your-openrouter-key \
markpdfdown < input.pdf > output.md

# Using Requesty
docker run -i \
-e MODEL_NAME=requesty/openai/gpt-4o \
-e REQUESTY_API_KEY=your-requesty-key \
markpdfdown < input.pdf > output.md
```

## Development Setup
Expand Down
2 changes: 1 addition & 1 deletion src/markpdfdown/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class Config(BaseModel):
# Model configuration
model_name: str = Field(
default="gpt-4o",
description="LLM model name (e.g., gpt-4o, openrouter/anthropic/claude-3.5-sonnet)",
description="LLM model name (e.g., gpt-4o, openrouter/anthropic/claude-3.5-sonnet, requesty/openai/gpt-4o)",
)

# Generation parameters
Expand Down