public_api.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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.common.api_token import DfTokenDao
  10. from app.service.common.app_register import AppRegisterDao
  11. from app.task.sync_resources import sync_knowledge, sync_dialog, sync_agent, sync_llm, sync_resource
  12. public_api = APIRouter()
  13. @public_api.post("/sync/df_token", response_model=Response)
  14. async def sync_df_token(df: DfToken, db=Depends(get_db)):
  15. token_dict = {IMAGE_TO_TEXT: df.image, DOCUMENT_TO_CLEANING: df.clean, DOCUMENT_TO_REPORT: df.report}
  16. try:
  17. for api_id, token in token_dict.items():
  18. if not token:
  19. continue
  20. DfTokenDao(db).update_and_insert_token(api_id, token)
  21. except Exception as e:
  22. logger.error(e)
  23. return Response(code=500, msg="failed", data={})
  24. return Response(code=200, msg="successfully", data={})
  25. @public_api.post("/sync/app_register", response_model=Response)
  26. async def sync_app_register(apr: AppRegister, db=Depends(get_db)):
  27. app_dict = {RAGFLOW: apr.rg, BISHENG: apr.bs, DIFY: apr.df}
  28. try:
  29. for app_id, status in app_dict.items():
  30. AppRegisterDao(db).update_and_insert_app(app_id, status)
  31. except Exception as e:
  32. logger.error(e)
  33. return Response(code=500, msg="failed", data={})
  34. return Response(code=200, msg="successfully", data={})
  35. @public_api.get("/sync/resource", response_model=Response)
  36. async def user_group_list(resource_type:int, db=Depends(get_db)):
  37. if resource_type == 1:
  38. await sync_knowledge()
  39. elif resource_type == 2:
  40. await sync_dialog()
  41. elif resource_type == 3:
  42. await sync_agent()
  43. elif resource_type == 4:
  44. await sync_llm()
  45. else:
  46. await sync_resource()
  47. return Response(code=200, msg="", data={})