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
6 changes: 4 additions & 2 deletions autofigure/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ AI-powered Scientific Figure Generation - Generate professional scientific figur
- **Simple API**: Generate figures from text descriptions or papers
- **Multiple Formats**: Output SVG and mxGraph XML (draw.io compatible)
- **Image Enhancement**: Optional AI-powered image beautification with multiple variants
- **Multiple Providers**: Support for OpenRouter, Bianxie, Gemini
- **Multiple Providers**: Support for OpenRouter, Requesty, Bianxie, Gemini
- **Content Types**: Optimized for papers, surveys, blogs, and textbooks

## Installation
Expand Down Expand Up @@ -171,10 +171,12 @@ result = agent.generate_from_file(
| `generation_api_key` | API key for figure generation | Required |
| `generation_base_url` | Base URL for API | Provider default |
| `generation_model` | Model name | Provider default |
| `generation_provider` | Provider: 'openrouter', 'bianxie', 'gemini' | 'openrouter' |
| `generation_provider` | Provider: 'openrouter', 'requesty', 'bianxie', 'gemini' | 'openrouter' |

Bianxie users can register at [bianxieai](https://bianxieai.com/autofigure). The Bianxie API uses the default base URL `https://api.bianxie.ai/v1`.

Requesty is an OpenAI-compatible LLM gateway; with `generation_provider="requesty"` the default base URL is `https://router.requesty.ai/v1`.

### Methodology Extraction Settings

| Option | Description | Default |
Expand Down
11 changes: 7 additions & 4 deletions autofigure/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class Config:
generation_api_key: str = ""
generation_base_url: Optional[str] = None
generation_model: Optional[str] = None
generation_provider: str = "openrouter" # openrouter, bianxie, gemini
generation_provider: str = "openrouter" # openrouter, requesty, bianxie, gemini

# Methodology extraction LLM settings (defaults to generation settings)
methodology_api_key: Optional[str] = None
Expand All @@ -47,7 +47,7 @@ class Config:

# Image enhancement settings
enhancement_api_key: Optional[str] = None
enhancement_provider: str = "openrouter" # openrouter, bianxie, gemini
enhancement_provider: str = "openrouter" # openrouter, requesty, bianxie, gemini
enhancement_model: Optional[str] = None
enhancement_base_url: Optional[str] = None
enhancement_input_type: str = "code2prompt" # none, code, code2prompt
Expand Down Expand Up @@ -97,6 +97,7 @@ def _get_default_base_url(self, provider: str) -> str:
"""Get default base URL for a provider."""
urls = {
"openrouter": "https://openrouter.ai/api/v1",
"requesty": "https://router.requesty.ai/v1",
"bianxie": "https://api.bianxie.ai/v1",
"gemini": "https://generativelanguage.googleapis.com/v1beta/openai/",
}
Expand All @@ -106,6 +107,7 @@ def _get_default_model(self, provider: str) -> str:
"""Get default model for a provider."""
models = {
"openrouter": "google/gemini-3.1-pro-preview",
"requesty": "openai/gpt-4o-mini",
"bianxie": "gemini-3.1-pro-preview",
"gemini": "gemini-3.1-pro-preview",
}
Expand All @@ -115,6 +117,7 @@ def _get_default_enhancement_model(self, provider: str) -> str:
"""Get default enhancement model for a provider."""
models = {
"openrouter": "google/gemini-3.1-flash-image-preview",
"requesty": "google/gemini-3.1-flash-image-preview",
"bianxie": "gemini-3.1-flash-image-preview",
"gemini": "gemini-3.1-flash-image-preview",
}
Expand Down Expand Up @@ -165,10 +168,10 @@ def from_env(cls) -> "Config":
AUTOFIGURE_API_KEY: Main API key for generation
AUTOFIGURE_BASE_URL: Base URL for API
AUTOFIGURE_MODEL: Model name
AUTOFIGURE_PROVIDER: Provider name (openrouter, bianxie, gemini)
AUTOFIGURE_PROVIDER: Provider name (openrouter, requesty, bianxie, gemini)
AUTOFIGURE_METHODOLOGY_API_KEY: API key for methodology extraction
AUTOFIGURE_ENHANCEMENT_API_KEY: API key for image enhancement
AUTOFIGURE_ENHANCEMENT_PROVIDER: Enhancement provider (openrouter, bianxie, gemini)
AUTOFIGURE_ENHANCEMENT_PROVIDER: Enhancement provider (openrouter, requesty, bianxie, gemini)
AUTOFIGURE_ENHANCEMENT_MODEL: Enhancement model name
AUTOFIGURE_ENHANCEMENT_BASE_URL: Enhancement API base URL
AUTOFIGURE_ENHANCEMENT_INPUT_TYPE: Enhancement input type (none, code, code2prompt)
Expand Down
3 changes: 2 additions & 1 deletion autofigure/utils/llm_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ class LLMClient:

Supports OpenAI-compatible APIs including:
- OpenRouter
- Requesty
- Bianxie
- Google Gemini (via OpenAI-compatible endpoint)
- Any OpenAI-compatible endpoint
Expand All @@ -37,7 +38,7 @@ def __init__(
api_key: API key for the provider
base_url: Base URL for the API endpoint
model: Model name to use
provider: Provider name (openrouter, bianxie, gemini)
provider: Provider name (openrouter, requesty, bianxie, gemini)
"""
self.api_key = api_key
self.base_url = base_url
Expand Down