summaryrefslogblamecommitdiffstats
path: root/setup.py
blob: 48bbede9e865b5db769a49f4bfe9a88dbbc38f10 (plain) (tree)
1
2
3
4
5
6
7
8
9


             

                                           

                                                 

                                                                          
 
                   
               
              
             


                               
 
 

                 
                           
                  
                                                
                                                       
                                                    
                                                                           





                                                 


                       
                       
                                          


                                              
                                        
                                        
                                           







                        
                                         

                       
      


                       




                      
      






                                   
                                 
                         


                 


     
               
                                                                                       
 


            
               
                                          

                                    
                            
                                                  

                                      
                  
                                                                                                                         
      
                              

                                     
                  
                                                
      
                                                                               
                  

                                                                                            
      
              






















                              
      
                 





                                                   
      
 
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",
    "curl_cffi>=0.6.2",
    "cloudscraper" # Cloudflare
]

EXTRA_REQUIRE = {
    'all': [
        "curl_cffi>=0.6.2",
        "certifi",
        "browser_cookie3",         # get_cookies
        "PyExecJS",                # GptForLove, Vercel
        "duckduckgo-search>=5.0"  ,# internet.search
        "beautifulsoup4",          # internet.search and bing.create_images
        "brotli",                  # openai, bing
        # webdriver
        #"undetected-chromedriver>=3.5.5",
        #"setuptools", 
        #"selenium-wire"
        # webview
        "pywebview",
        "platformdirs",
        "plyer",
        "cryptography",
        "aiohttp_socks",           # proxy
        "pillow",                  # image
        "cairosvg",                # svg image
        "werkzeug", "flask",       # gui
        "fastapi",                 # api
        "uvicorn", "nest_asyncio", # api
        "pycryptodome"             # openai
    ],
    "image": [
        "pillow",
        "cairosvg",
        "beautifulsoup4"
    ],
    "webdriver": [
        "platformdirs",
        "undetected-chromedriver>=3.5.5",
        "setuptools",
        "selenium-wire"
    ],
    "webview": [
        "webview",
        "platformdirs",
        "plyer",
        "cryptography"
    ],
    "openai": [
        "pycryptodome"
    ],
    "api": [
        "loguru", "fastapi",
        "uvicorn", "nest_asyncio"
    ],
    "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',
    ],
)