Skip to content

Commit 93798b7

Browse files
committed
feat: mcp tools
1 parent a49330e commit 93798b7

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

backend/apps/mcp/mcp.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,15 @@
99
# from fastapi.security import OAuth2PasswordBearer
1010
from jwt.exceptions import InvalidTokenError
1111
from pydantic import ValidationError
12+
from sqlmodel import select
1213

1314
from apps.chat.api.chat import create_chat
1415
from apps.chat.models.chat_model import ChatMcp, CreateChat, ChatStart
1516
from apps.chat.task.llm import LLMService, run_task
16-
from apps.system.crud.user import authenticate, get_user_info
17+
from apps.system.crud.user import authenticate
18+
from apps.system.crud.user import get_db_user
19+
from apps.system.models.system_model import UserWsModel
20+
from apps.system.models.user import UserModel
1721
from apps.system.schemas.system_schema import BaseUserDTO
1822
from apps.system.schemas.system_schema import UserInfoDTO
1923
from common.core import security
@@ -83,7 +87,17 @@ async def mcp_question(session: SessionDep, chat: ChatMcp):
8387
status_code=status.HTTP_403_FORBIDDEN,
8488
detail="Could not validate credentials",
8589
)
86-
session_user = await get_user_info(session=session, user_id=token_data.id)
90+
# session_user = await get_user_info(session=session, user_id=token_data.id)
91+
92+
db_user: UserModel = get_db_user(session=session, user_id=token_data.id)
93+
session_user = UserInfoDTO.model_validate(db_user.model_dump())
94+
session_user.isAdmin = session_user.id == 1 and session_user.account == 'admin'
95+
if session_user.isAdmin:
96+
session_user = session_user
97+
ws_model: UserWsModel = session.exec(
98+
select(UserWsModel).where(UserWsModel.uid == session_user.id, UserWsModel.oid == session_user.oid)).first()
99+
session_user.weight = ws_model.weight if ws_model else -1
100+
87101
session_user = UserInfoDTO.model_validate(session_user)
88102
if not session_user:
89103
raise HTTPException(status_code=404, detail="User not found")

0 commit comments

Comments
 (0)