mirror of
https://github.com/xtekky/gpt4free.git
synced 2025-10-11 03:00:23 +08:00
Add support for all models
Add AbstractProvider class Add ProviderType type Add get_last_provider function Add version module and VersionUtils Display used provider in gui Fix error response in api
This commit is contained in:
48
g4f/debug.py
48
g4f/debug.py
@@ -1,45 +1,5 @@
|
||||
from os import environ
|
||||
import requests
|
||||
from importlib.metadata import version as get_package_version, PackageNotFoundError
|
||||
from subprocess import check_output, CalledProcessError, PIPE
|
||||
from .errors import VersionNotFoundError
|
||||
from .base_provider import ProviderType
|
||||
|
||||
logging = False
|
||||
version_check = True
|
||||
|
||||
def get_version() -> str:
|
||||
# Read from package manager
|
||||
try:
|
||||
return get_package_version("g4f")
|
||||
except PackageNotFoundError:
|
||||
pass
|
||||
# Read from docker environment
|
||||
current_version = environ.get("G4F_VERSION")
|
||||
if current_version:
|
||||
return current_version
|
||||
# Read from git repository
|
||||
try:
|
||||
command = ["git", "describe", "--tags", "--abbrev=0"]
|
||||
return check_output(command, text=True, stderr=PIPE).strip()
|
||||
except CalledProcessError:
|
||||
pass
|
||||
raise VersionNotFoundError("Version not found")
|
||||
|
||||
def get_latest_version() -> str:
|
||||
if environ.get("G4F_VERSION"):
|
||||
url = "https://registry.hub.docker.com/v2/repositories/"
|
||||
url += "hlohaus789/g4f"
|
||||
url += "/tags?page_size=2&ordering=last_updated"
|
||||
response = requests.get(url).json()
|
||||
return response["results"][1]["name"]
|
||||
response = requests.get("https://pypi.org/pypi/g4f/json").json()
|
||||
return response["info"]["version"]
|
||||
|
||||
def check_pypi_version() -> None:
|
||||
try:
|
||||
version = get_version()
|
||||
latest_version = get_latest_version()
|
||||
if version != latest_version:
|
||||
print(f'New pypi version: {latest_version} (current: {version}) | pip install -U g4f')
|
||||
except Exception as e:
|
||||
print(f'Failed to check g4f pypi version: {e}')
|
||||
logging: bool = False
|
||||
version_check: bool = True
|
||||
last_provider: ProviderType = None
|
Reference in New Issue
Block a user