2024-04-21 23:39:00 +03:00
from __future__ import annotations
2023-10-12 04:35:11 +03:00
import argparse
2023-10-23 11:01:08 +03:00
from g4f import Provider
2023-10-12 04:35:11 +03:00
from g4f . gui . run import gui_parser , run_gui_args
2024-11-19 22:26:00 +03:00
import g4f . cookies
2023-10-12 04:35:11 +03:00
def main ( ) :
parser = argparse . ArgumentParser ( description = " Run gpt4free " )
subparsers = parser . add_subparsers ( dest = " mode " , help = " Mode to run the g4f in. " )
2024-04-20 21:06:35 +03:00
api_parser = subparsers . add_parser ( " api " )
2024-11-25 15:27:56 +03:00
api_parser . add_argument ( " --bind " , default = None , help = " The bind string. (Default: 0.0.0.0:1337) " )
api_parser . add_argument ( " --port " , default = None , help = " Change the port of the server. " )
api_parser . add_argument ( " --debug " , " -d " , action = " store_true " , help = " Enable verbose logging. " )
2024-11-24 19:43:45 +03:00
api_parser . add_argument ( " --gui " , " -g " , default = False , action = " store_true " , help = " Add gui to the api. " )
Fix api streaming, fix AsyncClient (#2357)
* Fix api streaming, fix AsyncClient, Improve Client class, Some providers fixes, Update models list, Fix some tests, Update model list in Airforce provid
er, Add OpenAi image generation url to api, Fix reload and debug in api arguments, Fix websearch in gui
* Fix Cloadflare and Pi and AmigoChat provider
* Fix conversation support in DDG provider, Add cloudflare bypass with nodriver
* Fix unittests without curl_cffi
2024-11-16 15:19:51 +03:00
api_parser . add_argument ( " --model " , default = None , help = " Default model for chat completion. (incompatible with --reload and --workers) " )
2024-05-06 00:38:31 +03:00
api_parser . add_argument ( " --provider " , choices = [ provider . __name__ for provider in Provider . __providers__ if provider . working ] ,
Fix api streaming, fix AsyncClient (#2357)
* Fix api streaming, fix AsyncClient, Improve Client class, Some providers fixes, Update models list, Fix some tests, Update model list in Airforce provid
er, Add OpenAi image generation url to api, Fix reload and debug in api arguments, Fix websearch in gui
* Fix Cloadflare and Pi and AmigoChat provider
* Fix conversation support in DDG provider, Add cloudflare bypass with nodriver
* Fix unittests without curl_cffi
2024-11-16 15:19:51 +03:00
default = None , help = " Default provider for chat completion. (incompatible with --reload and --workers) " )
api_parser . add_argument ( " --image-provider " , choices = [ provider . __name__ for provider in Provider . __providers__ if provider . working and hasattr ( provider , " image_models " ) ] ,
default = None , help = " Default provider for image generation. (incompatible with --reload and --workers) " ) ,
api_parser . add_argument ( " --proxy " , default = None , help = " Default used proxy. (incompatible with --reload and --workers) " )
2024-04-20 16:41:49 +03:00
api_parser . add_argument ( " --workers " , type = int , default = None , help = " Number of workers. " )
2024-04-21 23:39:00 +03:00
api_parser . add_argument ( " --disable-colors " , action = " store_true " , help = " Don ' t use colors. " )
Fix api streaming, fix AsyncClient (#2357)
* Fix api streaming, fix AsyncClient, Improve Client class, Some providers fixes, Update models list, Fix some tests, Update model list in Airforce provid
er, Add OpenAi image generation url to api, Fix reload and debug in api arguments, Fix websearch in gui
* Fix Cloadflare and Pi and AmigoChat provider
* Fix conversation support in DDG provider, Add cloudflare bypass with nodriver
* Fix unittests without curl_cffi
2024-11-16 15:19:51 +03:00
api_parser . add_argument ( " --ignore-cookie-files " , action = " store_true " , help = " Don ' t read .har and cookie files. (incompatible with --reload and --workers) " )
api_parser . add_argument ( " --g4f-api-key " , type = str , default = None , help = " Sets an authentication key for your API. (incompatible with --reload and --workers) " )
2024-04-29 17:56:56 +03:00
api_parser . add_argument ( " --ignored-providers " , nargs = " + " , choices = [ provider . __name__ for provider in Provider . __providers__ if provider . working ] ,
Fix api streaming, fix AsyncClient (#2357)
* Fix api streaming, fix AsyncClient, Improve Client class, Some providers fixes, Update models list, Fix some tests, Update model list in Airforce provid
er, Add OpenAi image generation url to api, Fix reload and debug in api arguments, Fix websearch in gui
* Fix Cloadflare and Pi and AmigoChat provider
* Fix conversation support in DDG provider, Add cloudflare bypass with nodriver
* Fix unittests without curl_cffi
2024-11-16 15:19:51 +03:00
default = [ ] , help = " List of providers to ignore when processing request. (incompatible with --reload and --workers) " )
2024-11-19 22:26:00 +03:00
api_parser . add_argument ( " --cookie-browsers " , nargs = " + " , choices = [ browser . __name__ for browser in g4f . cookies . browsers ] ,
default = [ ] , help = " List of browsers to access or retrieve cookies from. (incompatible with --reload and --workers) " )
Fix api streaming, fix AsyncClient (#2357)
* Fix api streaming, fix AsyncClient, Improve Client class, Some providers fixes, Update models list, Fix some tests, Update model list in Airforce provid
er, Add OpenAi image generation url to api, Fix reload and debug in api arguments, Fix websearch in gui
* Fix Cloadflare and Pi and AmigoChat provider
* Fix conversation support in DDG provider, Add cloudflare bypass with nodriver
* Fix unittests without curl_cffi
2024-11-16 15:19:51 +03:00
api_parser . add_argument ( " --reload " , action = " store_true " , help = " Enable reloading. " )
2023-10-12 04:35:11 +03:00
subparsers . add_parser ( " gui " , parents = [ gui_parser ( ) ] , add_help = False )
args = parser . parse_args ( )
if args . mode == " api " :
2024-04-21 23:39:00 +03:00
run_api_args ( args )
2023-10-12 04:35:11 +03:00
elif args . mode == " gui " :
run_gui_args ( args )
else :
parser . print_help ( )
exit ( 1 )
2024-04-21 23:39:00 +03:00
def run_api_args ( args ) :
2024-04-29 21:21:47 +03:00
from g4f . api import AppConfig , run_api
2024-05-06 00:38:31 +03:00
AppConfig . set_config (
ignore_cookie_files = args . ignore_cookie_files ,
ignored_providers = args . ignored_providers ,
g4f_api_key = args . g4f_api_key ,
Fix api streaming, fix AsyncClient (#2357)
* Fix api streaming, fix AsyncClient, Improve Client class, Some providers fixes, Update models list, Fix some tests, Update model list in Airforce provid
er, Add OpenAi image generation url to api, Fix reload and debug in api arguments, Fix websearch in gui
* Fix Cloadflare and Pi and AmigoChat provider
* Fix conversation support in DDG provider, Add cloudflare bypass with nodriver
* Fix unittests without curl_cffi
2024-11-16 15:19:51 +03:00
provider = args . provider ,
image_provider = args . image_provider ,
proxy = args . proxy ,
2024-11-24 19:43:45 +03:00
model = args . model ,
gui = args . gui ,
2024-04-29 17:56:56 +03:00
)
2024-11-19 22:26:00 +03:00
g4f . cookies . browsers = [ g4f . cookies [ browser ] for browser in args . cookie_browsers ]
2024-04-29 21:21:47 +03:00
run_api (
2024-04-21 23:39:00 +03:00
bind = args . bind ,
2024-11-25 15:27:56 +03:00
port = args . port ,
2024-04-21 23:39:00 +03:00
debug = args . debug ,
workers = args . workers ,
Fix api streaming, fix AsyncClient (#2357)
* Fix api streaming, fix AsyncClient, Improve Client class, Some providers fixes, Update models list, Fix some tests, Update model list in Airforce provid
er, Add OpenAi image generation url to api, Fix reload and debug in api arguments, Fix websearch in gui
* Fix Cloadflare and Pi and AmigoChat provider
* Fix conversation support in DDG provider, Add cloudflare bypass with nodriver
* Fix unittests without curl_cffi
2024-11-16 15:19:51 +03:00
use_colors = not args . disable_colors ,
reload = args . reload
2024-04-21 23:39:00 +03:00
)
2023-10-12 04:35:11 +03:00
if __name__ == " __main__ " :
main ( )