返回提交历史
Modified
g4f/gui/server/backend.py
+12
-7
Added
g4f/gui/server/provider.py
+17
-0
XFEstudio/gpt4free
~
New system for str to Provider
7f8526a1
代码差异
2 个文件
+29
-7
@@ -1,9 +1,11 @@
1
1
import g4f
2
2
3
3
from flask import request
4
from threading import Thread
5
4
from .internet import search
6
5
from .config import special_instructions
6
from .provider import get_provider
7
8
g4f.logging = True
7
9
8
10
class Backend_Api:
9
11
def __init__(self, app) -> None:
@@ -31,22 +33,25 @@ class Backend_Api:
31
33
conversation = request.json['meta']['content']['conversation']
32
34
prompt = request.json['meta']['content']['parts'][0]
33
35
model = request.json['model']
36
provider = get_provider(request.json.get('provider'))
34
37
35
38
messages = special_instructions[jailbreak] + conversation + search(internet_access, prompt) + [prompt]
36
39
37
40
def stream():
38
answer = g4f.ChatCompletion.create(model = model,
39
messages = messages, stream=True)
41
if provider:
42
answer = g4f.ChatCompletion.create(model=model,
43
provider=provider, messages=messages, stream=True)
44
else:
45
answer = g4f.ChatCompletion.create(model=model,
46
messages=messages, stream=True)
40
47
41
48
for token in answer:
42
49
yield token
43
50
44
51
return self.app.response_class(stream(), mimetype='text/event-stream')
45
52
46
except Exception as e:
47
print(e)
53
except Exception as e:
48
54
return {
49
'_token': 'anerroroccuredmf',
50
55
'_action': '_ask',
51
56
'success': False,
52
57
"error": f"an error occured {str(e)}"}, 400
@@ -0,0 +1,17 @@
1
import g4f
2
3
def get_provider(provider: str) -> g4f.Provider.BaseProvider:
4
5
if isinstance(provider, str):
6
print(provider)
7
if provider == 'g4f.Provider.Auto':
8
return None
9
10
if provider in g4f.Provider.ProviderUtils.convert:
11
return g4f.Provider.ProviderUtils.convert[provider]
12
13
else:
14
return None
15
16
else:
17
return None