knowledge_router.py 908 B

1234567891011121314151617181920212223242526272829
  1. # -*- coding: utf-8 -*-
  2. """知识图谱管理:检索、可视化、节点搜索"""
  3. from fastapi import APIRouter, Depends
  4. from sqlalchemy.orm import Session
  5. from backend.database import get_db
  6. from backend.services.auth import get_current_user_id
  7. from backend.services.knowledge_graph import search_knowledge_graph, get_graph_for_visualization
  8. router = APIRouter(prefix="/knowledge", tags=["知识图谱"])
  9. @router.get("/search")
  10. def kg_search(
  11. q: str,
  12. limit: int = 15,
  13. user_id: int = Depends(get_current_user_id),
  14. ):
  15. """节点搜索、子节点展开:根据关键词检索知识图谱"""
  16. return {"results": search_knowledge_graph(q, limit=limit)}
  17. @router.get("/graph")
  18. def kg_graph(
  19. limit: int = 50,
  20. user_id: int = Depends(get_current_user_id),
  21. ):
  22. """Force-directed 布局可视化数据(供 React 渲染)"""
  23. return get_graph_for_visualization(limit=limit)