import json
|
|
from fastapi import APIRouter, Depends
|
|
from Log import logger
|
from app.api import Response
|
from app.api.auth import login
|
from app.config.const import IMAGE_TO_TEXT, DOCUMENT_TO_CLEANING, DOCUMENT_TO_REPORT, DIFY, BISHENG, RAGFLOW
|
from app.models.base_model import get_db
|
from app.models.public_api_model import DfToken, AppRegister
|
from app.service.v2.api_token import DfTokenDao
|
from app.service.v2.app_register import AppRegisterDao
|
from app.service.v2.initialize_data import dialog_menu_sync, user_update_app
|
from app.task.sync_resources import sync_knowledge, sync_dialog, sync_agent, sync_llm, sync_resource
|
|
public_api = APIRouter()
|
|
|
@public_api.post("/sync/df_token", response_model=Response)
|
async def sync_df_token(df: DfToken, db=Depends(get_db)):
|
token_dict = {IMAGE_TO_TEXT: df.image, DOCUMENT_TO_CLEANING: df.clean, DOCUMENT_TO_REPORT: df.report}
|
|
try:
|
for api_id, token in token_dict.items():
|
if not token:
|
continue
|
DfTokenDao(db).update_and_insert_token(api_id, token)
|
except Exception as e:
|
logger.error(e)
|
return Response(code=500, msg="failed", data={})
|
|
return Response(code=200, msg="successfully", data={})
|
|
|
@public_api.post("/sync/app_register", response_model=Response)
|
async def sync_app_register(apr: AppRegister, db=Depends(get_db)):
|
app_dict = {RAGFLOW: apr.rg, BISHENG: apr.bs, DIFY: apr.df}
|
|
try:
|
for app_id, status in app_dict.items():
|
|
AppRegisterDao(db).update_and_insert_app(app_id, status)
|
except Exception as e:
|
logger.error(e)
|
return Response(code=500, msg="failed", data={})
|
|
return Response(code=200, msg="successfully", data={})
|
|
|
@public_api.get("/sync/resource", response_model=Response)
|
async def sync_resource_data(resource_type:int, db=Depends(get_db)):
|
if resource_type == 1:
|
await sync_knowledge()
|
elif resource_type == 2:
|
await sync_dialog()
|
elif resource_type == 3:
|
await sync_agent()
|
elif resource_type == 4:
|
await sync_llm()
|
else:
|
await sync_resource()
|
|
return Response(code=200, msg="", data={})
|
|
|
@public_api.get("/sync/dialog_menu", response_model=Response)
|
async def sync_dialog_menu(db=Depends(get_db)):
|
try:
|
await dialog_menu_sync(db)
|
except Exception as e:
|
logger.error(e)
|
return Response(code=500, msg="failed", data={})
|
|
return Response(code=200, msg="success", data={})
|
|
|
@public_api.post("/sync/update_app", response_model=Response)
|
async def sync_update_app(userid, db=Depends(get_db)):
|
try:
|
await user_update_app(userid, db)
|
except Exception as e:
|
logger.error(e)
|
return Response(code=500, msg=str(e), data={})
|
|
return Response(code=200, msg="success", data={})
|