ka1kuk commited on
Commit
c0758df
1 Parent(s): 47756bd

Create __init__.py

Browse files
Files changed (1) hide show
  1. g4f/__init__.py +39 -0
g4f/__init__.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import sys
2
+ from . import Provider
3
+ from g4f.models import Model, ModelUtils
4
+
5
+
6
+ class ChatCompletion:
7
+ @staticmethod
8
+ def create(model: Model.model or str, messages: list, provider: Provider.Provider = None, stream: bool = False, auth: str = False, **kwargs):
9
+ kwargs['auth'] = auth
10
+
11
+ if provider and provider.needs_auth and not auth:
12
+ print(
13
+ f'ValueError: {provider.__name__} requires authentication (use auth="cookie or token or jwt ..." param)', file=sys.stderr)
14
+ sys.exit(1)
15
+
16
+ try:
17
+ if isinstance(model, str):
18
+ try:
19
+ model = ModelUtils.convert[model]
20
+ except KeyError:
21
+ raise Exception(f'The model: {model} does not exist')
22
+
23
+ engine = model.best_provider if not provider else provider
24
+
25
+ if not engine.supports_stream and stream == True:
26
+ print(
27
+ f"ValueError: {engine.__name__} does not support 'stream' argument", file=sys.stderr)
28
+ sys.exit(1)
29
+
30
+ print(f'Using {engine.__name__} provider')
31
+
32
+ return (engine._create_completion(model.name, messages, stream, **kwargs)
33
+ if stream else ''.join(engine._create_completion(model.name, messages, stream, **kwargs)))
34
+ except TypeError as e:
35
+ print(e)
36
+ arg: str = str(e).split("'")[1]
37
+ print(
38
+ f"ValueError: {engine.__name__} does not support '{arg}' argument", file=sys.stderr)
39
+ sys.exit(1)