xuyonghao
2024-12-17 2dc4a7392eef26fdadd00fde1baf8b471ab25ca5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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={})