summaryrefslogtreecommitdiffstats
path: root/g4f_api/__main__.py
diff options
context:
space:
mode:
Diffstat (limited to 'g4f_api/__main__.py')
-rw-r--r--g4f_api/__main__.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/g4f_api/__main__.py b/g4f_api/__main__.py
new file mode 100644
index 00000000..58267686
--- /dev/null
+++ b/g4f_api/__main__.py
@@ -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() \ No newline at end of file