From 7e4e374f621d9d1c37f37ff6555e013cdb3b03a0 Mon Sep 17 00:00:00 2001 From: abc <98614666+xtekky@users.noreply.github.com> Date: Fri, 6 Oct 2023 19:52:17 +0100 Subject: ~ | new g4f GUI --- g4f/gui/server/backend.py | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 g4f/gui/server/backend.py (limited to 'g4f/gui/server/backend.py') diff --git a/g4f/gui/server/backend.py b/g4f/gui/server/backend.py new file mode 100644 index 00000000..9a1dbbf8 --- /dev/null +++ b/g4f/gui/server/backend.py @@ -0,0 +1,52 @@ +import g4f + +from flask import request +from threading import Thread +from .internet import search +from .config import special_instructions + +class Backend_Api: + def __init__(self, app) -> None: + self.app = app + self.routes = { + '/backend-api/v2/conversation': { + 'function': self._conversation, + 'methods': ['POST'] + }, + '/backend-api/v2/gen.set.summarize:title': { + 'function': self._gen_title, + 'methods': ['POST'] + }, + } + + def _gen_title(self): + return { + 'title': '' + } + + def _conversation(self): + try: + jailbreak = request.json['jailbreak'] + internet_access = request.json['meta']['content']['internet_access'] + conversation = request.json['meta']['content']['conversation'] + prompt = request.json['meta']['content']['parts'][0] + model = request.json['model'] + + messages = special_instructions[jailbreak] + conversation + search(internet_access, prompt) + [prompt] + + def stream(): + 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) + return { + '_token': 'anerroroccuredmf', + '_action': '_ask', + 'success': False, + "error": f"an error occured {str(e)}"}, 400 \ No newline at end of file -- cgit v1.2.3