XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 1
返回提交历史

XFEstudio/gpt4free

~

New system for str to Provider

7f8526a1
abc <98614666+xtekky@users.noreply.github.com>
提交于

代码差异

2 个文件 +29 -7
Modified g4f/gui/server/backend.py +12 -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
Added g4f/gui/server/provider.py +17 -0
@@ -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