diff --git a/api/app/controllers/api_key_controller.py b/api/app/controllers/api_key_controller.py index 7617915b..dce8450d 100644 --- a/api/app/controllers/api_key_controller.py +++ b/api/app/controllers/api_key_controller.py @@ -8,6 +8,7 @@ from sqlalchemy.orm import Session from app.core.error_codes import BizCode from app.db import get_db from app.dependencies import get_current_user, cur_workspace_access_guard +from app.models import ApiKeyType from app.models.user_model import User from app.core.response_utils import success from app.schemas import api_key_schema @@ -39,6 +40,8 @@ def create_api_key( """ try: workspace_id = current_user.current_workspace_id + if data.type == ApiKeyType.SERVICE.value and not data.resource_id: + data.resource_id = workspace_id # 创建 API Key api_key_obj = ApiKeyService.create_api_key( diff --git a/api/app/controllers/service/memory_api_controller.py b/api/app/controllers/service/memory_api_controller.py index 22dcb87b..81aaa0c4 100644 --- a/api/app/controllers/service/memory_api_controller.py +++ b/api/app/controllers/service/memory_api_controller.py @@ -1,10 +1,14 @@ """Memory 服务接口 - 基于 API Key 认证""" -from fastapi import APIRouter, Depends +import uuid + +from fastapi import APIRouter, Depends, Request, Body from sqlalchemy.orm import Session from app.db import get_db from app.core.response_utils import success from app.core.logging_config import get_business_logger +from app.core.api_key_auth import require_api_key +from app.schemas.api_key_schema import ApiKeyAuth router = APIRouter(prefix="/memory", tags=["V1 - Memory API"]) logger = get_business_logger() @@ -14,3 +18,31 @@ logger = get_business_logger() async def get_memory_info(): """获取记忆服务信息(占位)""" return success(data={}, msg="Memory API - Coming Soon") + + +# /v1/memory/{resource_id}/chat +@router.post("/{resource_id}/chat") +@require_api_key(scopes=["memory"]) +async def chat_with_agent_demo( + resource_id: uuid.UUID, + request: Request, + api_key_auth: ApiKeyAuth = None, + db: Session = Depends(get_db), + message: str = Body(..., description="聊天消息内容"), +): + """ + Agent 聊天接口demo + + scopes: 所需的权限范围列表["app", "rag", "memory"] + + Args: + resource_id: 如果是应用的apikey传的是应用id; 如果是服务的apikey传的是工作空间id + message: 请求参数 + request: 声明请求 + api_key_auth: 包含验证后的API Key 信息 + db: db_session + """ + logger.info(f"API Key Auth: {api_key_auth}") + logger.info(f"Resource ID: {resource_id}") + logger.info(f"Message: {message}") + return success(data={"received": True}, msg="消息已接收") \ No newline at end of file