XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
UTF-8
import os

from setuptools import find_packages, setup

current_dir = os.path.abspath(os.path.dirname(__file__))

with open(os.path.join(current_dir, "README.md"), "r", encoding="utf-8") as f:
    long_description = f.read()

long_description = long_description.replace("[!NOTE]", "")

INSTALL_REQUIRE = [
    "requests",
    "aiohttp",
    "brotli",
    "pycryptodome",
    "nest-asyncio2",
]

EXTRA_REQUIRE = {
    "all": [
        "curl_cffi>=0.6.2",
        "certifi",
        "browser_cookie3",  # get_cookies
        "ddgs",  # web_search
        "beautifulsoup4",  # web_search and bing.create_images
        "platformdirs",
        "aiohttp_socks",  # proxy
        "pillow",  # image
        "cairosvg",  # svg image
        "werkzeug",
        "flask[async]",  # gui
        "fastapi",  # api
        "uvicorn",  # api
        "zendriver",
        "python-multipart",
        "a2wsgi",
        "setuptools",
        "markitdown[all]",
        "python-dotenv",
        "aiofile",
        "wasmtime",
        "numpy",
        "PyYAML",
        "websocket-client",
        "pystray",
    ],
    "slim": [
        "curl_cffi>=0.6.2",
        "certifi",
        "browser_cookie3",
        "ddgs",  # web_search
        "beautifulsoup4",  # web_search and bing.create_images
        "aiohttp_socks",  # proxy
        "pillow",  # image
        "werkzeug",
        "flask[async]",  # gui
        "fastapi",  # api
        "uvicorn",  # api
        "zendriver",
        "python-multipart",
        "a2wsgi",
        "pypdf2",
        "python-docx",
        "python-dotenv",
        "aiofile",
        "PyYAML",
        "websocket-client",
        "pystray",
    ],
    "image": [
        "pillow",
        "cairosvg",
        "beautifulsoup4",
    ],
    "webview": [
        "pywebview",
        "platformdirs",
        "plyer",
        "cryptography",
    ],
    "api": ["loguru", "fastapi", "uvicorn", "python-multipart", "a2wsgi", "PyYAML"],
    "gui": [
        "werkzeug",
        "flask[async]",
        "beautifulsoup4",
        "pillow",
    ],
    "search": [
        "beautifulsoup4",
        "pillow",
        "ddgs",
    ],
    "local": ["gpt4all"],
    "files": [
        "beautifulsoup4",
        "markitdown[all]",
    ],
    "tray": [
        "pystray",
        "pillow",
        "cairosvg",
    ],
}

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": []},
    include_package_data=True,
    install_requires=INSTALL_REQUIRE,
    extras_require=EXTRA_REQUIRE,
    entry_points={
        "console_scripts": [
            "g4f=g4f.cli:main",
            "g4f-mcp=g4f.mcp.server:main",
            "g4f-tray=g4f.tray:_tray_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=[
        "gpt4free",
        "gpt4free.js",
        "g4f",
        "g4f.dev",
        "javascript",
        "npm",
        "browser",
        "gpt",
        "chatgpt",
        "deepseek",
        "openai",
        "ai",
        "client",
        "sdk",
        "free",
        "ai",
        "gpt-4",
        "gpt-4o",
        "chat",
        "api",
        "browser",
        "ai",
        "ai",
        "js",
        "client",
        "text",
        "generation",
        "image",
        "generation",
        "in-browser",
        "ai",
        "frontend",
        "ai",
        "openai",
        "alternative",
        "javascript",
        "ai",
        "library",
        "nodejs",
        "prompt",
        "engineering",
        "chatbot",
        "ai",
        "integration",
    ],
    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",
    ],
)