mirror of
https://github.com/xtekky/gpt4free.git
synced 2025-10-13 12:03:45 +08:00
Secure api
This commit is contained in:
@@ -4,7 +4,7 @@ import logging
|
|||||||
import os
|
import os
|
||||||
import asyncio
|
import asyncio
|
||||||
from typing import Iterator
|
from typing import Iterator
|
||||||
from flask import send_from_directory, request, redirect
|
from flask import send_from_directory, request
|
||||||
from inspect import signature
|
from inspect import signature
|
||||||
|
|
||||||
from ...errors import VersionNotFoundError, MissingAuthError
|
from ...errors import VersionNotFoundError, MissingAuthError
|
||||||
@@ -123,9 +123,6 @@ class Api:
|
|||||||
ensure_media_dir()
|
ensure_media_dir()
|
||||||
return send_from_directory(os.path.abspath(get_media_dir()), name)
|
return send_from_directory(os.path.abspath(get_media_dir()), name)
|
||||||
|
|
||||||
def serve_broken_images(self, name):
|
|
||||||
return redirect("/search/image+g4f?skip=3")
|
|
||||||
|
|
||||||
def _prepare_conversation_kwargs(self, json_data: dict):
|
def _prepare_conversation_kwargs(self, json_data: dict):
|
||||||
kwargs = {**json_data}
|
kwargs = {**json_data}
|
||||||
model = json_data.get('model')
|
model = json_data.get('model')
|
||||||
|
@@ -140,6 +140,8 @@ class Backend_Api(Api):
|
|||||||
json_data["user"] = request.headers.get("x_user", f"{user}:{ip}")
|
json_data["user"] = request.headers.get("x_user", f"{user}:{ip}")
|
||||||
json_data["referer"] = request.headers.get("referer", "")
|
json_data["referer"] = request.headers.get("referer", "")
|
||||||
json_data["user-agent"] = request.headers.get("user-agent", "")
|
json_data["user-agent"] = request.headers.get("user-agent", "")
|
||||||
|
if not json_data.get("referer") or "python" in json_data.get("user-agent", "").lower():
|
||||||
|
json_data["provider"] = random.choice(models.default.best_provider.providers)
|
||||||
kwargs = self._prepare_conversation_kwargs(json_data)
|
kwargs = self._prepare_conversation_kwargs(json_data)
|
||||||
return self.app.response_class(
|
return self.app.response_class(
|
||||||
safe_iter_generator(self._create_response_stream(
|
safe_iter_generator(self._create_response_stream(
|
||||||
@@ -227,10 +229,6 @@ class Backend_Api(Api):
|
|||||||
'function': self.serve_images,
|
'function': self.serve_images,
|
||||||
'methods': ['GET']
|
'methods': ['GET']
|
||||||
},
|
},
|
||||||
'/http<path:name>': {
|
|
||||||
'function': self.serve_broken_images,
|
|
||||||
'methods': ['GET']
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@app.route('/backend-api/v2/create', methods=['GET', 'POST'])
|
@app.route('/backend-api/v2/create', methods=['GET', 'POST'])
|
||||||
|
Reference in New Issue
Block a user