mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 09:17:06 +08:00
perf: Optimize Embedded Assistant Cache Settings
This commit is contained in:
committed by
fit2cloud-chenyw
parent
8b8cd3e8c9
commit
5c136b46c5
@@ -5,12 +5,10 @@ from typing import Optional
|
||||
|
||||
import requests
|
||||
from fastapi import FastAPI
|
||||
from sqlalchemy import Engine, create_engine
|
||||
from sqlmodel import Session, select
|
||||
from starlette.middleware.cors import CORSMiddleware
|
||||
|
||||
# from apps.datasource.embedding.table_embedding import get_table_embedding
|
||||
from apps.datasource.models.datasource import CoreDatasource, DatasourceConf
|
||||
from apps.datasource.models.datasource import CoreDatasource
|
||||
from apps.datasource.utils.utils import aes_encrypt
|
||||
from apps.system.models.system_model import AssistantModel
|
||||
from apps.system.schemas.auth import CacheName, CacheNamespace
|
||||
@@ -19,7 +17,7 @@ from common.core.config import settings
|
||||
from common.core.db import engine
|
||||
from common.core.sqlbot_cache import cache
|
||||
from common.utils.aes_crypto import simple_aes_decrypt
|
||||
from common.utils.utils import SQLBotLogUtil, equals_ignore_case, get_domain_list, string_to_numeric_hash
|
||||
from common.utils.utils import SQLBotLogUtil, get_domain_list, string_to_numeric_hash
|
||||
from common.core.deps import Trans
|
||||
from common.core.response_middleware import ResponseMiddleware
|
||||
|
||||
@@ -101,7 +99,9 @@ def init_dynamic_cors(app: FastAPI):
|
||||
if cors_middleware:
|
||||
cors_middleware.kwargs['allow_origins'] = updated_origins
|
||||
if response_middleware:
|
||||
response_middleware.kwargs['allow_origins'] = updated_origins
|
||||
for instance in ResponseMiddleware.instances:
|
||||
instance.update_allow_origins(updated_origins)
|
||||
|
||||
except Exception as e:
|
||||
return False, e
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ from common.core.config import settings
|
||||
from apps.system.models.system_model import AssistantModel
|
||||
from common.utils.time import get_timestamp
|
||||
from common.utils.utils import get_domain_list
|
||||
from common.core.response_middleware import ResponseMiddleware
|
||||
|
||||
|
||||
def dynamic_upgrade_cors(request: Request, session: Session):
|
||||
@@ -24,14 +25,21 @@ def dynamic_upgrade_cors(request: Request, session: Session):
|
||||
unique_domains.append(domain)
|
||||
app: FastAPI = request.app
|
||||
cors_middleware = None
|
||||
response_middleware = None
|
||||
for middleware in app.user_middleware:
|
||||
if middleware.cls == CORSMiddleware:
|
||||
if not cors_middleware and middleware.cls == CORSMiddleware:
|
||||
cors_middleware = middleware
|
||||
if not response_middleware and middleware.cls == ResponseMiddleware:
|
||||
response_middleware = middleware
|
||||
if cors_middleware and response_middleware:
|
||||
break
|
||||
|
||||
updated_origins = list(set(settings.all_cors_origins + unique_domains))
|
||||
if cors_middleware:
|
||||
updated_origins = list(set(settings.all_cors_origins + unique_domains))
|
||||
cors_middleware.kwargs['allow_origins'] = updated_origins
|
||||
|
||||
if response_middleware:
|
||||
for instance in ResponseMiddleware.instances:
|
||||
instance.update_allow_origins(updated_origins)
|
||||
|
||||
async def save(request: Request, session: Session, creator: AssistantBase, oid: Optional[int] = 1):
|
||||
db_model = AssistantModel.model_validate(creator)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import json
|
||||
from typing import Optional
|
||||
|
||||
from redis import typing
|
||||
from starlette.exceptions import HTTPException
|
||||
from starlette.middleware.base import BaseHTTPMiddleware
|
||||
from starlette.requests import Request
|
||||
@@ -11,10 +11,19 @@ from common.utils.utils import SQLBotLogUtil
|
||||
|
||||
|
||||
class ResponseMiddleware(BaseHTTPMiddleware):
|
||||
def __init__(self, app):
|
||||
self.allow_origins = ["'self'"]
|
||||
super().__init__(app)
|
||||
instances = []
|
||||
|
||||
def __init__(self, app, allow_origins: Optional[list[str]] = None):
|
||||
super().__init__(app)
|
||||
self.allow_origins = allow_origins or ["'self'"]
|
||||
ResponseMiddleware.instances.append(self)
|
||||
|
||||
def update_allow_origins(self, new_allow_origins: Optional[list[str]] = None):
|
||||
if not new_allow_origins:
|
||||
return
|
||||
self.allow_origins = list(set(self.allow_origins + new_allow_origins))
|
||||
|
||||
|
||||
async def dispatch(self, request, call_next):
|
||||
response = await call_next(request)
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
<el-input
|
||||
v-model="loginForm.username"
|
||||
clearable
|
||||
:placeholder="$t('common.your_account_email_address')"
|
||||
:placeholder="$t('login.input_account')"
|
||||
size="large"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
Reference in New Issue
Block a user