public_api.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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.config.const import IMAGE_TO_TEXT, DOCUMENT_TO_CLEANING, DOCUMENT_TO_REPORT, DIFY, BISHENG, RAGFLOW, \
  7. DOCUMENT_IA_QUESTIONS, DOCUMENT_TO_REPORT_TITLE, DOCUMENT_TO_TITLE, DOCUMENT_TO_PAPER, \
  8. DOCUMENT_IA_QUESTIONS_EQUIPMENT
  9. from app.models.base_model import get_db
  10. from app.models.public_api_model import DfToken
  11. from app.service.v2.api_token import DfTokenDao
  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_IA_QUESTIONS_EQUIPMENT: df.equipment,
  18. DOCUMENT_IA_QUESTIONS: df.doc, DOCUMENT_TO_REPORT_TITLE: df.report,DOCUMENT_TO_TITLE: df.title,DOCUMENT_TO_PAPER: df.paper}
  19. try:
  20. for api_id, token in token_dict.items():
  21. if not token:
  22. continue
  23. DfTokenDao(db).update_and_insert_token(api_id, token)
  24. except Exception as e:
  25. logger.error(e)
  26. return Response(code=500, msg="failed", data={})
  27. return Response(code=200, msg="successfully", data={})
  28. # @public_api.post("/sync/app_register", response_model=Response)
  29. # async def sync_app_register(apr: AppRegister, db=Depends(get_db)):
  30. # app_dict = {RAGFLOW: apr.rg, BISHENG: apr.bs, DIFY: apr.df}
  31. #
  32. # try:
  33. # for app_id, status in app_dict.items():
  34. # AppRegisterDao(db).update_and_insert_app(app_id, status)
  35. # except Exception as e:
  36. # logger.error(e)
  37. # return Response(code=500, msg="failed", data={})
  38. #
  39. # return Response(code=200, msg="successfully", data={})
  40. @public_api.get("/sync/resource", response_model=Response)
  41. async def sync_resource_data(resource_type: int, db=Depends(get_db)):
  42. if resource_type == 1:
  43. await sync_knowledge()
  44. elif resource_type == 2:
  45. await sync_dialog()
  46. elif resource_type == 3:
  47. await sync_agent()
  48. elif resource_type == 4:
  49. await sync_llm()
  50. else:
  51. await sync_resource()
  52. return Response(code=200, msg="", data={})
  53. @public_api.get("/sync/dialog_menu", response_model=Response)
  54. async def sync_dialog_menu(db=Depends(get_db)):
  55. try:
  56. await dialog_menu_sync(db)
  57. except Exception as e:
  58. logger.error(e)
  59. return Response(code=500, msg="failed", data={})
  60. return Response(code=200, msg="success", data={})
  61. @public_api.get("/sync/create/dialog_menu", response_model=Response)
  62. async def get_dialog_menu(db=Depends(get_db)):
  63. try:
  64. result = await create_menu_sync(db)
  65. return JSONResponse(content={"code": 200, "msg": "", "data": result})
  66. except Exception as e:
  67. return JSONResponse(content={"code": 500, "msg": str(e), "data": {"error": "Failed to create menu"}})
  68. @public_api.post("/sync/update_app", response_model=Response)
  69. async def sync_update_app(userid, db=Depends(get_db)):
  70. try:
  71. await user_update_app(userid, db)
  72. except Exception as e:
  73. logger.error(e)
  74. return Response(code=500, msg=str(e), data={})
  75. return Response(code=200, msg="success", data={})