setup.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. import codecs
  2. import os
  3. from setuptools import find_packages, setup
  4. here = os.path.abspath(os.path.dirname(__file__))
  5. with codecs.open(os.path.join(here, 'README.md'), encoding='utf-8') as fh:
  6. long_description = '\n' + fh.read()
  7. long_description = long_description.replace("[!NOTE]", "")
  8. long_description = long_description.replace("(docs/images/", "(https://raw.githubusercontent.com/xtekky/gpt4free/refs/heads/main/docs/images/")
  9. long_description = long_description.replace("(docs/", "(https://github.com/xtekky/gpt4free/blob/main/docs/")
  10. INSTALL_REQUIRE = [
  11. "requests",
  12. "aiohttp",
  13. "brotli",
  14. "pycryptodome",
  15. "nest_asyncio",
  16. ]
  17. EXTRA_REQUIRE = {
  18. 'all': [
  19. "curl_cffi>=0.6.2",
  20. "certifi",
  21. "browser_cookie3", # get_cookies
  22. "duckduckgo-search>=5.0", # internet.search
  23. "beautifulsoup4", # internet.search and bing.create_images
  24. "platformdirs",
  25. "aiohttp_socks", # proxy
  26. "pillow", # image
  27. "cairosvg", # svg image
  28. "werkzeug", "flask", # gui
  29. "fastapi", # api
  30. "uvicorn", # api
  31. "nodriver",
  32. "python-multipart",
  33. "pywebview",
  34. "plyer",
  35. "setuptools",
  36. "pypdf2", # files
  37. "docx",
  38. "odfpy",
  39. "ebooklib",
  40. "openpyxl",
  41. ],
  42. 'slim': [
  43. "curl_cffi>=0.6.2",
  44. "certifi",
  45. "browser_cookie3",
  46. "duckduckgo-search>=5.0" ,# internet.search
  47. "beautifulsoup4", # internet.search and bing.create_images
  48. "aiohttp_socks", # proxy
  49. "pillow", # image
  50. "werkzeug", "flask", # gui
  51. "fastapi", # api
  52. "uvicorn", # api
  53. "python-multipart",
  54. "pypdf2", # files
  55. "docx",
  56. ],
  57. "image": [
  58. "pillow",
  59. "cairosvg",
  60. "beautifulsoup4"
  61. ],
  62. "webview": [
  63. "pywebview",
  64. "platformdirs",
  65. "plyer",
  66. "cryptography",
  67. ],
  68. "api": [
  69. "loguru", "fastapi",
  70. "uvicorn",
  71. "python-multipart",
  72. ],
  73. "gui": [
  74. "werkzeug", "flask",
  75. "beautifulsoup4", "pillow",
  76. "duckduckgo-search>=5.0",
  77. ],
  78. "search": [
  79. "beautifulsoup4",
  80. "pillow",
  81. "duckduckgo-search>=5.0",
  82. ],
  83. "local": [
  84. "gpt4all"
  85. ],
  86. "files": [
  87. "spacy",
  88. "beautifulsoup4",
  89. "pypdf2",
  90. "docx",
  91. "odfpy",
  92. "ebooklib",
  93. "openpyxl",
  94. ]
  95. }
  96. DESCRIPTION = (
  97. 'The official gpt4free repository | various collection of powerful language models'
  98. )
  99. # Setting up
  100. setup(
  101. name='g4f',
  102. version=os.environ.get("G4F_VERSION"),
  103. author='Tekky',
  104. author_email='<support@g4f.ai>',
  105. description=DESCRIPTION,
  106. long_description_content_type='text/markdown',
  107. long_description=long_description,
  108. packages=find_packages(),
  109. package_data={
  110. 'g4f': ['g4f/interference/*', 'g4f/gui/client/*', 'g4f/gui/server/*', 'g4f/Provider/npm/*', 'g4f/local/models/*']
  111. },
  112. include_package_data=True,
  113. install_requires=INSTALL_REQUIRE,
  114. extras_require=EXTRA_REQUIRE,
  115. entry_points={
  116. 'console_scripts': ['g4f=g4f.cli:main'],
  117. },
  118. url='https://github.com/xtekky/gpt4free', # Link to your GitHub repository
  119. project_urls={
  120. 'Source Code': 'https://github.com/xtekky/gpt4free', # GitHub link
  121. 'Bug Tracker': 'https://github.com/xtekky/gpt4free/issues', # Link to issue tracker
  122. },
  123. keywords=[
  124. 'python',
  125. 'chatbot',
  126. 'reverse-engineering',
  127. 'openai',
  128. 'chatbots',
  129. 'gpt',
  130. 'language-model',
  131. 'gpt-3',
  132. 'gpt3',
  133. 'openai-api',
  134. 'gpt-4',
  135. 'gpt4',
  136. 'chatgpt',
  137. 'chatgpt-api',
  138. 'openai-chatgpt',
  139. 'chatgpt-free',
  140. 'chatgpt-4',
  141. 'chatgpt4',
  142. 'chatgpt4-api',
  143. 'free',
  144. 'free-gpt',
  145. 'gpt4free',
  146. 'g4f',
  147. ],
  148. classifiers=[
  149. 'Development Status :: 2 - Pre-Alpha',
  150. 'Intended Audience :: Developers',
  151. 'Programming Language :: Python :: 3',
  152. 'Operating System :: Unix',
  153. 'Operating System :: MacOS :: MacOS X',
  154. 'Operating System :: Microsoft :: Windows',
  155. ],
  156. )