mirror of
https://github.com/xtekky/gpt4free.git
synced 2024-09-12 08:29:30 -04:00
Added code to ignore certain providers in the API
This commit is contained in:
parent
f125f714fb
commit
ecad7a4ac8
12
g4f_api/ApiInterface.py
Normal file
12
g4f_api/ApiInterface.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import g4f
|
||||||
|
from g4f.api import Api
|
||||||
|
|
||||||
|
create_chat_completion_original = g4f.ChatCompletion.create
|
||||||
|
list_ignored_providers=[]
|
||||||
|
|
||||||
|
def create_chat_completion(*args, **kwargs):
|
||||||
|
kwargs['ignored']=list_ignored_providers
|
||||||
|
return create_chat_completion_original(*args, **kwargs)
|
||||||
|
|
||||||
|
g4f.ChatCompletion.create=create_chat_completion
|
||||||
|
api=Api(g4f, debug=False)
|
0
g4f_api/__init__.py
Normal file
0
g4f_api/__init__.py
Normal file
23
g4f_api/__main__.py
Normal file
23
g4f_api/__main__.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import typing
|
||||||
|
from enum import Enum
|
||||||
|
from g4f import Provider
|
||||||
|
from g4f_api import ApiInterface
|
||||||
|
import typer
|
||||||
|
|
||||||
|
IgnoredProviders = Enum("ignore_providers", {key:key for key in Provider.__all__})
|
||||||
|
|
||||||
|
app = typer.Typer(help="Run the G4F API")
|
||||||
|
|
||||||
|
@app.command()
|
||||||
|
def main(
|
||||||
|
bind_str: str = typer.Argument(..., envvar="G4F_API_BIND_STR", help="The bind string."),
|
||||||
|
i_num_threads: int = typer.Option(1, envvar="G4F_API_NUM_THREADS", help="The number of threads."),
|
||||||
|
list_ignored_providers: typing.List[IgnoredProviders] = typer.Option([], envvar="G4F_API_LIST_IGNORED_PROVIDERS", help="List of providers to ignore when processing request."),
|
||||||
|
):
|
||||||
|
list_ignored_providers=[provider.name for provider in list_ignored_providers]
|
||||||
|
ApiInterface.list_ignored_providers=list_ignored_providers
|
||||||
|
ApiInterface.api.run(bind_str, i_num_threads)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app()
|
Loading…
Reference in New Issue
Block a user