From b51b8de4603508574437e467f3b0f7088b7eab06 Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Thu, 3 Apr 2025 20:45:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20token=20=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routers/admin_router.py | 22 ++++++++- src/routers/chat_router.py | 32 ------------- web/src/components/TokenManagerComponent.vue | 11 +++-- web/src/router/index.js | 2 +- web/src/views/AgentSingleView.vue | 50 ++++++++++++++++---- web/src/views/AgentView.vue | 36 ++++++++++++-- 6 files changed, 102 insertions(+), 51 deletions(-) diff --git a/src/routers/admin_router.py b/src/routers/admin_router.py index 3f06d46b..725ca49f 100644 --- a/src/routers/admin_router.py +++ b/src/routers/admin_router.py @@ -23,6 +23,10 @@ class TokenCreate(BaseModel): agent_id: str name: str +class TokenVerify(BaseModel): + agent_id: str + token: str + class TokenResponse(BaseModel): id: int agent_id: str @@ -80,4 +84,20 @@ async def delete_token(token_id: int, db: Session = Depends(get_db)): db.delete(token) db.commit() - return {"success": True, "message": "Token deleted"} \ No newline at end of file + return {"success": True, "message": "Token deleted"} + +@admin.post("/verify_token") +async def verify_agent_token( + token_data: TokenVerify, + db: Session = Depends(get_db) +): + """验证智能体访问令牌""" + token = db.query(AgentToken).filter( + AgentToken.agent_id == token_data.agent_id, + AgentToken.token == token_data.token + ).first() + + if not token: + raise HTTPException(status_code=401, detail="Invalid token") + + return {"success": True, "message": "Token verified"} \ No newline at end of file diff --git a/src/routers/chat_router.py b/src/routers/chat_router.py index 8f8bda39..0bd56ca5 100644 --- a/src/routers/chat_router.py +++ b/src/routers/chat_router.py @@ -6,47 +6,15 @@ import uuid from fastapi import APIRouter, Body, Depends, HTTPException from fastapi.responses import StreamingResponse from langchain_core.messages import AIMessageChunk -from pydantic import BaseModel -from sqlalchemy.orm import Session from src import executor, config, retriever from src.core import HistoryManager from src.agents import agent_manager from src.models import select_model from src.utils.logging_config import logger -from src.utils.db_manager import db_manager -from src.models.token_model import AgentToken chat = APIRouter(prefix="/chat") -# 依赖项:获取数据库会话 -def get_db(): - db = db_manager.get_session() - try: - yield db - finally: - db.close() - -class TokenVerify(BaseModel): - agent_id: str - token: str - -@chat.post("/verify_token") -async def verify_agent_token( - token_data: TokenVerify, - db: Session = Depends(get_db) -): - """验证智能体访问令牌""" - token = db.query(AgentToken).filter( - AgentToken.agent_id == token_data.agent_id, - AgentToken.token == token_data.token - ).first() - - if not token: - raise HTTPException(status_code=401, detail="Invalid token") - - return {"success": True, "message": "Token verified"} - @chat.get("/") async def chat_get(): return "Chat Get!" diff --git a/web/src/components/TokenManagerComponent.vue b/web/src/components/TokenManagerComponent.vue index cb84d2e6..bcf6adb7 100644 --- a/web/src/components/TokenManagerComponent.vue +++ b/web/src/components/TokenManagerComponent.vue @@ -1,9 +1,8 @@