From 6b4093952e555e1eb2713bd85133a5f697cda1e0 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期二, 31 十二月 2024 14:21:12 +0800 Subject: [PATCH] 文档报告支持生成小标题功能 --- app/config/config.py | 2 app/api/chat.py | 279 ++++++++++++++++++++++++++++++++++++--- app/config/const.py | 4 app/task/fetch_agent.py | 10 app/models/public_api_model.py | 3 app/config/config.yaml | 5 app/service/difyService.py | 20 +- app/api/public_api.py | 5 app/api/files.py | 7 app/api/auth.py | 24 +- app/models/token_model.py | 4 11 files changed, 301 insertions(+), 62 deletions(-) diff --git a/app/api/auth.py b/app/api/auth.py index 2fc3ea7..423ed72 100644 --- a/app/api/auth.py +++ b/app/api/auth.py @@ -30,14 +30,14 @@ if db_user: return Response(code=200, msg="Username already registered") - bisheng_service = BishengService(settings.sgb_base_url) + # bisheng_service = BishengService(settings.sgb_base_url) ragflow_service = RagflowService(settings.fwr_base_url) # 娉ㄥ唽鍒版瘯鏄� - try: - bisheng_info = await bisheng_service.register(user.username, user.password) - except Exception as e: - return Response(code=500, msg=f"Failed to register with Bisheng: {str(e)}") + # try: + # bisheng_info = await bisheng_service.register(user.username, user.password) + # except Exception as e: + # return Response(code=500, msg=f"Failed to register with Bisheng: {str(e)}") # 娉ㄥ唽鍒皉agflow try: @@ -47,7 +47,7 @@ # 瀛樺偍鐢ㄦ埛淇℃伅 hashed_password = pwd_context.hash(user.password) - db_user = UserModel(username=user.username, hashed_password=hashed_password, email=ragflow_info.get("email", f"{user.username}@example.com"),ragflow_id=ragflow_info.get("id"),bisheng_id=bisheng_info.get("user_id")) + db_user = UserModel(username=user.username, hashed_password=hashed_password, email=ragflow_info.get("email", f"{user.username}@example.com"),ragflow_id=ragflow_info.get("id"),bisheng_id="") db_user.password = db_user.encrypted_password(user.password) db.add(db_user) db.commit() @@ -61,14 +61,14 @@ if not user: return Response(code=400, msg="Incorrect username or password") - bisheng_service = BishengService(settings.sgb_base_url) + # bisheng_service = BishengService(settings.sgb_base_url) ragflow_service = RagflowService(settings.fwr_base_url) # 鐧诲綍鍒版瘯鏄� - try: - bisheng_token = await bisheng_service.login(login_data.username, login_data.password) - except Exception as e: - return Response(code=500, msg=f"Failed to login with Bisheng: {str(e)}") + # try: + # bisheng_token = await bisheng_service.login(login_data.username, login_data.password) + # except Exception as e: + # return Response(code=500, msg=f"Failed to login with Bisheng: {str(e)}") # 鐧诲綍鍒皉agflow try: @@ -79,7 +79,7 @@ # 鍒涘缓鏈湴token access_token = create_access_token(data={"sub": user.username, "user_id": user.id}) - upsert_token(db, user.id, access_token, bisheng_token, ragflow_token) + upsert_token(db, user.id, access_token, "", ragflow_token) return Response(code=200, msg="Login successful", data={ "access_token": access_token, diff --git a/app/api/chat.py b/app/api/chat.py index 4344b62..3c8e9c7 100644 --- a/app/api/chat.py +++ b/app/api/chat.py @@ -6,11 +6,13 @@ import asyncio import websockets from sqlalchemy.orm import Session +from starlette.responses import PlainTextResponse from Log import logger from app.api import get_current_user_websocket from app.config.config import settings -from app.config.const import IMAGE_TO_TEXT, DOCUMENT_TO_REPORT, DOCUMENT_TO_CLEANING +from app.config.const import IMAGE_TO_TEXT, DOCUMENT_TO_REPORT, DOCUMENT_TO_CLEANING, DOCUMENT_TO_REPORT_TITLE, \ + DOCUMENT_TO_TITLE, DOCUMENT_IA_QUESTIONS from app.models.agent_model import AgentModel, AgentType from app.models.base_model import get_db from app.models.user_model import UserModel @@ -37,11 +39,14 @@ print(f"Client {agent_id} connected") agent = db.query(AgentModel).filter(AgentModel.id == agent_id).first() + print(agent_id) if not agent: ret = {"message": "Agent not found", "type": "close"} await websocket.send_json(ret) return + agent_type = agent.agent_type + print(agent_type) if chat_id == "" or chat_id == "0": ret = {"message": "Chat ID not found", "type": "close"} await websocket.send_json(ret) @@ -339,10 +344,17 @@ except Exception as e: logger.error(e) # complete_response = "" - + files = [] + if upload_file_id: + files.append({ + "type": "image", + "transfer_method": "local_file", + "url": "", + "upload_file_id": upload_file_id + }) answer_str = "" - async for rag_response in dify_service.chat(token, current_user.id, question, upload_file_id, - conversation_id): + async for rag_response in dify_service.chat(token, current_user.id, question, files, + conversation_id, {}): # print(rag_response) try: if rag_response[:5] == "data:": @@ -419,14 +431,20 @@ print(f"Received from client {chat_id}: {receive_message}") upload_files = receive_message.get('upload_files', []) title = receive_message.get('title', "") + sub_titles = receive_message.get('sub_titles', "") workflow_type = receive_message.get('workflow', 1) - if not upload_files: - await websocket.send_json({"message": "Invalid request", "type": "error"}) - continue + title_number = receive_message.get('title_number', 8) + title_style = receive_message.get('title_style', "") + title_query = receive_message.get('title_query', "") + if upload_files: + title_query = "start" + # if not upload_files: + # await websocket.send_json({"message": "Invalid request", "type": "error"}) + # continue try: session = SessionService(db).create_session( chat_id, - title, + title if title else title_query, agent_id, AgentType.DIFY, current_user.id @@ -446,15 +464,227 @@ }) if workflow_type == 1: inputs["input_files"] = files - if workflow_type == 2: + elif workflow_type == 2: inputs["file_list"] = files inputs["Completion_of_main_indicators"] = title - token = DfTokenDao(db).get_token_by_id(DOCUMENT_TO_REPORT) + inputs["sub_titles"] = sub_titles + token = DfTokenDao(db).get_token_by_id(DOCUMENT_TO_REPORT_TITLE) if not token: await websocket.send_json( - {"message": "Invalid token document_to_cleaning", "type": "error"}) + {"message": "Invalid token document_to_report", "type": "error"}) + elif workflow_type == 3: + inputs["file_list"] = files + inputs["number_of_title"] = title_number + inputs["title_style"] = title_style + token = DfTokenDao(db).get_token_by_id(DOCUMENT_TO_TITLE) + if not token: + await websocket.send_json( + {"message": "Invalid token document_to_title", "type": "error"}) + complete_response = "" - async for rag_response in dify_service.workflow(token, current_user.id, inputs): + if workflow_type == 1 or workflow_type == 2: + async for rag_response in dify_service.workflow(token, current_user.id, inputs): + # print(rag_response) + try: + if rag_response[:5] == "data:": + # 濡傛灉鏄紝鍒欐埅鍙栨帀鍓�5涓瓧绗︼紝骞跺幓闄ら灏剧┖鐧界 + complete_response = rag_response[5:].strip() + elif "event: ping" in rag_response: + continue + else: + # 鍚﹀垯锛屼繚鎸佸師鏍� + complete_response += rag_response + try: + data = json.loads(complete_response) + complete_response = "" + if data.get("event") == "node_started" or data.get("event") == "node_finished": # "event": "message_end" + if "data" not in data or not data["data"]: # 淇℃伅杩囨护 + logger.error("闈炴硶鏁版嵁--------------------") + logger.error(data) + continue + else: # 姝e父杈撳嚭 + answer = data.get("data", "") + if isinstance(answer, str): + logger.error("----------------鏈煡鏁版嵁--------------------") + logger.error(data) + continue + elif isinstance(answer, dict): + + message = answer.get("title", "") + + result = {"message": message, "type": "system"} + elif data.get("event") == "workflow_finished": + answer = data.get("data", "") + if isinstance(answer, str): + logger.error("----------------鏈煡鏁版嵁--------------------") + logger.error(data) + result = {"message": "", "type": "close", "download_url": ""} + elif isinstance(answer, dict): + download_url = "" + outputs = answer.get("outputs", {}) + if outputs: + message = outputs.get("output", "") + download_url = outputs.get("download_url", "") + else: + message = answer.get("error", "") + + result = {"message": message, "type": "message", "download_url": download_url} + try: + SessionService(db).update_session(chat_id, + message={"role": "assistant", + "content": { + "answer": message, + "download_url": download_url}}, + conversation_id=data.get( + "conversation_id")) + except Exception as e: + logger.error("淇濆瓨dify鐨勪細璇濆紓甯革紒") + logger.error(e) + try: + await websocket.send_json(result) + except Exception as e: + logger.error(e) + logger.error("杩斿洖瀹㈡埛绔秷鎭紓甯�!") + result = {"message": "", "type": "close", "download_url": ""} + + + else: + continue + try: + await websocket.send_json(result) + except Exception as e: + logger.error(e) + logger.error("杩斿洖瀹㈡埛绔秷鎭紓甯�!") + complete_response = "" + except json.JSONDecodeError as e: + print(f"Error decoding JSON: {e}") + # print(f"Response text: {text}") + except Exception as e2: + result = {"message": f"鍐呴儴閿欒锛� {e2}", "type": "close"} + await websocket.send_json(result) + print(f"Error process message of ragflow: {e2}") + elif workflow_type == 3: + image_list = [] + # print(inputs) + complete_response = "" + async for rag_response in dify_service.chat(token, current_user.id, title_query, [], + conversation_id, inputs): + print(rag_response) + try: + if rag_response[:5] == "data:": + # 濡傛灉鏄紝鍒欐埅鍙栨帀鍓�5涓瓧绗︼紝骞跺幓闄ら灏剧┖鐧界 + complete_response = rag_response[5:].strip() + elif "event: ping" in rag_response: + continue + else: + # 鍚﹀垯锛屼繚鎸佸師鏍� + complete_response += rag_response + try: + data = json.loads(complete_response) + complete_response = "" + if data.get("event") == "node_started" or data.get( + "event") == "node_finished": # "event": "message_end" + if "data" not in data or not data["data"]: # 淇℃伅杩囨护 + logger.error("闈炴硶鏁版嵁--------------------") + logger.error(data) + continue + else: # 姝e父杈撳嚭 + answer = data.get("data", "") + if isinstance(answer, str): + logger.error("----------------鏈煡鏁版嵁--------------------") + logger.error(data) + continue + elif isinstance(answer, dict): + + message = answer.get("title", "") + + result = {"message": message, "type": "system"} + elif data.get("event") == "message": + message = data.get("answer", "") + # try: + # msg_dict = json.loads(answer) + # message = msg_dict.get("output", "") + # except Exception as e: + # print(e) + # continue + result = {"message": message, "type": "message", + "download_url": ""} + try: + SessionService(db).update_session(chat_id, + message={"role": "assistant", + "content": { + "answer": message, + "download_url": ""}}, + conversation_id=data.get( + "conversation_id")) + except Exception as e: + logger.error("淇濆瓨dify鐨勪細璇濆紓甯革紒") + logger.error(e) + # try: + # await websocket.send_json(result) + # except Exception as e: + # logger.error(e) + # logger.error("杩斿洖瀹㈡埛绔秷鎭紓甯�!") + + elif data.get("event") == "message_end": + result = {"message": "", "type": "close", "download_url": ""} + else: + continue + try: + await websocket.send_json(result) + except Exception as e: + logger.error(e) + logger.error("dify杩斿洖瀹㈡埛绔秷鎭紓甯�!") + complete_response = "" + except json.JSONDecodeError as e: + print(f"Error decoding JSON: {e}") + # print(f"Response text: {text}") + except Exception as e2: + result = {"message": f"鍐呴儴閿欒锛� {e2}", "type": "close"} + await websocket.send_json(result) + print(f"Error process message of ragflow: {e2}") + elif agent.type == "documentIa": + print(122112) + token = DfTokenDao(db).get_token_by_id(DOCUMENT_IA_QUESTIONS) + # print(token) + if not token: + await websocket.send_json({"message": "Invalid token", "type": "error"}) + + while True: + conversation_id = "" + # print(4343) + receive_message = await websocket.receive_json() + print(f"Received from client {chat_id}: {receive_message}") + upload_file_id = receive_message.get('upload_file_id', []) + question = receive_message.get('message', "") + if not question and not image_url: + await websocket.send_json({"message": "Invalid request", "type": "error"}) + continue + try: + session = SessionService(db).create_session( + chat_id, + question, + agent_id, + AgentType.DIFY, + current_user.id + ) + conversation_id = session.conversation_id + except Exception as e: + logger.error(e) + # complete_response = "" + files = [] + for fileId in upload_file_id: + files.append({ + "type": "document", + "transfer_method": "local_file", + "url": "", + "upload_file_id": fileId + }) + + answer_str = "" + complete_response = "" + async for rag_response in dify_service.chat(token, current_user.id, question, files, + conversation_id, {}): # print(rag_response) try: if rag_response[:5] == "data:": @@ -467,8 +697,8 @@ complete_response += rag_response try: data = json.loads(complete_response) - complete_response = "" - if data.get("event") == "node_started" or data.get("event") == "node_finished": # "event": "message_end" + if data.get("event") == "node_started" or data.get( + "event") == "node_finished": # "event": "message_end" if "data" not in data or not data["data"]: # 淇℃伅杩囨护 logger.error("闈炴硶鏁版嵁--------------------") logger.error(data) @@ -484,6 +714,11 @@ message = answer.get("title", "") result = {"message": message, "type": "system"} + continue + elif data.get("event") == "message": # "event": "message_end" + # 姝e父杈撳嚭 + answer = data.get("answer", "") + result = {"message": answer, "type": "stream"} elif data.get("event") == "workflow_finished": answer = data.get("data", "") if isinstance(answer, str): @@ -494,12 +729,13 @@ download_url = "" outputs = answer.get("outputs", {}) if outputs: - message = outputs.get("output", "") - download_url = outputs.get("download_url", "") + message = outputs.get("answer", "") + # download_url = outputs.get("download_url", "") else: message = answer.get("error", "") - result = {"message": message, "type": "message", "download_url": download_url} + # result = {"message": message, "type": "message", + # "download_url": download_url} try: SessionService(db).update_session(chat_id, message={"role": "assistant", @@ -511,15 +747,16 @@ except Exception as e: logger.error("淇濆瓨dify鐨勪細璇濆紓甯革紒") logger.error(e) - await websocket.send_json(result) - result = {"message": "", "type": "close", "download_url": ""} - + # await websocket.send_json(result) + continue + elif data.get("event") == "message_end": + result = {"message": "", "type": "close"} else: continue try: await websocket.send_json(result) - except Exception as e: + except Exception as e: logger.error(e) logger.error("杩斿洖瀹㈡埛绔秷鎭紓甯�!") complete_response = "" diff --git a/app/api/files.py b/app/api/files.py index dca7d3c..a5c2fd1 100644 --- a/app/api/files.py +++ b/app/api/files.py @@ -10,6 +10,7 @@ from app.api import Response, get_current_user, ResponseList from app.config.config import settings +from app.config.const import DOCUMENT_TO_REPORT_TITLE, IMAGE_TO_TEXT from app.models.agent_model import AgentType, AgentModel from app.models.base_model import get_db from app.models.user_model import UserModel @@ -99,7 +100,7 @@ elif agent.agent_type == AgentType.DIFY: dify_service = DifyService(base_url=settings.dify_base_url) if agent.type == "imageTalk": - token = DfTokenDao(db).get_token_by_id("image_and_text_conversion") + token = DfTokenDao(db).get_token_by_id(IMAGE_TO_TEXT) if not token: raise HTTPException(status_code=500, detail="鑾峰彇token澶辫触锛宨mage_and_text_conversion锛�") file = file[0] @@ -112,8 +113,8 @@ data = await dify_service.upload(token, file.filename, file_content, current_user.id) except Exception as e: raise HTTPException(status_code=500, detail=str(e)) - elif agent.type == "reportWorkflow": - token = DfTokenDao(db).get_token_by_id("document_to_report") + elif agent.type == "reportWorkflow" or agent.type == "documentIa": + token = DfTokenDao(db).get_token_by_id(DOCUMENT_TO_REPORT_TITLE) if not token: raise HTTPException(status_code=500, detail="鑾峰彇token澶辫触锛宒ocument_to_report锛�") result = [] diff --git a/app/api/public_api.py b/app/api/public_api.py index 06a37dc..9186342 100644 --- a/app/api/public_api.py +++ b/app/api/public_api.py @@ -5,7 +5,8 @@ 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.config.const import IMAGE_TO_TEXT, DOCUMENT_TO_CLEANING, DOCUMENT_TO_REPORT, DIFY, BISHENG, RAGFLOW, \ + DOCUMENT_IA_QUESTIONS, DOCUMENT_TO_TITLE, DOCUMENT_TO_REPORT_TITLE from app.models.base_model import get_db from app.models.public_api_model import DfToken, AppRegister from app.service.common.api_token import DfTokenDao @@ -17,7 +18,7 @@ @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} + token_dict = {IMAGE_TO_TEXT: df.image, DOCUMENT_TO_CLEANING: df.clean, DOCUMENT_TO_REPORT: df.report, DOCUMENT_TO_REPORT_TITLE: df.reoprt_title, DOCUMENT_TO_TITLE: df.title, DOCUMENT_IA_QUESTIONS: df.question} try: for api_id, token in token_dict.items(): diff --git a/app/config/config.py b/app/config/config.py index 42037c9..c5a10a0 100644 --- a/app/config/config.py +++ b/app/config/config.py @@ -31,7 +31,7 @@ kwargs['fwr_base_url'] = kwargs.get('fwr_base_url', '').replace('127.0.0.1', host_ip) kwargs['sgb_db_url'] = kwargs.get('sgb_db_url', '').replace('127.0.0.1', host_ip) kwargs['fwr_db_url'] = kwargs.get('fwr_db_url', '').replace('127.0.0.1', host_ip) - kwargs['dify_base_url'] = kwargs.get('dify_base_url', '').replace('127.0.0.1', host_ip) + # kwargs['dify_base_url'] = kwargs.get('dify_base_url', '').replace('127.0.0.1', host_ip) kwargs['basic_base_url'] = kwargs.get('basic_base_url', '').replace('127.0.0.1', host_ip) # Check if all required fields are provided and set them for field in self.__annotations__.keys(): diff --git a/app/config/config.yaml b/app/config/config.yaml index eb9c91d..ddee042 100644 --- a/app/config/config.yaml +++ b/app/config/config.yaml @@ -1,8 +1,9 @@ -secret_key: your-secret-key +secret_key: Dt05gJnaqpT3Lx1iyWPrEolCKeXMbIcOSm28 sgb_base_url: http://192.168.20.119:13001 sgb_websocket_url: ws://192.168.20.119:13001 fwr_base_url: http://192.168.20.119:11080 -database_url: mysql+pymysql://root:infini_rag_flow@192.168.20.119:5455/199c90c51171 +database_url: mysql+pymysql://root:rag_gateway@192.168.20.119:3308/rag_gateway +#database_url: mysql+pymysql://root:infini_rag_flow@192.168.20.119:5455/199c90c51171 sgb_db_url: mysql+pymysql://root:1234@192.168.20.119:13306/bisheng fwr_db_url: mysql+pymysql://root:infini_rag_flow@192.168.20.119:15455/rag_flow PUBLIC_KEY: | diff --git a/app/config/const.py b/app/config/const.py index 007e8e4..1e92c83 100644 --- a/app/config/const.py +++ b/app/config/const.py @@ -3,7 +3,9 @@ DOCUMENT_TO_CLEANING = "document_to_cleaning" DOCUMENT_TO_REPORT = "document_to_report" IMAGE_TO_TEXT = "image_and_text_conversion" - +DOCUMENT_TO_REPORT_TITLE = "document_to_report_title" +DOCUMENT_TO_TITLE = "document_to_title" +DOCUMENT_IA_QUESTIONS = "document_ia_questions" ### -----------app register -------------- RAGFLOW = "ragflow_app" diff --git a/app/models/public_api_model.py b/app/models/public_api_model.py index 8edffde..6c6a28d 100644 --- a/app/models/public_api_model.py +++ b/app/models/public_api_model.py @@ -53,6 +53,9 @@ image: Optional[str] = "" clean: Optional[str] = "" report: Optional[str] = "" + reoprt_title: Optional[str] = "" + title: Optional[str] = "" + question: Optional[str] = "" class AppRegister(BaseModel): diff --git a/app/models/token_model.py b/app/models/token_model.py index 2b50bfd..3e865aa 100644 --- a/app/models/token_model.py +++ b/app/models/token_model.py @@ -23,8 +23,8 @@ # 鍙傛暟楠岃瘉 if not isinstance(user_id, int) or user_id <= 0: return - if not access_token or not bisheng_token or not ragflow_token: - return + # if not access_token or not bisheng_token or not ragflow_token: + # return db_token = None try: # 鏌ヨ鐜版湁璁板綍 diff --git a/app/service/difyService.py b/app/service/difyService.py index 93bc62b..3731b51 100644 --- a/app/service/difyService.py +++ b/app/service/difyService.py @@ -65,28 +65,22 @@ raise Exception("Authorization header not found in response") return authorization - async def chat(self, token: str, user_id: int, message: str, upload_file_id: str, conversation_id: str): + async def chat(self, token: str, user_id: int, message: str, files: list, conversation_id: str, inputs:dict): target_url = f"{self.base_url}/v1/chat-messages" - files = [] - if upload_file_id: - files = [ - { - "type": "image", - "transfer_method": "local_file", - "url": "", - "upload_file_id": upload_file_id - } - ] data = { - "inputs": {}, + "inputs": inputs, "query": message, "response_mode": "streaming", "conversation_id": conversation_id, "user": str(user_id), "files": files } - + # if parent_message_id: + # data["parent_message_id"] = parent_message_id + # print("----------------------------------------------") + # print(data) + # print("-----------------------------------------------") async with httpx.AsyncClient(timeout=300.0) as client: headers = { 'Content-Type': 'application/json', diff --git a/app/task/fetch_agent.py b/app/task/fetch_agent.py index 9e91f8f..f77e013 100644 --- a/app/task/fetch_agent.py +++ b/app/task/fetch_agent.py @@ -113,12 +113,12 @@ db.commit() # 鎻愪氦浜嬪姟 initial_agents = [ - ('80ee430a-e396-48c4-a12c-7c7cdf5eda51', 1, '鎶ュ憡鐢熸垚', 'BISHENG', 'report'), + # ('80ee430a-e396-48c4-a12c-7c7cdf5eda51', 1, '鎶ュ憡鐢熸垚', 'BISHENG', 'report'), ('basic_excel_merge', 2, '鎶ヨ〃鍚堝苟', 'BASIC', 'excelMerge'), - ('bfd090d589d811efb3630242ac190006', 4, '鏂囨。鏅鸿兘', 'BISHENG', 'report'), + ('7638f006-38a2-4c21-a68e-c6c49b304a35', 4, '鏂囨。鏅鸿兘', 'DIFY', 'documentIa'), ('da3451da89d911efb9490242ac190006', 3, '鐭ヨ瘑闂瓟', 'RAGFLOW', 'knowledgeQA'), ('e96eb7a589db11ef87d20242ac190006', 5, '鏅鸿兘闂瓟', 'RAGFLOW', 'chat'), - ('basic_report_clean', 6, '鏂囨。鎶ュ憡', 'DIFY', 'reportWorkflow') + ('basic_report_clean', 6, '鎶ュ憡鐢熸垚', 'DIFY', 'reportWorkflow'), # ('basic_excel_talk', 6, '鏅鸿兘鏁版嵁', 'BASIC', 'excelTalk'), # ('basic_question_talk', 7, '鍑洪缁勫嵎', 'BASIC', 'questionTalk'), # ('9d75142a-66eb-4e23-b7d4-03efe4584915', 8, '灏忔暟缁樺浘', 'DIFY', 'imageTalk'), @@ -140,10 +140,10 @@ def sync_agents(): try: - bisheng_data = get_data_from_bisheng(BISHENG_NAMES_TO_SYNC) + # bisheng_data = get_data_from_bisheng(BISHENG_NAMES_TO_SYNC) ragflow_data = get_data_from_ragflow(RAGFLOW_NAMES_TO_SYNC) - update_ids_in_local(bisheng_data) + # update_ids_in_local(bisheng_data) update_ids_in_local(ragflow_data) print("Agents synchronized successfully") -- Gitblit v1.8.0