Commit Graph

117 Commits

Author SHA1 Message Date
hlohaus
91ea2d7a27 Add streaming endpoint for file management and enhance manage_files function 2025-09-12 00:30:12 +02:00
hlohaus
d0ae94def3 Refactor Copilot provider to improve authentication handling and streamline media uploads; add error handling for user retrieval. Enhance QwenCode provider to manage token validation and refresh logic. Update backend API to include new error handling for model and provider not found scenarios. Add start-browser script for automated Chrome launch. 2025-09-06 20:11:24 +02:00
hlohaus
be52b6aff0 Add user information to encryption response in handle_synthesize method 2025-09-05 05:05:17 +02:00
hlohaus
b8845f4afe Fix header key formatting in get_provider_models method 2025-09-05 01:52:46 +02:00
hlohaus
25b35ddf99 Refactor build scripts and API to enhance model handling and improve timeout functionality 2025-09-04 22:21:42 +02:00
hlohaus
1edd0fff17 Refactor model handling and improve timeout functionality
- Removed empty string mapping from model_map in AnyModelProviderMixin.
- Updated clean_name function to exclude 'chat' from version patterns.
- Added stream_timeout parameter to AsyncGeneratorProvider for more flexible timeout handling.
- Enhanced chunk yielding in AsyncAuthedProvider to support stream_timeout, allowing for better control over asynchronous responses.
2025-09-04 18:11:05 +02:00
hlohaus
d6e2bf2c9e Fix secret validation logic to allow non-negative time differences 2025-09-04 08:01:05 +02:00
hlohaus
9dd90991b6 Update backend_api.py 2025-09-04 06:03:54 +02:00
hlohaus
7c5ec5325a Update EasyChat and OpenRouter classes, modify backend API timing, and enhance website rendering 2025-09-04 02:42:04 +02:00
hlohaus
196946b75c Add gel all models 2025-08-20 00:06:10 +02:00
hlohaus
ddab0ffa07 Remove fingerprint 2025-08-09 10:20:56 +02:00
hlohaus
17d36d5106 Add check fingerprint 2025-08-09 09:52:26 +02:00
H Lohaus
23d4c6eb38 Update backend_api.py 2025-08-09 05:00:41 +02:00
hlohaus
71adc96bce Update model list 2025-08-09 04:44:58 +02:00
hlohaus
9563f8df3a feat: Update environment variables and modify model mappings
- Added `OPENROUTER_API_KEY` and `AZURE_API_KEYS` to `example.env`.
- Updated `AZURE_DEFAULT_MODEL` to "model-router" in `example.env`.
- Added `AZURE_ROUTES` with multiple model URLs in `example.env`.
- Changed the mapping for `"phi-4-multimodal"` in `DeepInfraChat.py` to `"microsoft/Phi-4-multimodal-instruct"`.
- Added `media` parameter to `GptOss.create_completion` method and raised a `ValueError` if `media` is provided.
- Updated `model_aliases` in `any_model_map.py` to include new mappings for various models.
- Removed several model aliases from `PollinationsAI` in `any_model_map.py`.
- Added new models and updated existing models in `model_map` across various files, including `any_model_map.py` and `__init__.py`.
- Refactored `AnyModelProviderMixin` to include `model_aliases` and updated the logic for handling model aliases.
2025-08-07 01:21:22 +02:00
hlohaus
e7a1bcdf54 fix: improve message formatting and set default activation for providers
- In PerplexityLabs.py, added logic to filter consecutive assistant messages and update message array accordingly
- Modified PerplexityLabs.py to change "messages" field to use the new formatted message list
- Adjusted error handling in PerplexityLabs.py to include a newline in error messages
- Import os in BlackForestLabs_Flux1KontextDev.py and replace media filename assignment with basename if media is None
- In Groq.py, set "active_by_default" to True for the provider
- In OpenRouter.py, added "active_by_default" as True
- In Together.py, set "active_by_default" to True
- In HuggingFaceInference.py, set "working" to False
- In models.py, changed default_model to "openai/gpt-oss-120b" instead of previous value
- In backend_api.py, added a null check in jsonify_provider_models to return 404 if response is None, and simplified get_provider_models call
2025-08-06 04:46:28 +02:00
hlohaus
d4b46f34de fix: correct typo in API section title and update links, and adjust provider aliases
- Changed "Inference API" to "Interference API" and updated corresponding documentation links in README.md
- Removed "o1" and "dall-e-3" entries from Copilot.py model_aliases
- Added "stream" and "extra_body" parameters with default values in Azure.py's create_async_generator method
- In CopilotAccount.py, included model_aliases with "gpt-4", "gpt-4o", "o1", and "dall-e-3"
- Updated conditional for provider comparison from "==" to "in" list in any_provider.py
- Modified g4f/api/__init__.py to set g4f_api_key from environment variable
- In backend_api.py, added "user" field to cached data with default "unknown"
- Changed logic in OpenaiTemplate.py read_response to check if "choice" exists before processing, and cleaned up indentation and conditionals in response parsing
- Removed unnecessary "stop" and "prompt" parameters from comments or unused code in OpenaiTemplate.py
- Tightened the check for "provider" comparison in any_provider.py to handle multiple providers properly
2025-08-01 00:18:29 +02:00
hlohaus
f246e7cfa8 fix: improve error messaging and handling in get_provider_models
- Updated error message formatting in `get_provider_models` call within `Backend_Api` class
- Changed `MissingAuthError` handling to include exception type name in response
- Added generic `Exception` catch to handle unexpected errors with HTTP 500 response
- Modified `backend_api.py` file in `g4f/gui/server` directory
- Ensured all returned error messages use consistent structure with exception type and message
2025-07-29 20:35:21 +02:00
hlohaus
f83c92446e fix: update provider status, models, error handling, and imports
- Set `working = False` in Free2GPT, Startnest, and Reka providers
- Changed `default_model` in LambdaChat from `deepseek-v3-0324` to `deepseek-r1`
- Removed `deepseek-v3` alias from LambdaChat's `model_aliases`
- In Kimi provider:
  - Replaced manual status check with `await raise_for_status(response)`
  - Set `model` field to `"k2"` in chat completion request
  - Removed unused `pass` statement
- In WeWordle provider:
  - Removed `**kwargs` from `data_payload` construction
- In Reka provider:
  - Set default value for `stream` to `True`
  - Modified `get_cookies` call to use `cache_result=False`
- In `cli/client.py`:
  - Added conditional import for `MarkItDown` with `has_markitdown` flag
  - Raised `MissingRequirementsError` if `MarkItDown` is not installed
- In `gui/server/backend_api.py`:
  - Imported `MissingAuthError`
  - Wrapped `get_provider_models` call in try-except block to return 401 if `MissingAuthError` is raised
2025-07-27 18:03:54 +02:00
hlohaus
6c52234d83 Fix cors 2025-07-14 03:51:46 +02:00
hlohaus
113e788914 Log user name 2025-07-13 22:31:21 +02:00
hlohaus
53657646af Update headers 2025-07-13 22:08:12 +02:00
hlohaus
6106ca95c9 Improve logging 2025-07-13 20:07:39 +02:00
hlohaus
a31cb50d6a Add public gen api 2025-07-13 15:31:09 +02:00
hlohaus
9655954a0b Add custom api_keys 2025-07-12 07:48:48 +02:00
hlohaus
3c66fa114a feat: add 'transparent' image model and refactor HAR provider auth flow
- Added "transparent" to `image_models` in `PollinationsAI` and mapped it to "gptimage"
- Modified transparent flag handling in `_generate_image` call in `PollinationsAI`
- Removed unused `cls.get_models()` call from image generation method in `PollinationsAI`
- Replaced `AsyncGeneratorProvider` with `AsyncAuthedProvider` in `HarProvider`
- Implemented `on_auth_async` in `HarProvider` to support browser-based auth via `nodriver`
- Replaced `create_async_generator` with `create_authed` in `HarProvider` to support `AuthResult`
- Removed custom `headers` in HAR post requests; used `auth_result.get_dict()` for `StreamSession`
- Refactored `Video` provider to support optional search in `get_response`
- Added `search` parameter to `RequestConfig.get_response` and `Video.create_async_generator`
- Improved browser automation and element interaction logic in `Video` provider
- Extracted video request interception to collect URLs using `nodriver`
- Reduced video polling loop timeout from 600 to 300 iterations in `Video`
- Updated CLI `client.py` to fix handling of `conversation.conversation` assignment
- Fixed argparse config: removed `nargs='?'` and added `metavar` for `--conversation-file`
- Improved image metadata extraction in API and backend when Pillow is available
- Modified `ImageResponse.__str__` to output HTML anchor/image tags with dimensions if present
- Added support for returning `target_path` from `copy_media` if `return_target` is True
- Changed default image processing size in `process_image` from 800x400 to 400x400
- Disabled RGBA-to-RGB flattening in `process_image`
- Improved `get_args_from_nodriver` to ensure proper referer and cookie handling
- Added helper `get_target_paths_and_urls` in `Api` to extract image dimensions from disk paths
2025-07-11 01:46:32 +02:00
hlohaus
51b4b8bcb3 feat: add model alias handling and update Cloudflare provider
- Introduced `clean_name` function in `Cloudflare.py` to format model names by removing specific suffixes.
- Updated `model_aliases` in `Cloudflare` class with new model mappings, and cleaned up redundant entries.
- Set `models` in the `Cloudflare` class to use keys from `model_aliases`.
- Adjusted the caching logic in `Cloudflare` to include new headers for requests.
- Added `parent` and `login_url` attributes in `DeepInfraChat` class.
- Updated `PollinationsAI` to clean up model retrieval logic and fixed handling of existing checks.
- Refactored `HarProvider` to inherit models and aliases from `LegacyLMArena`.
- Implemented loading environment variables from `.env` file in `cookies.py`.
- Updated default headers in `defaults.py` for user agent and `sec-ch-ua`.
- Cleaned up various model references in `any_model_map.py` to reflect differences in audio, vision, and other model types.
- Added a more centralized handling for API key management in `run_tools.py` to accommodate new nomenclature.
- Enhanced existing logic to allow for more granular loading and utilization of API keys from environment variables.
2025-07-10 03:28:02 +02:00
hlohaus
634f7d9a39 Update validation 2025-06-28 17:04:41 +02:00
hlohaus
a30908ae0b Fix stop_browser, update secret validation 2025-06-27 14:10:30 +02:00
hlohaus
7b5ecaa4fb Add secret validation 2025-06-25 21:30:58 +02:00
hlohaus
c466d414c9 Add ip 2025-06-25 13:42:37 +02:00
hlohaus
6948ab9b7d Fix upload docx 2025-06-24 23:11:21 +02:00
hlohaus
744dfeb957 Add ip ban 2025-06-24 22:25:42 +02:00
hlohaus
85aaa84932 Add model aliases to OpenaiChat 2025-06-20 22:08:56 +02:00
hlohaus
c37f5c0912 Improve update script 2025-06-19 15:54:01 +02:00
hlohaus
ce539f755d Secure api 2025-06-19 14:22:58 +02:00
hlohaus
a0babdc3eb Secure api 2025-06-19 14:20:03 +02:00
hlohaus
2c59301013 Secure api 2025-06-19 14:08:41 +02:00
hlohaus
a323981e72 Serve broken images 2025-06-19 13:47:20 +02:00
hlohaus
0b2e38e1bd Improve logging 2025-06-19 13:28:08 +02:00
hlohaus
a2a1d63836 Improve logging 2025-06-19 12:57:12 +02:00
hlohaus
c27f0c995e Support timeout in backend_api 2025-06-19 11:29:54 +02:00
hlohaus
90262b1f6a Fix copy image 2025-06-19 10:40:36 +02:00
hlohaus
04b59558b4 Update video provider 2025-06-19 10:04:43 +02:00
hlohaus
aa92c2225e Fix missing import 2025-06-19 06:29:26 +02:00
hlohaus
4337fa7fa8 Add user log 2025-06-19 06:19:54 +02:00
hlohaus
d824d77d65 feat: Refactor PollinationsAI and ARTA provider structure
- Updated `PollinationsAI.py` to strip trailing periods and newlines from the prompt before encoding.
- Modified the encoding of the prompt to remove trailing percent signs after URL encoding.
- Simplified the audio response handling in `PollinationsAI.py` by removing unnecessary checks and yielding chunks directly.
- Renamed `ARTA.py` to `deprecated/ARTA.py` and updated import paths accordingly in `__init__.py`.
- Changed the `working` status of the `ARTA` class to `False` to indicate it is deprecated.
- Enhanced the `Video` class in `Video.py` to include aspect ratio handling and improved URL response caching.
- Updated the `RequestConfig` class to use a dictionary for storing URLs associated with prompts.
- Removed references to the `ARTA` provider in various files, including `models.py` and `any_provider.py`.
- Adjusted the `best_provider` assignments in `models.py` to exclude `ARTA` and include `HuggingFaceMedia` where applicable.
- Updated the response handling in `Video.py` to yield cached responses when available.
2025-06-19 00:42:41 +02:00
hlohaus
4631083693 Add video provider 2025-06-17 16:42:32 +02:00
hlohaus
b7d1a03dfc Add video provider 2025-06-17 16:30:00 +02:00
hlohaus
4bd1b8652c Fix copy images 2025-06-17 08:30:08 +02:00