- In `g4f/__init__.py`, changed logger setup to use fixed "g4f" name and refactored `ChatCompletion.create` and `create_async` to share `_prepare_request` logic for preprocessing arguments
- In `g4f/config.py`, added `__future__.annotations`, `lru_cache` import, wrapped `get_config_dir` with `@lru_cache`, and simplified platform branch logic
- In `g4f/cookies.py`, added typing imports, renamed `browsers` to `BROWSERS`, reformatted `DOMAINS`, updated docstrings, improved loop logic in `load_cookies_from_browsers` with additional exception handling, split HAR/JSON parsing into `_parse_har_file` and `_parse_json_cookie_file`, and enhanced `read_cookie_files` with optional filters and `.env` loading
- In `g4f/debug.py`, added enable/disable logging functions, updated log handler typing, appended messages to `logs` in `log()`, and improved `error()` formatting
- In `g4f/errors.py`, introduced base `G4FError` and updated all exception classes to inherit from it or relevant subclasses, with descriptive docstrings for each
- In `g4f/files.py`, added `max_length` parameter to `secure_filename`, adjusted regex formatting, and added docstring; updated `get_bucket_dir` to sanitize parts inline with docstring
- In `g4f/typing.py`, added `__future__.annotations`, reorganized imports, restricted PIL import to type-checking, defined `ContentPart` and `Message` TypedDicts, updated type aliases and `__all__` to include new types
- In `g4f/version.py`, added `lru_cache` and request timeout constant, applied caching to `get_pypi_version` and `get_github_version`, added response validation and explicit exceptions, refactored `VersionUtils.current_version` with clearer sources and error on miss, changed `check_version` to return a boolean with optional silent mode, and improved error handling outputs
* docs(docs/providers-and-models.md): update documentation structure and model listings
* refactor(g4f/debug.py): add type hints and docstrings
* refactor(g4f/tools/run_tools.py): Restructure tool handling and improve modularity
* refactor(g4f/providers/response.py): enhance type hints and code documentation
* feat(g4f/models.py): Update model providers and add new models
* feat(g4f/Provider/Blackbox.py): add encrypted session handling and model updates
* fix(g4f/Provider/ChatGptEs.py): migrate to curl_cffi for request handling and improve error resilience
* feat(g4f/Provider/DeepInfraChat.py): Update default model and add new DeepSeek variants
* feat(g4f/Provider/Free2GPT.py): add Gemini models and streamline headers
* feat(g4f/Provider/FreeGpt.py): Add support for Gemini 1.5 Flash model
* feat(g4f/Provider/Liaobots.py): Add Claude 3.7 models and update default GPT-4o
* fix(g4f/Provider/PollinationsAI.py): Correct model mappings and generation parameters
* feat(g4f/Provider/PollinationsImage.py): Add class identifier label
* chore(g4f/Provider/TeachAnything.py): Update default model and simplify model handling
* (g4f/Provider/Mhystical.py): Remove class implementation
* chore(g4f/Provider/Prodia.py > g4f/Provider/not_working/Prodia.py): mark Prodia provider as non-working
* feat(g4f/Provider/Blackbox.py): Add Claude 3.7 Sonnet model alias
* chore(g4f/models.py): Update model configurations
* fix(g4f/Provider/ChatGptEs.py): improve request reliability and nonce detection
---------
Co-authored-by: kqlio67 <>
Add AbstractProvider class
Add ProviderType type
Add get_last_provider function
Add version module and VersionUtils
Display used provider in gui
Fix error response in api