mirror of
https://github.com/xtekky/gpt4free.git
synced 2025-12-06 02:30:41 -08:00
feat: add ffmpeg and flac installation to Dockerfiles
- Updated `Dockerfile` to install `ffmpeg` and `flac` along with existing packages. - Updated `Dockerfile-slim` to install `ffmpeg` and `flac` along with existing packages. - Modified `any_provider.py` to change how providers are handled when a model is specified, allowing for a submodel to be extracted and checked against the provider's attributes. - Adjusted `retry_provider.py` to ensure the alias for the model is correctly set based on the provider's model aliases, improving clarity in debug logging.
This commit is contained in:
parent
554b51a511
commit
e9179b87c2
4 changed files with 20 additions and 14 deletions
|
|
@ -19,7 +19,7 @@ RUN if [ "$G4F_VERSION" = "" ] ; then \
|
|||
RUN apt-get -qqy update \
|
||||
&& apt-get -qqy upgrade \
|
||||
&& apt-get -qyy autoremove \
|
||||
&& apt-get -qqy install python3 python-is-python3 pip \
|
||||
&& apt-get -qqy install python3 python-is-python3 pip ffmpeg flac \
|
||||
&& apt-get -qyy remove openjdk-11-jre-headless \
|
||||
&& apt-get -qyy autoremove \
|
||||
&& apt-get -qyy clean \
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ ENV G4F_USER_ID $G4F_USER_ID
|
|||
ENV G4F_DIR /app
|
||||
|
||||
RUN apt-get update && apt-get upgrade -y \
|
||||
&& apt-get install -y git cron \
|
||||
&& apt-get install -y git cron ffmpeg flac \
|
||||
# Add user and user group
|
||||
&& groupadd -g $G4F_USER_ID $G4F_USER \
|
||||
&& useradd -rm -G sudo -u $G4F_USER_ID -g $G4F_USER_ID $G4F_USER \
|
||||
|
|
|
|||
|
|
@ -280,12 +280,14 @@ class AnyProvider(AsyncGeneratorProvider, ProviderModelMixin):
|
|||
) -> AsyncResult:
|
||||
cls.get_models(ignored=ignored)
|
||||
providers = []
|
||||
|
||||
if model and ":" in model:
|
||||
providers = model.split(":")
|
||||
model = providers.pop()
|
||||
providers = [getattr(Provider, provider) for provider in providers]
|
||||
elif not model or model == cls.default_model:
|
||||
provider, submodel = model.split(":", maxsplit=1)
|
||||
if hasattr(Provider, provider):
|
||||
provider = getattr(Provider, provider)
|
||||
if provider.working and provider.get_parent() not in ignored:
|
||||
providers.append(provider)
|
||||
model = submodel
|
||||
if not model or model == cls.default_model:
|
||||
model = ""
|
||||
has_image = False
|
||||
has_audio = False
|
||||
|
|
|
|||
|
|
@ -53,10 +53,12 @@ class IterListProvider(BaseRetryProvider):
|
|||
|
||||
for provider in self.get_providers(stream and not ignore_stream, ignored):
|
||||
self.last_provider = provider
|
||||
alias = model
|
||||
if not model:
|
||||
model = getattr(provider, "default_model", None)
|
||||
alias = provider.model_aliases.get(model, model) if hasattr(provider, "model_aliases") else model
|
||||
debug.log(f"Using {provider.__name__} provider with model {alias}")
|
||||
alias = getattr(provider, "default_model", None)
|
||||
if hasattr(provider, "model_aliases"):
|
||||
alias = provider.model_aliases.get(model, model)
|
||||
debug.log(f"Using provider: {provider.__name__} with model: {alias}")
|
||||
yield ProviderInfo(**provider.get_dict(), model=alias)
|
||||
extra_body = kwargs.copy()
|
||||
if isinstance(api_key, dict):
|
||||
|
|
@ -97,11 +99,13 @@ class IterListProvider(BaseRetryProvider):
|
|||
|
||||
for provider in self.get_providers(stream and not ignore_stream, ignored):
|
||||
self.last_provider = provider
|
||||
alias = model
|
||||
if not model:
|
||||
model = getattr(provider, "default_model", None)
|
||||
model = provider.model_aliases.get(model, model) if hasattr(provider, "model_aliases") else model
|
||||
debug.log(f"Using {provider.__name__} provider with model {model}")
|
||||
yield ProviderInfo(**provider.get_dict(), model=model)
|
||||
alias = getattr(provider, "default_model", None)
|
||||
if hasattr(provider, "model_aliases"):
|
||||
alias = provider.model_aliases.get(model, model)
|
||||
debug.log(f"Using {provider.__name__} provider with model {alias}")
|
||||
yield ProviderInfo(**provider.get_dict(), model=alias)
|
||||
extra_body = kwargs.copy()
|
||||
if isinstance(api_key, dict):
|
||||
api_key = api_key.get(provider.get_parent())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue