Skip to content

Commit 76e176e

Browse files
perf: Optimize Embedded Assistant Cache Settings
1 parent 8b8cd3e commit 76e176e

File tree

4 files changed

+29
-12
lines changed

4 files changed

+29
-12
lines changed

backend/apps/system/crud/assistant.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,10 @@
55

66
import requests
77
from fastapi import FastAPI
8-
from sqlalchemy import Engine, create_engine
98
from sqlmodel import Session, select
109
from starlette.middleware.cors import CORSMiddleware
1110

12-
# from apps.datasource.embedding.table_embedding import get_table_embedding
13-
from apps.datasource.models.datasource import CoreDatasource, DatasourceConf
11+
from apps.datasource.models.datasource import CoreDatasource
1412
from apps.datasource.utils.utils import aes_encrypt
1513
from apps.system.models.system_model import AssistantModel
1614
from apps.system.schemas.auth import CacheName, CacheNamespace
@@ -19,7 +17,7 @@
1917
from common.core.db import engine
2018
from common.core.sqlbot_cache import cache
2119
from common.utils.aes_crypto import simple_aes_decrypt
22-
from common.utils.utils import SQLBotLogUtil, equals_ignore_case, get_domain_list, string_to_numeric_hash
20+
from common.utils.utils import SQLBotLogUtil, get_domain_list, string_to_numeric_hash
2321
from common.core.deps import Trans
2422
from common.core.response_middleware import ResponseMiddleware
2523

@@ -101,7 +99,9 @@ def init_dynamic_cors(app: FastAPI):
10199
if cors_middleware:
102100
cors_middleware.kwargs['allow_origins'] = updated_origins
103101
if response_middleware:
104-
response_middleware.kwargs['allow_origins'] = updated_origins
102+
for instance in ResponseMiddleware.instances:
103+
instance.update_allow_origins(updated_origins)
104+
105105
except Exception as e:
106106
return False, e
107107

backend/apps/system/crud/assistant_manage.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from apps.system.models.system_model import AssistantModel
1010
from common.utils.time import get_timestamp
1111
from common.utils.utils import get_domain_list
12+
from common.core.response_middleware import ResponseMiddleware
1213

1314

1415
def dynamic_upgrade_cors(request: Request, session: Session):
@@ -24,14 +25,21 @@ def dynamic_upgrade_cors(request: Request, session: Session):
2425
unique_domains.append(domain)
2526
app: FastAPI = request.app
2627
cors_middleware = None
28+
response_middleware = None
2729
for middleware in app.user_middleware:
28-
if middleware.cls == CORSMiddleware:
30+
if not cors_middleware and middleware.cls == CORSMiddleware:
2931
cors_middleware = middleware
32+
if not response_middleware and middleware.cls == ResponseMiddleware:
33+
response_middleware = middleware
34+
if cors_middleware and response_middleware:
3035
break
36+
37+
updated_origins = list(set(settings.all_cors_origins + unique_domains))
3138
if cors_middleware:
32-
updated_origins = list(set(settings.all_cors_origins + unique_domains))
3339
cors_middleware.kwargs['allow_origins'] = updated_origins
34-
40+
if response_middleware:
41+
for instance in ResponseMiddleware.instances:
42+
instance.update_allow_origins(updated_origins)
3543

3644
async def save(request: Request, session: Session, creator: AssistantBase, oid: Optional[int] = 1):
3745
db_model = AssistantModel.model_validate(creator)

backend/common/core/response_middleware.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import json
2+
from typing import Optional
23

3-
from redis import typing
44
from starlette.exceptions import HTTPException
55
from starlette.middleware.base import BaseHTTPMiddleware
66
from starlette.requests import Request
@@ -11,10 +11,19 @@
1111

1212

1313
class ResponseMiddleware(BaseHTTPMiddleware):
14-
def __init__(self, app):
15-
self.allow_origins = ["'self'"]
14+
instances = []
15+
16+
def __init__(self, app, allow_origins: Optional[list[str]] = None):
1617
super().__init__(app)
18+
self.allow_origins = allow_origins or ["'self'"]
19+
ResponseMiddleware.instances.append(self)
1720

21+
def update_allow_origins(self, new_allow_origins: Optional[list[str]] = None):
22+
if not new_allow_origins:
23+
return
24+
self.allow_origins = list(set(self.allow_origins + new_allow_origins))
25+
26+
1827
async def dispatch(self, request, call_next):
1928
response = await call_next(request)
2029

frontend/src/views/login/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
<el-input
4242
v-model="loginForm.username"
4343
clearable
44-
:placeholder="$t('common.your_account_email_address')"
44+
:placeholder="$t('login.input_account')"
4545
size="large"
4646
></el-input>
4747
</el-form-item>

0 commit comments

Comments
 (0)