Commit graph

137 commits

Author SHA1 Message Date
hlohaus
bb8b7999a0 Update build-packages.yml 2025-08-22 21:08:25 +02:00
Copilot
9f02959cfc
Add comprehensive build workflow for multiple package formats (pip, winget, docker, executables, deb) (#3138)
* Add comprehensive build workflow and package configuration

Co-authored-by: hlohaus <983577+hlohaus@users.noreply.github.com>

* Complete build workflow implementation with documentation and testing

Co-authored-by: hlohaus <983577+hlohaus@users.noreply.github.com>

* Update WinGet package structure and build dependencies per feedback

Co-authored-by: hlohaus <983577+hlohaus@users.noreply.github.com>

* Simplify WinGet package identifier to "g4f" and add winget/* to .gitignore

Co-authored-by: hlohaus <983577+hlohaus@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: hlohaus <983577+hlohaus@users.noreply.github.com>
2025-08-22 10:59:04 +02:00
hlohaus
b6f51f00d8 refactor: restructure core utilities, typing, and request handling
- 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
2025-08-09 03:29:44 +02:00
hlohaus
ffa05f5c4d Fix streaming 2025-07-15 16:02:01 +02:00
hlohaus
2befef988b feat: refactor provider create functions to class attributes and update calls
- Added `create_function` and `async_create_function` class attributes with default implementations in `base_provider.py` for `AbstractProvider`, `AsyncProvider`, and `AsyncGeneratorProvider`
- Updated `get_create_function` and `get_async_create_function` methods to return these class attributes
- Replaced calls to `provider.get_create_function()` and `provider.get_async_create_function()` with direct attribute access `provider.create_function` and `provider.async_create_function` across `g4f/__init__.py`, `g4f/client/__init__.py`, `g4f/providers/retry_provider.py`, and `g4f/tools/run_tools.py`
- Removed redundant `get_create_function` and `get_async_create_function` methods from `providers/base_provider.py` and `providers/types.py`
- Ensured all provider response calls now use the class attributes for creating completions asynchronously and synchronously as needed
2025-06-12 12:45:55 +02:00
hlohaus
c97ba0c88e Add audio transcribing example and support
Add Grok Chat provider
Rename images parameter to media
Update demo homepage
2025-03-21 03:17:45 +01:00
hlohaus
713ad2c83c Add many parameters to API endpoints
Support conversational HuggingFace providers
Fix streaming in PollinationsAI provider
2025-03-11 22:16:03 +01:00
hlohaus
cc6f9d1a18 Add default vision model, Add MiniMax to models.py 2025-01-25 10:53:30 +01:00
Heiner Lohaus
6e0bc147b5 Support continue messages in Airforce
Add auth caching for OpenAI ChatGPT
Some provider improvments
2025-01-03 20:35:46 +01:00
Heiner Lohaus
486e9a9122 Add login_url to authed providers
Create a home page for the GUI
Fix CopyButton in Code Highlight
2025-01-03 02:40:21 +01:00
H Lohaus
86e36efe6b
Add Path and PathLike support when uploading images (#2514)
* Add Path and PathLike support when uploading images
Improve raise_for_status in special cases
Move ImageResponse to providers.response module
Improve OpenaiChat and OpenaiAccount providers
Add Sources for web_search in OpenaiChat
Add JsonConversation for import and export conversations to js
Add RequestLogin response type
Add TitleGeneration support in OpenaiChat and gui
* Improve Docker Container Guide in README.md
* Add tool calls api support, add search tool support
2024-12-28 16:50:08 +01:00
H Lohaus
bbb858249b
Improve gradient in gui, show only models with enabled providers (#2492)
- **Cloudflare Provider**: Added error handling for missing requirements when fetching arguments.
- **Copilot Provider**: Updated the prompt formatting to use a maximum length function, improving message handling.
- **PollinationsAI Provider**: Adjusted the prompt length to a maximum of 5000 characters.
- **GitHub Copilot Provider**: Updated to use `ClientSession` for better session management.
- **CSS Updates**: Enhanced the gradient styling in the GUI for a more visually appealing interface.
- **JavaScript Updates**: Added functionality to toggle search options in the chat interface.
2024-12-17 21:17:40 +01:00
Heiner Lohaus
ff66df1486 Improved ignored providers support,
Add get_models to OpenaiAPI, HuggingFace and Groq
Add xAI provider
2024-12-15 23:22:36 +01:00
H Lohaus
335c971f6a
Add multiple images support (#2478)
* Add multiple images support

* Add multiple images support in gui

* Support multiple images in legacy client and in the api
Fix some model names in provider model list

* Fix unittests

* Add vision and providers docs
2024-12-13 22:20:58 +01:00
foxfire52
f38428ab23
Improve logging implementation (#2347) 2024-11-15 07:38:51 +01:00
Tekky
0f52104ecb implement direct import of Client without using g4f.client 2024-10-30 09:57:48 +01:00
kqlio67
156bb65027 fix(g4f/__init__.py): ensure consistent parameter usage 2024-10-22 12:13:58 +03:00
Heiner Lohaus
b35dfcd1b0 Add local models to gui, Fix You Provider, add AsyncClient 2024-04-07 10:36:13 +02:00
Heiner Lohaus
59b99a6452 Fix Provider not found error 2024-03-16 20:13:26 +01:00
Heiner Lohaus
012f40078a Filter not working provider from RetryProvider 2024-03-14 15:22:09 +01:00
Heiner Lohaus
84812b9632 Update some providers
Improve read access_token in OpenaiChat
Add IterProvider
Add system message support in FlowGpt
Filter none values in new Client
2024-02-27 11:55:40 +01:00
Heiner Lohaus
775a0c43a0 Add help me coding guide
Add MissingAuthError in GeminiPro
2024-02-24 01:31:17 +01:00
Heiner Lohaus
6b3be02d63 Set default values for generation config
Set  a list of providers
2024-02-23 19:30:53 +01:00
Heiner Lohaus
e5b7f72b71 Move some modules, create providers dir
Set min version for duckduckgo
Make duckduckgo search async
Remove get_lastet_version
2024-02-22 00:16:58 +01:00
Heiner Lohaus
aba4b96f23 Add new Client API with Docs
Use object urls for the preview of image uploads.
Fix upload images in You provider
Fix create image. It's now a single image.
Improve system message for create images.
2024-02-12 11:41:27 +01:00
H Lohaus
5c75972c50
Update provider and model list (#1568)
Move bing.create_images and cookies helper
Disable some providers
2024-02-09 14:24:15 +01:00
Heiner Lohaus
4b41a8f4e8 Add example for Image Upload & Generation 2024-02-09 04:24:21 +01:00
Heiner Lohaus
c1b992c346 Add Gemini Provider with image upload and generation 2024-02-08 22:02:52 +01:00
Heiner Lohaus
1eb7dc05e5 Fix: ChromeDriver only supports characters in the BMP
Add set_cookies helper, Show last used model
2024-01-26 12:49:52 +01:00
Heiner Lohaus
e4f743881c Fix: Model sometimes not converted #1507 2024-01-23 12:17:16 +01:00
Heiner Lohaus
5756586cde Refactor code with AI
Add doctypes to many functions
Add file upload for text files
Add alternative url to FreeChatgpt
Add webp to allowed image types
2024-01-14 07:45:41 +01:00
Heiner Lohaus
ea8d6b847a Support upload image in gui
Add image upload to OpenaiChat
Add image response to OpenaiChat
Improve ChatGPT Plus Support
Remove unused requirements
2024-01-13 15:37:36 +01:00
H Lohaus
bee75be8e3
Add create images to Bing (#1426)
Add create images from Bing
Add FreeChatgpt Provider
Fix Bard Provider
2024-01-10 10:34:56 +01:00
Heiner Lohaus
e0aaad8f47 Fix permissions for chromedriver
Fix NoVNC server access
Remove java from build
2024-01-01 23:20:48 +01:00
Heiner Lohaus
c617b18d12 Add support for all models
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
2024-01-01 17:48:57 +01:00
Heiner Lohaus
d743ee0c26 Add error classes
Move version check to debug
2023-12-11 00:56:06 +01:00
Heiner Lohaus
bf41cfc5d1 Add G4F_PROXY environment
Add regenerate button in gui
2023-12-10 21:46:11 +01:00
H Lohaus
484b96d850
Add websearch to gui (#1314)
* Add websearch to gui
* Fix version_check config
* Add version badge in README.md
* Show version in gui
* Add docker hub build
* Fix gui backend, improve style
2023-12-07 07:18:05 +01:00
abc
c429ec6604 ~ | g4f v-0.1.9.2 2023-12-06 12:14:49 +00:00
H Lohaus
f962993b8d
Merge pull request #1309 from hlohaus/go
Add selenium to dockerfile
2023-12-06 12:02:41 +01:00
Heiner Lohaus
3576dee75a Add selenium to dockerfile
Load model and provider list in gui
Remove needs_auth in HuggingChat
Add default model and login url in gui
2023-12-06 09:35:36 +01:00
abc
546ea6eabc ~ | g4f v-0.1.9.1 2023-12-02 23:49:53 +01:00
madonchik123
b0276f6c9e
Added new provider PI (Hacky way to use) (#1291)
* Added new provider PI (Hacky way to use)

* Updated models endpoint made it show real info about the model.py

* Added cloudscraper to the requirements

* Fixed some bugs aka made streaming also return role
2023-12-01 23:11:52 +01:00
abc
50eafb551c ~ | g4f v-0.1.9.0 2023-11-24 09:01:46 +00:00
abc
063696630c ~ | g4f v-0.1.8.9 2023-11-20 19:00:56 +00:00
Heiner Lohaus
a9f15815cd Support stream in create_async 2023-11-20 14:02:51 +01:00
abc
a7e1419d01 ~ | g4f v-0.1.8.7 2023-11-19 23:07:16 +00:00
abc
79761c6e42 ~ | g4f v-0.1.8.6 2023-11-19 22:58:45 +00:00
abc
9c45b5622a ~ | g4f v-0.1.8.5 2023-11-18 02:43:42 +00:00
abc
14f4b0d13e ~ | g4f v-0.1.8.4 2023-11-16 20:49:15 +00:00