public_api.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import json
  2. from fastapi import APIRouter, Depends
  3. from fastapi.responses import JSONResponse
  4. from Log import logger
  5. from app.api import Response
  6. from app.api.auth import login
  7. from app.config.const import IMAGE_TO_TEXT, DOCUMENT_TO_CLEANING, DOCUMENT_TO_REPORT, DIFY, BISHENG, RAGFLOW
  8. from app.models.base_model import get_db
  9. from app.models.public_api_model import DfToken, AppRegister
  10. from app.service.v2.api_token import DfTokenDao
  11. from app.service.v2.app_register import AppRegisterDao
  12. from app.service.v2.initialize_data import dialog_menu_sync, create_menu_sync, user_update_app
  13. from app.task.sync_resources import sync_knowledge, sync_dialog, sync_agent, sync_llm, sync_resource
  14. public_api = APIRouter()
  15. @public_api.post("/sync/df_token", response_model=Response)
  16. async def sync_df_token(df: DfToken, db=Depends(get_db)):
  17. token_dict = {IMAGE_TO_TEXT: df.image, DOCUMENT_TO_CLEANING: df.clean, DOCUMENT_TO_REPORT: df.report}
  18. try:
  19. for api_id, token in token_dict.items():
  20. if not token:
  21. continue
  22. DfTokenDao(db).update_and_insert_token(api_id, token)
  23. except Exception as e:
  24. logger.error(e)
  25. return Response(code=500, msg="failed", data={})
  26. return Response(code=200, msg="successfully", data={})
  27. @public_api.post("/sync/app_register", response_model=Response)
  28. async def sync_app_register(apr: AppRegister, db=Depends(get_db)):
  29. app_dict = {RAGFLOW: apr.rg, BISHENG: apr.bs, DIFY: apr.df}
  30. try:
  31. for app_id, status in app_dict.items():
  32. AppRegisterDao(db).update_and_insert_app(app_id, status)
  33. except Exception as e:
  34. logger.error(e)
  35. return Response(code=500, msg="failed", data={})
  36. return Response(code=200, msg="successfully", data={})
  37. @public_api.get("/sync/resource", response_model=Response)
  38. async def sync_resource_data(resource_type: int, db=Depends(get_db)):
  39. if resource_type == 1:
  40. await sync_knowledge()
  41. elif resource_type == 2:
  42. await sync_dialog()
  43. elif resource_type == 3:
  44. await sync_agent()
  45. elif resource_type == 4:
  46. await sync_llm()
  47. else:
  48. await sync_resource()
  49. return Response(code=200, msg="", data={})
  50. @public_api.get("/sync/dialog_menu", response_model=Response)
  51. async def sync_dialog_menu(db=Depends(get_db)):
  52. try:
  53. await dialog_menu_sync(db)
  54. except Exception as e:
  55. logger.error(e)
  56. return Response(code=500, msg="failed", data={})
  57. return Response(code=200, msg="success", data={})
  58. @public_api.get("/sync/create/dialog_menu", response_model=Response)
  59. async def get_dialog_menu(db=Depends(get_db)):
  60. try:
  61. result = await create_menu_sync(db)
  62. return JSONResponse(content={"code": 200, "msg": "", "data": result})
  63. except Exception as e:
  64. return JSONResponse(content={"code": 500, "msg": str(e), "data": {"error": "Failed to create menu"}})
  65. @public_api.post("/sync/update_app", response_model=Response)
  66. async def sync_update_app(userid, db=Depends(get_db)):
  67. try:
  68. await user_update_app(userid, db)
  69. except Exception as e:
  70. logger.error(e)
  71. return Response(code=500, msg=str(e), data={})
  72. return Response(code=200, msg="success", data={})