```
feat: 添加飞书用户模块和订阅功能支持 - 新增feishu_users模块用于处理飞书用户身份验证和权限管理 - 新增subscriptions模块用于处理订阅相关功能 - 新增personalization模块用于个性化服务 - 在alembic迁移配置中注册新的模型模块 - 在API路由器中添加feishu_users和subscriptions路由 - 实现事件调度服务的改进,包括错误处理和状态更新优化 - 添加飞书命令处理的权限检查机制 - 实现飞书应用票据事件处理 - 改进审计日志记录功能 ```
This commit is contained in:
@@ -2,7 +2,7 @@ from fastapi import APIRouter, Depends, Query
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.database import get_db
|
||||
from app.core.security import ApiPrincipal, require_api_key, require_operations_enabled
|
||||
from app.core.security import ApiPrincipal, require_api_key
|
||||
from app.modules.ai_memory.constants import AIMemoryResponseKey, AIMemoryStatus
|
||||
from app.modules.ai_memory.schemas import (
|
||||
AIMemoryRecallRequest,
|
||||
@@ -22,14 +22,15 @@ def list_memory(
|
||||
limit: int = Query(default=100, ge=1, le=500),
|
||||
db: Session = Depends(get_db),
|
||||
) -> dict:
|
||||
return {
|
||||
AIMemoryResponseKey.ITEMS: AIMemoryService(db).list_entries(
|
||||
scope=scope,
|
||||
subject=subject,
|
||||
status_filter=status,
|
||||
limit=limit,
|
||||
)
|
||||
}
|
||||
items = AIMemoryService(db).list_entries(
|
||||
scope=scope,
|
||||
subject=subject,
|
||||
status_filter=status,
|
||||
limit=limit,
|
||||
owner_id=None,
|
||||
)
|
||||
db.commit()
|
||||
return {AIMemoryResponseKey.ITEMS: items}
|
||||
|
||||
|
||||
@router.post("/memory/recall")
|
||||
@@ -44,6 +45,7 @@ def recall_memory(
|
||||
subject=payload.subject,
|
||||
limit=payload.limit,
|
||||
actor=principal.actor,
|
||||
owner_id=None,
|
||||
)
|
||||
return {AIMemoryResponseKey.ITEMS: items}
|
||||
|
||||
@@ -62,6 +64,7 @@ def list_rules(
|
||||
subject=subject,
|
||||
status_filter=status,
|
||||
limit=limit,
|
||||
owner_id=None,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -72,7 +75,6 @@ def create_rule(
|
||||
db: Session = Depends(get_db),
|
||||
principal: ApiPrincipal = Depends(require_api_key),
|
||||
) -> dict:
|
||||
require_operations_enabled()
|
||||
return {
|
||||
AIMemoryResponseKey.DATA: AIMemoryService(db).create_rule(
|
||||
content=payload.content,
|
||||
@@ -81,6 +83,7 @@ def create_rule(
|
||||
priority=payload.priority,
|
||||
tags=payload.tags,
|
||||
actor=principal.actor,
|
||||
owner_id=None,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -92,7 +95,6 @@ def update_rule(
|
||||
db: Session = Depends(get_db),
|
||||
principal: ApiPrincipal = Depends(require_api_key),
|
||||
) -> dict:
|
||||
require_operations_enabled()
|
||||
return {
|
||||
AIMemoryResponseKey.DATA: AIMemoryService(db).update_rule(
|
||||
code=code,
|
||||
@@ -101,5 +103,20 @@ def update_rule(
|
||||
tags=payload.tags,
|
||||
enabled=payload.enabled,
|
||||
actor=principal.actor,
|
||||
owner_id=None,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@router.delete("/rules/{code}")
|
||||
def delete_rule(
|
||||
code: str,
|
||||
db: Session = Depends(get_db),
|
||||
principal: ApiPrincipal = Depends(require_api_key),
|
||||
) -> dict:
|
||||
AIMemoryService(db).delete_rule(
|
||||
code=code,
|
||||
actor=principal.actor,
|
||||
owner_id=None,
|
||||
)
|
||||
return {AIMemoryResponseKey.DATA: {"code": code, "deleted": True}}
|
||||
|
||||
Reference in New Issue
Block a user