import codecs
import os
from setuptools import find_packages, setup
here = os.path.abspath(os.path.dirname(__file__))
with codecs.open(os.path.join(here, 'README.md'), encoding='utf-8') as fh:
long_description = '\n' + fh.read()
INSTALL_REQUIRE = [
"requests",
"aiohttp",
"brotli",
"pycryptodome",
"nest_asyncio",
]
EXTRA_REQUIRE = {
'all': [
"curl_cffi>=0.6.2",
"certifi",
"browser_cookie3", # get_cookies
"duckduckgo-search>=5.0" ,# internet.search
"beautifulsoup4", # internet.search and bing.create_images
"brotli", # openai, bing
"platformdirs",
"cryptography",
"aiohttp_socks", # proxy
"pillow", # image
"cairosvg", # svg image
"werkzeug", "flask", # gui
"fastapi", # api
"uvicorn", "nest_asyncio", # api
"pycryptodome", # openai
"nodriver",
],
"image": [
"pillow",
"cairosvg",
"beautifulsoup4"
],
"webdriver": [
"platformdirs",
"undetected-chromedriver>=3.5.5",
"setuptools",
"selenium-wire"
],
"webview": [
"webview",
"platformdirs",
"plyer",
"cryptography"
],
"api": [
"loguru", "fastapi",
"uvicorn",
],
"gui": [
"werkzeug", "flask",
"beautifulsoup4", "pillow",
"duckduckgo-search>=5.0",
"browser_cookie3"
],
"local": [
"gpt4all"
]
}
DESCRIPTION = (
'The official gpt4free repository | various collection of powerful language models'
)
# Setting up
setup(
name='g4f',
version=os.environ.get("G4F_VERSION"),
author='Tekky',
author_email='<support@g4f.ai>',
description=DESCRIPTION,
long_description_content_type='text/markdown',
long_description=long_description,
packages=find_packages(),
package_data={
'g4f': ['g4f/interference/*', 'g4f/gui/client/*', 'g4f/gui/server/*', 'g4f/Provider/npm/*', 'g4f/local/models/*']
},
include_package_data=True,
install_requires=INSTALL_REQUIRE,
extras_require=EXTRA_REQUIRE,
entry_points={
'console_scripts': ['g4f=g4f.cli:main'],
},
url='https://github.com/xtekky/gpt4free', # Link to your GitHub repository
project_urls={
'Source Code': 'https://github.com/xtekky/gpt4free', # GitHub link
'Bug Tracker': 'https://github.com/xtekky/gpt4free/issues', # Link to issue tracker
},
keywords=[
'python',
'chatbot',
'reverse-engineering',
'openai',
'chatbots',
'gpt',
'language-model',
'gpt-3',
'gpt3',
'openai-api',
'gpt-4',
'gpt4',
'chatgpt',
'chatgpt-api',
'openai-chatgpt',
'chatgpt-free',
'chatgpt-4',
'chatgpt4',
'chatgpt4-api',
'free',
'free-gpt',
'gpt4free',
'g4f',
],
classifiers=[
'Development Status :: 2 - Pre-Alpha',
'Intended Audience :: Developers',
'Programming Language :: Python :: 3',
'Operating System :: Unix',
'Operating System :: MacOS :: MacOS X',
'Operating System :: Microsoft :: Windows',
],
)