mirror of
https://github.com/xtekky/gpt4free.git
synced 2025-12-15 14:51:19 -08:00
~
New system for str to Provider
This commit is contained in:
parent
f9355ad5fc
commit
7f8526a122
2 changed files with 29 additions and 7 deletions
|
|
@ -1,9 +1,11 @@
|
|||
import g4f
|
||||
|
||||
from flask import request
|
||||
from threading import Thread
|
||||
from .internet import search
|
||||
from .config import special_instructions
|
||||
from .provider import get_provider
|
||||
|
||||
g4f.logging = True
|
||||
|
||||
class Backend_Api:
|
||||
def __init__(self, app) -> None:
|
||||
|
|
@ -31,22 +33,25 @@ class Backend_Api:
|
|||
conversation = request.json['meta']['content']['conversation']
|
||||
prompt = request.json['meta']['content']['parts'][0]
|
||||
model = request.json['model']
|
||||
provider = get_provider(request.json.get('provider'))
|
||||
|
||||
messages = special_instructions[jailbreak] + conversation + search(internet_access, prompt) + [prompt]
|
||||
|
||||
def stream():
|
||||
answer = g4f.ChatCompletion.create(model = model,
|
||||
messages = messages, stream=True)
|
||||
if provider:
|
||||
answer = g4f.ChatCompletion.create(model=model,
|
||||
provider=provider, messages=messages, stream=True)
|
||||
else:
|
||||
answer = g4f.ChatCompletion.create(model=model,
|
||||
messages=messages, stream=True)
|
||||
|
||||
for token in answer:
|
||||
yield token
|
||||
|
||||
|
||||
return self.app.response_class(stream(), mimetype='text/event-stream')
|
||||
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as e:
|
||||
return {
|
||||
'_token': 'anerroroccuredmf',
|
||||
'_action': '_ask',
|
||||
'success': False,
|
||||
"error": f"an error occured {str(e)}"}, 400
|
||||
17
g4f/gui/server/provider.py
Normal file
17
g4f/gui/server/provider.py
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
import g4f
|
||||
|
||||
def get_provider(provider: str) -> g4f.Provider.BaseProvider:
|
||||
|
||||
if isinstance(provider, str):
|
||||
print(provider)
|
||||
if provider == 'g4f.Provider.Auto':
|
||||
return None
|
||||
|
||||
if provider in g4f.Provider.ProviderUtils.convert:
|
||||
return g4f.Provider.ProviderUtils.convert[provider]
|
||||
|
||||
else:
|
||||
return None
|
||||
|
||||
else:
|
||||
return None
|
||||
Loading…
Add table
Add a link
Reference in a new issue