diff --git a/autofigure/README.md b/autofigure/README.md index 752a668..8354af3 100644 --- a/autofigure/README.md +++ b/autofigure/README.md @@ -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 @@ -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 | diff --git a/autofigure/config.py b/autofigure/config.py index 5506cba..d9e7c96 100644 --- a/autofigure/config.py +++ b/autofigure/config.py @@ -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 @@ -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 @@ -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/", } @@ -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", } @@ -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", } @@ -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) diff --git a/autofigure/utils/llm_client.py b/autofigure/utils/llm_client.py index 1fc6c15..6e6bd88 100644 --- a/autofigure/utils/llm_client.py +++ b/autofigure/utils/llm_client.py @@ -18,6 +18,7 @@ class LLMClient: Supports OpenAI-compatible APIs including: - OpenRouter + - Requesty - Bianxie - Google Gemini (via OpenAI-compatible endpoint) - Any OpenAI-compatible endpoint @@ -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