public_api.py 2.4 KB

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