summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTekky <98614666+xtekky@users.noreply.github.com>2023-10-27 18:36:46 +0200
committerGitHub <noreply@github.com>2023-10-27 18:36:46 +0200
commit0e700a5a951a0d9d705fb9f6c7253f8222062f09 (patch)
tree349c6c6c7c92b6c2a58db90643788ff7d64b1329
parentUpdate README.md (diff)
parentadd api proxy (diff)
downloadgpt4free-0e700a5a951a0d9d705fb9f6c7253f8222062f09.tar
gpt4free-0e700a5a951a0d9d705fb9f6c7253f8222062f09.tar.gz
gpt4free-0e700a5a951a0d9d705fb9f6c7253f8222062f09.tar.bz2
gpt4free-0e700a5a951a0d9d705fb9f6c7253f8222062f09.tar.lz
gpt4free-0e700a5a951a0d9d705fb9f6c7253f8222062f09.tar.xz
gpt4free-0e700a5a951a0d9d705fb9f6c7253f8222062f09.tar.zst
gpt4free-0e700a5a951a0d9d705fb9f6c7253f8222062f09.zip
-rw-r--r--g4f/api/__init__.py22
-rw-r--r--g4f/gui/server/backend.py37
2 files changed, 48 insertions, 11 deletions
diff --git a/g4f/api/__init__.py b/g4f/api/__init__.py
index b78768bd..fec5606f 100644
--- a/g4f/api/__init__.py
+++ b/g4f/api/__init__.py
@@ -105,9 +105,25 @@ class Api:
logger.info(f'model: {model}, stream: {stream}, request: {messages[-1]["content"]}')
- response = self.engine.ChatCompletion.create(model=model,
- stream=stream, messages=messages,
- ignored=self.list_ignored_providers)
+ config = None
+ proxy = None
+
+ try:
+ config = json.load(open("config.json","r",encoding="utf-8"))
+ proxy = config["proxy"]
+
+ except Exception:
+ pass
+
+ if proxy != None:
+ response = self.engine.ChatCompletion.create(model=model,
+ stream=stream, messages=messages,
+ ignored=self.list_ignored_providers,
+ proxy=proxy)
+ else:
+ response = self.engine.ChatCompletion.create(model=model,
+ stream=stream, messages=messages,
+ ignored=self.list_ignored_providers)
completion_id = ''.join(random.choices(string.ascii_letters + string.digits, k=28))
completion_timestamp = int(time.time())
diff --git a/g4f/gui/server/backend.py b/g4f/gui/server/backend.py
index 2ba0ca8e..cf6d6358 100644
--- a/g4f/gui/server/backend.py
+++ b/g4f/gui/server/backend.py
@@ -1,4 +1,5 @@
import g4f
+import json
from flask import request
from .internet import search
@@ -43,6 +44,15 @@ class Backend_Api:
}
def _conversation(self):
+ config = None
+ proxy = None
+ try:
+ config = json.load(open("config.json","r",encoding="utf-8"))
+ proxy = config["proxy"]
+
+ except Exception:
+ pass
+
try:
jailbreak = request.json['jailbreak']
internet_access = request.json['meta']['content']['internet_access']
@@ -54,14 +64,25 @@ class Backend_Api:
messages = special_instructions[jailbreak] + conversation + search(internet_access, prompt) + [prompt]
def stream():
- yield from g4f.ChatCompletion.create(
- model=model,
- provider=get_provider(provider),
- messages=messages,
- stream=True,
- ) if provider else g4f.ChatCompletion.create(
- model=model, messages=messages, stream=True
- )
+ if proxy != None:
+ yield from g4f.ChatCompletion.create(
+ model=model,
+ provider=get_provider(provider),
+ messages=messages,
+ stream=True,
+ proxy=proxy
+ ) if provider else g4f.ChatCompletion.create(
+ model=model, messages=messages, stream=True, proxy=proxy
+ )
+ else:
+ yield from g4f.ChatCompletion.create(
+ model=model,
+ provider=get_provider(provider),
+ messages=messages,
+ stream=True,
+ ) if provider else g4f.ChatCompletion.create(
+ model=model, messages=messages, stream=True
+ )
return self.app.response_class(stream(), mimetype='text/event-stream')