diff --git a/packages/dbgpt-app/src/dbgpt_app/scene/chat_dashboard/chat.py b/packages/dbgpt-app/src/dbgpt_app/scene/chat_dashboard/chat.py index f95c57bd4..0f23cce96 100644 --- a/packages/dbgpt-app/src/dbgpt_app/scene/chat_dashboard/chat.py +++ b/packages/dbgpt-app/src/dbgpt_app/scene/chat_dashboard/chat.py @@ -70,11 +70,12 @@ class ChatDashboard(BaseChat): print("dashboard vector find tables:{}", table_infos) except Exception as e: print("db summary find error!" + str(e)) + table_infos = self.database.table_simple_info() input_values = { "input": self.current_user_input, "dialect": self.database.dialect, - "table_info": self.database.table_simple_info(), + "table_info": table_infos, "supported_chat_type": self.dashboard_template["supported_chart_type"], } diff --git a/packages/dbgpt-app/src/dbgpt_app/scene/chat_dashboard/data_loader.py b/packages/dbgpt-app/src/dbgpt_app/scene/chat_dashboard/data_loader.py index b2184ea59..faab5d4b3 100644 --- a/packages/dbgpt-app/src/dbgpt_app/scene/chat_dashboard/data_loader.py +++ b/packages/dbgpt-app/src/dbgpt_app/scene/chat_dashboard/data_loader.py @@ -21,104 +21,97 @@ class DashboardDataLoader: logger.info(f"get_chart_values_by_conn:{chart_sql}") try: values: List[ValueItem] = [] - data_map = {} - data_map.update( - { - f"{field_name}": [row[index] for row in datas] - for index, field_name in enumerate(field_names) - } + if not datas: + return field_names, values + # try to find string index + string_index = next( + ( + index + for index, value in enumerate(datas[0]) + if isinstance(value, str) + ), + -1, ) - # to Check Whether there are data in it - if len(datas) != 0: - # try to find string index - string_index = next( - ( - index - for index, value in enumerate(datas[0]) - if isinstance(value, str) - ), - -1, - ) - # try to find datetime index - datetime_index = next( - ( - index - for index, value in enumerate(datas[0]) - if isinstance(value, (datetime.date, datetime.datetime)) - ), - -1, - ) + # try to find datetime index + datetime_index = next( + ( + index + for index, value in enumerate(datas[0]) + if isinstance(value, (datetime.date, datetime.datetime)) + ), + -1, + ) - # on the other aspect the primary key including "id" - id_index = next( - (index for index, value in enumerate(field_names) if "id" in value), - -1, - ) - # while there are no datetime and there are no string - if string_index == -1 and datetime_index == -1 and id_index == -1: - # ignore Null Value in the data - result = [ - sum(values for values in data if values is not None) - for data in zip(*datas) - ] - for index, field_name in enumerate(field_names): - value_item = ValueItem( - name=field_name, - type=f"{field_name}_amount", - value=str(result[index]), - ) - values.append(value_item) - - # there are string index (or/and) datetime; - # first choose string->datetime->id - else: - # triple judge index - primary_index = ( - string_index - if string_index != -1 - else (datetime_index if datetime_index != -1 else id_index) + # on the other aspect the primary key including "id" + id_index = next( + (index for index, value in enumerate(field_names) if "id" in value), + -1, + ) + # while there are no datetime and there are no string + if string_index == -1 and datetime_index == -1 and id_index == -1: + # ignore Null Value in the data + result = [ + sum(values for values in data if values is not None) + for data in zip(*datas) + ] + for index, field_name in enumerate(field_names): + value_item = ValueItem( + name=field_name, + type=f"{field_name}_amount", + value=str(result[index]), ) - temp_field_name = field_names[:primary_index] - temp_field_name.extend(field_names[primary_index + 1 :]) - for field_name in temp_field_name: - for data in datas: - # None Data won't be ok for the chart - if not any(item is None for item in data): - value_item = ValueItem( - name=str(data[primary_index]), - type=field_name, - value=( - str(data[field_names.index(field_name)]) - if not isinstance( - type(data[field_names.index(field_name)]), - (datetime.datetime, datetime.date), - ) - else str( - data[ - field_names.index(field_name) - ].strftime("%Y%m%d") - ) - ), - ) - values.append(value_item) + values.append(value_item) - # handle None Data as "0" for number and "19700101" for - # datetime - else: - value_item = ValueItem( - name=data[string_index], - type=field_name, - value=( - "0" - if not isinstance( - type(data[field_names.index(field_name)]), - (datetime.datetime, datetime.date), + # there are string index (or/and) datetime; + # first choose string->datetime->id + else: + # triple judge index + primary_index = ( + string_index + if string_index != -1 + else (datetime_index if datetime_index != -1 else id_index) + ) + temp_field_name = field_names[:primary_index] + temp_field_name.extend(field_names[primary_index + 1 :]) + for field_name in temp_field_name: + for data in datas: + # None Data won't be ok for the chart + if not any(item is None for item in data): + value_item = ValueItem( + name=str(data[primary_index]), + type=field_name, + value=( + str(data[field_names.index(field_name)]) + if not isinstance( + type(data[field_names.index(field_name)]), + (datetime.datetime, datetime.date), + ) + else str( + data[field_names.index(field_name)].strftime( + "%Y%m%d" ) - else "19700101" - ), - ) - values.append(value_item) + ) + ), + ) + values.append(value_item) + + # handle None Data as "0" for number and "19700101" for + # datetime + else: + value_item = ValueItem( + name=data[string_index], + type=field_name, + value=( + "0" + if not isinstance( + type(data[field_names.index(field_name)]), + (datetime.datetime, datetime.date), + ) + else "19700101" + ), + ) + values.append(value_item) return field_names, values except Exception as e: logger.exception(f"get_chart_values_by_conn failed:{str(e)}") diff --git a/packages/dbgpt-app/src/dbgpt_app/scene/chat_dashboard/data_preparation/report_schma.py b/packages/dbgpt-app/src/dbgpt_app/scene/chat_dashboard/data_preparation/report_schma.py index e9b591674..77d369b8e 100644 --- a/packages/dbgpt-app/src/dbgpt_app/scene/chat_dashboard/data_preparation/report_schma.py +++ b/packages/dbgpt-app/src/dbgpt_app/scene/chat_dashboard/data_preparation/report_schma.py @@ -6,7 +6,7 @@ from dbgpt._private.pydantic import BaseModel class ValueItem(BaseModel): name: str type: Optional[str] = None - value: float + value: Any = None def dict(self, *args, **kwargs): return {"name": self.name, "type": self.type, "value": self.value} diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/404.html b/packages/dbgpt-app/src/dbgpt_app/static/web/404.html index 227c0ca2b..461619997 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/404.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/404.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/404/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/404/index.html index 227c0ca2b..461619997 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/404/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/404/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/data/Dojpbz19K63B2OOVa8USw/construct/prompt/add.json b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/data/K-FTPWVGbeMjNlLvdeDU_/construct/prompt/add.json similarity index 100% rename from packages/dbgpt-app/src/dbgpt_app/static/web/_next/data/Dojpbz19K63B2OOVa8USw/construct/prompt/add.json rename to packages/dbgpt-app/src/dbgpt_app/static/web/_next/data/K-FTPWVGbeMjNlLvdeDU_/construct/prompt/add.json diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/data/Dojpbz19K63B2OOVa8USw/construct/prompt/edit.json b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/data/K-FTPWVGbeMjNlLvdeDU_/construct/prompt/edit.json similarity index 100% rename from packages/dbgpt-app/src/dbgpt_app/static/web/_next/data/Dojpbz19K63B2OOVa8USw/construct/prompt/edit.json rename to packages/dbgpt-app/src/dbgpt_app/static/web/_next/data/K-FTPWVGbeMjNlLvdeDU_/construct/prompt/edit.json diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/Dojpbz19K63B2OOVa8USw/_buildManifest.js b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/K-FTPWVGbeMjNlLvdeDU_/_buildManifest.js similarity index 97% rename from packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/Dojpbz19K63B2OOVa8USw/_buildManifest.js rename to packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/K-FTPWVGbeMjNlLvdeDU_/_buildManifest.js index 34dc3a2fb..23b0d3294 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/Dojpbz19K63B2OOVa8USw/_buildManifest.js +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/K-FTPWVGbeMjNlLvdeDU_/_buildManifest.js @@ -1 +1 @@ -self.__BUILD_MANIFEST=function(c,t,s,a,e,n,o,p,u,i,b,r,d,f,h,k,m,j,l,g,x,w,C,_,D,I,R,v,A,S,F,y,L,M,N,T,B,P,E,H,O,Q,U,q,z,G,J){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[c,t,s,a,e,n,o,N,"static/chunks/8733-1e1fc970bff78378.js",D,"static/chunks/pages/index-e5d16f679dbc407f.js"],"/_error":["static/chunks/pages/_error-8095ba9e1bf12f30.js"],"/chat":[c,t,s,a,e,n,o,p,u,i,b,h,l,N,g,D,"static/chunks/pages/chat-907eac62fbf2fff6.js"],"/construct":[t,a,r,U,"static/chunks/pages/construct-f9c701adc0a10f23.js"],"/construct/agent":[c,t,a,e,n,o,r,N,"static/chunks/4502-ef22a56109b9712d.js",B,"static/chunks/pages/construct/agent-b03e0b4ea0436096.js"],"/construct/app":[c,t,s,a,e,n,o,p,r,d,k,N,"static/chunks/1088-5a4870f56904f4ed.js","static/css/286e71c2657cb947.css","static/chunks/pages/construct/app-ff2d7beca35cde23.js"],"/construct/app/components/create-app-modal":[c,s,e,d,"static/css/71b2e674cdce283c.css","static/chunks/pages/construct/app/components/create-app-modal-39e4fe888a8b14ef.js"],"/construct/app/extra":[m,x,I,R,v,A,S,F,E,c,t,s,a,e,n,o,p,r,u,f,i,d,k,b,j,w,h,y,C,L,_,l,P,H,O,M,g,Q,"static/css/6eaf9c6ea2c5ea2f.css","static/chunks/pages/construct/app/extra-fb98d577200e8665.js"],"/construct/app/extra/components/AwelLayout":[E,t,p,d,H,q,"static/chunks/pages/construct/app/extra/components/AwelLayout-0a41ff5110af9246.js"],"/construct/app/extra/components/NativeApp":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,d,k,b,j,w,h,y,C,L,_,l,"static/chunks/5615-4b95e458e9d9d3b9.js",M,g,D,"static/chunks/pages/construct/app/extra/components/NativeApp-4448f0809b2fc5f2.js"],"/construct/app/extra/components/RecommendQuestions":[c,s,d,"static/css/baa1b56aac6681e7.css","static/chunks/pages/construct/app/extra/components/RecommendQuestions-d6c6760fd53edc23.js"],"/construct/app/extra/components/auto-plan":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,d,k,b,j,w,h,y,C,L,_,l,P,O,M,g,Q,D,"static/chunks/pages/construct/app/extra/components/auto-plan-6567b1c05c9ec229.js"],"/construct/app/extra/components/auto-plan/DetailsCard":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,d,k,b,j,w,h,y,C,L,_,l,P,O,M,g,Q,D,"static/chunks/pages/construct/app/extra/components/auto-plan/DetailsCard-cb6ba730924f6b45.js"],"/construct/app/extra/components/auto-plan/PromptSelect":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,k,b,j,w,h,y,C,L,_,l,"static/chunks/3387-a9084e5a2d4d90a9.js",M,g,D,"static/chunks/pages/construct/app/extra/components/auto-plan/PromptSelect-f600540bf85cabbf.js"],"/construct/app/extra/components/auto-plan/ResourceContent":[t,p,d,"static/chunks/pages/construct/app/extra/components/auto-plan/ResourceContent-79f9f95c110c4881.js"],"/construct/app/extra/components/auto-plan/ResourcesCard":[m,c,t,o,p,d,P,"static/chunks/pages/construct/app/extra/components/auto-plan/ResourcesCard-f20e815232b5874b.js"],"/construct/app/extra/config":["static/chunks/pages/construct/app/extra/config-22c5ff4c03d2e790.js"],"/construct/database":[c,t,s,a,e,p,r,f,d,h,z,G,U,"static/chunks/pages/construct/database-4e9eaf9453d17158.js"],"/construct/dbgpts":[c,t,s,a,e,n,o,r,N,"static/chunks/9277-155b475ba8c175d1.js",B,"static/chunks/pages/construct/dbgpts-f064ec6183ee9ce8.js"],"/construct/flow":[c,t,s,a,e,n,o,p,r,f,d,k,"static/chunks/9223-898045662f8f9aaf.js",B,"static/chunks/pages/construct/flow-b6734aef79ffa4fa.js"],"/construct/flow/canvas":[m,E,c,t,s,a,e,n,o,p,u,f,i,d,k,j,h,l,"static/chunks/3764-90db3ed836a41b68.js",H,J,"static/chunks/7855-b4b1ad532aea6294.js","static/chunks/9954-c8a30dfc49bbfa1a.js",q,"static/chunks/pages/construct/flow/canvas-6c5c3838ad424698.js"],"/construct/flow/libro":["static/chunks/pages/construct/flow/libro-ef0a3eabd6a60a7c.js"],"/construct/knowledge":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,d,k,b,j,w,h,y,C,L,_,l,J,"static/chunks/651-abeef162214c0b9e.js",M,g,B,"static/chunks/pages/construct/knowledge-bf39d10fd02a96e1.js"],"/construct/knowledge/chunk":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,d,k,b,j,w,h,y,C,L,_,l,"static/chunks/1500-d3d41b2f6d82f859.js",M,g,D,"static/chunks/pages/construct/knowledge/chunk-3e624bd596c18dcc.js"],"/construct/models":[c,t,s,a,n,o,p,r,f,d,h,C,z,B,"static/chunks/pages/construct/models-3c09723fb6a9b75d.js"],"/construct/prompt":[c,t,s,a,e,n,o,p,r,f,k,j,N,"static/css/6f3f201b5cbc2e30.css","static/chunks/pages/construct/prompt-05fd69727ee7ba35.js"],"/construct/prompt/[type]":[c,t,s,a,p,r,i,d,b,h,_,G,"static/chunks/5396-52bf019cbb5ec9e6.js","static/css/279c58a83be8d59c.css","static/chunks/pages/construct/prompt/[type]-56879fdd229957d9.js"],"/evaluation":[c,t,s,a,e,n,p,u,f,d,k,j,N,"static/chunks/4833-3f1c9f62a70aa547.js","static/chunks/pages/evaluation-19a12671e204ab30.js"],"/knowledge/graph":[m,x,e,w,"static/chunks/2973-fdc1592501026593.js","static/chunks/4744-a431699d60da1732.js","static/chunks/5558-c3c1f07b8ed25ee2.js","static/chunks/pages/knowledge/graph-4c62aded08a8fcdf.js"],"/mobile/chat":[c,t,s,a,e,n,o,u,i,b,"static/chunks/5005-847957d83300cf4e.js",T,"static/chunks/pages/mobile/chat-622a6cdf07c4be28.js"],"/mobile/chat/components/ChatDialog":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,k,b,j,w,h,y,C,L,_,l,"static/chunks/2105-0b96e55d662e38bc.js",M,g,D,"static/chunks/pages/mobile/chat/components/ChatDialog-8e5e3540d4723510.js"],"/mobile/chat/components/Content":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,k,b,j,w,h,y,C,L,_,l,"static/chunks/2860-ab34ed021ff52af2.js",M,g,D,"static/chunks/pages/mobile/chat/components/Content-cd8e3d52a83fb57e.js"],"/mobile/chat/components/DislikeDrawer":[c,s,"static/chunks/pages/mobile/chat/components/DislikeDrawer-6abdf68a6518fb52.js"],"/mobile/chat/components/Feedback":[c,t,s,a,e,n,o,u,i,b,"static/chunks/4354-e57cde4433c5fd5c.js",T,"static/chunks/pages/mobile/chat/components/Feedback-2fde0924fbbeed10.js"],"/mobile/chat/components/Header":[c,t,s,a,e,n,o,u,i,b,"static/chunks/5654-e2fb6910235d251d.js",T,"static/chunks/pages/mobile/chat/components/Header-9dc1942a4484521c.js"],"/mobile/chat/components/InputContainer":[c,t,s,a,e,n,o,u,i,b,"static/chunks/1390-db1d6f8281c4dd59.js",T,"static/chunks/pages/mobile/chat/components/InputContainer-fa85310076f5fa4d.js"],"/mobile/chat/components/ModelSelector":[c,t,s,a,e,n,o,u,i,b,"static/chunks/950-88c84d615a45ac96.js",T,"static/chunks/pages/mobile/chat/components/ModelSelector-c8b471e7a8368aba.js"],"/mobile/chat/components/OptionIcon":["static/chunks/pages/mobile/chat/components/OptionIcon-9b7b2b198d5ee1f1.js"],"/mobile/chat/components/Resource":[c,t,s,a,e,n,o,u,i,b,"static/chunks/6047-26e7e176b04ca9f3.js",T,"static/chunks/pages/mobile/chat/components/Resource-cd0d918ae1ceaa67.js"],"/mobile/chat/components/Thermometer":[c,t,s,a,e,n,o,u,i,b,"static/chunks/1437-13a9042f2fa6daf7.js",T,"static/chunks/pages/mobile/chat/components/Thermometer-313450ba4abca4a2.js"],sortedPages:["/","/_app","/_error","/chat","/construct","/construct/agent","/construct/app","/construct/app/components/create-app-modal","/construct/app/extra","/construct/app/extra/components/AwelLayout","/construct/app/extra/components/NativeApp","/construct/app/extra/components/RecommendQuestions","/construct/app/extra/components/auto-plan","/construct/app/extra/components/auto-plan/DetailsCard","/construct/app/extra/components/auto-plan/PromptSelect","/construct/app/extra/components/auto-plan/ResourceContent","/construct/app/extra/components/auto-plan/ResourcesCard","/construct/app/extra/config","/construct/database","/construct/dbgpts","/construct/flow","/construct/flow/canvas","/construct/flow/libro","/construct/knowledge","/construct/knowledge/chunk","/construct/models","/construct/prompt","/construct/prompt/[type]","/evaluation","/knowledge/graph","/mobile/chat","/mobile/chat/components/ChatDialog","/mobile/chat/components/Content","/mobile/chat/components/DislikeDrawer","/mobile/chat/components/Feedback","/mobile/chat/components/Header","/mobile/chat/components/InputContainer","/mobile/chat/components/ModelSelector","/mobile/chat/components/OptionIcon","/mobile/chat/components/Resource","/mobile/chat/components/Thermometer"]}}("static/chunks/2913-315ad705b1306902.js","static/chunks/3791-58df908ca3784958.js","static/chunks/5278-36ac2f07bcb92504.js","static/chunks/8791-d36492edb39795c5.js","static/chunks/4330-a1b5cee9f3b8b8f7.js","static/chunks/1049-b2925c4c7e1e37be.js","static/chunks/5030-ed144c49e325cd61.js","static/chunks/4041-5492a10899848bfe.js","static/chunks/3799-d48c841202a23ed2.js","static/chunks/2684-73933877255629e3.js","static/chunks/6231-082aa9c179c552ae.js","static/chunks/2398-80f576e59bf84b54.js","static/chunks/9859-0f9a257d2a611e9c.js","static/chunks/4567-e13d92805b9a662c.js","static/chunks/3457-105f31ebfbb8ea1c.js","static/chunks/1300-d15ca5298cec4f7e.js","static/chunks/29107295-75edf0bf34e24b1e.js","static/chunks/9773-d9f5901b80287410.js","static/chunks/5782-c716125f96f3c46d.js","static/chunks/7249-0257990fb004d1e0.js","static/chunks/355a6ca7-744d111cb90d9a0e.js","static/chunks/4035-e44efbdb196bb006.js","static/chunks/2510-48a15f9b508d4371.js","static/chunks/9202-a18f5e3aa6a290da.js","static/css/9b601b4de5d78ac2.css","static/chunks/d9005de1-9554a68697ca3836.js","static/chunks/f9a75a99-95eebf4be8f76543.js","static/chunks/33a1eaa4-7856035046c28279.js","static/chunks/008713dc-dc1f72d2eff49743.js","static/chunks/554c6155-1a171fdb837a225b.js","static/chunks/4d857c35-6c3c1ca79b606788.js","static/chunks/152-56fad3e011927332.js","static/chunks/8592-ebdb32e965a5eb5d.js","static/chunks/626-5ea69fdbcb1e1a19.js","static/chunks/2783-67b811a852a75cad.js","static/chunks/3913-94e95819b7a3175b.js","static/css/f50ad89cce84a0a9.css","static/chunks/4745-5baace070c6fa86f.js","static/chunks/971df74e-f3c263af350cb1b6.js","static/chunks/1278-edc9b98f2c09de56.js","static/chunks/8587-971ed2abcff8ed71.js","static/chunks/8510-87c1e11c131b1df8.js","static/css/8ff116f2992cd086.css","static/css/a275cc2b185e04f8.css","static/chunks/7896-9a2711a6663ea90e.js","static/chunks/4393-bd13a27cd00a20d6.js","static/chunks/8914-e39d5b3463812745.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file +self.__BUILD_MANIFEST=function(c,t,s,a,e,n,o,p,u,i,b,r,d,f,h,k,m,j,l,g,x,w,C,_,D,I,R,v,A,S,F,y,L,M,N,T,B,P,E,H,O,Q,U,q,z,G,J){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[c,t,s,a,e,n,o,N,"static/chunks/8733-1e1fc970bff78378.js",D,"static/chunks/pages/index-e5d16f679dbc407f.js"],"/_error":["static/chunks/pages/_error-8095ba9e1bf12f30.js"],"/chat":[c,t,s,a,e,n,o,p,u,i,b,h,l,N,g,D,"static/chunks/pages/chat-907eac62fbf2fff6.js"],"/construct":[t,a,r,U,"static/chunks/pages/construct-f9c701adc0a10f23.js"],"/construct/agent":[c,t,a,e,n,o,r,N,"static/chunks/4502-ef22a56109b9712d.js",B,"static/chunks/pages/construct/agent-b03e0b4ea0436096.js"],"/construct/app":[c,t,s,a,e,n,o,p,r,d,k,N,"static/chunks/1088-5a4870f56904f4ed.js","static/css/286e71c2657cb947.css","static/chunks/pages/construct/app-ff2d7beca35cde23.js"],"/construct/app/components/create-app-modal":[c,s,e,d,"static/css/71b2e674cdce283c.css","static/chunks/pages/construct/app/components/create-app-modal-39e4fe888a8b14ef.js"],"/construct/app/extra":[m,x,I,R,v,A,S,F,E,c,t,s,a,e,n,o,p,r,u,f,i,d,k,b,j,w,h,y,C,L,_,l,P,H,O,M,g,Q,"static/css/6eaf9c6ea2c5ea2f.css","static/chunks/pages/construct/app/extra-fb98d577200e8665.js"],"/construct/app/extra/components/AwelLayout":[E,t,p,d,H,q,"static/chunks/pages/construct/app/extra/components/AwelLayout-0a41ff5110af9246.js"],"/construct/app/extra/components/NativeApp":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,d,k,b,j,w,h,y,C,L,_,l,"static/chunks/5615-4b95e458e9d9d3b9.js",M,g,D,"static/chunks/pages/construct/app/extra/components/NativeApp-4448f0809b2fc5f2.js"],"/construct/app/extra/components/RecommendQuestions":[c,s,d,"static/css/baa1b56aac6681e7.css","static/chunks/pages/construct/app/extra/components/RecommendQuestions-d6c6760fd53edc23.js"],"/construct/app/extra/components/auto-plan":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,d,k,b,j,w,h,y,C,L,_,l,P,O,M,g,Q,D,"static/chunks/pages/construct/app/extra/components/auto-plan-6567b1c05c9ec229.js"],"/construct/app/extra/components/auto-plan/DetailsCard":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,d,k,b,j,w,h,y,C,L,_,l,P,O,M,g,Q,D,"static/chunks/pages/construct/app/extra/components/auto-plan/DetailsCard-cb6ba730924f6b45.js"],"/construct/app/extra/components/auto-plan/PromptSelect":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,k,b,j,w,h,y,C,L,_,l,"static/chunks/3387-a9084e5a2d4d90a9.js",M,g,D,"static/chunks/pages/construct/app/extra/components/auto-plan/PromptSelect-f600540bf85cabbf.js"],"/construct/app/extra/components/auto-plan/ResourceContent":[t,p,d,"static/chunks/pages/construct/app/extra/components/auto-plan/ResourceContent-79f9f95c110c4881.js"],"/construct/app/extra/components/auto-plan/ResourcesCard":[m,c,t,o,p,d,P,"static/chunks/pages/construct/app/extra/components/auto-plan/ResourcesCard-f20e815232b5874b.js"],"/construct/app/extra/config":["static/chunks/pages/construct/app/extra/config-22c5ff4c03d2e790.js"],"/construct/database":[c,t,s,a,e,p,r,f,d,h,z,G,U,"static/chunks/pages/construct/database-4e9eaf9453d17158.js"],"/construct/dbgpts":[c,t,s,a,e,n,o,r,N,"static/chunks/9277-155b475ba8c175d1.js",B,"static/chunks/pages/construct/dbgpts-f064ec6183ee9ce8.js"],"/construct/flow":[c,t,s,a,e,n,o,p,r,f,d,k,"static/chunks/9223-898045662f8f9aaf.js",B,"static/chunks/pages/construct/flow-b6734aef79ffa4fa.js"],"/construct/flow/canvas":[m,E,c,t,s,a,e,n,o,p,u,f,i,d,k,j,h,l,"static/chunks/3764-90db3ed836a41b68.js",H,J,"static/chunks/7855-b4b1ad532aea6294.js","static/chunks/9954-c8a30dfc49bbfa1a.js",q,"static/chunks/pages/construct/flow/canvas-6c5c3838ad424698.js"],"/construct/flow/libro":["static/chunks/pages/construct/flow/libro-ef0a3eabd6a60a7c.js"],"/construct/knowledge":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,d,k,b,j,w,h,y,C,L,_,l,J,"static/chunks/651-abeef162214c0b9e.js",M,g,B,"static/chunks/pages/construct/knowledge-bf39d10fd02a96e1.js"],"/construct/knowledge/chunk":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,d,k,b,j,w,h,y,C,L,_,l,"static/chunks/1500-d3d41b2f6d82f859.js",M,g,D,"static/chunks/pages/construct/knowledge/chunk-3e624bd596c18dcc.js"],"/construct/models":[c,t,s,a,n,o,p,r,f,d,h,C,z,B,"static/chunks/pages/construct/models-3c09723fb6a9b75d.js"],"/construct/prompt":[c,t,s,a,e,n,o,p,r,f,k,j,N,"static/css/6f3f201b5cbc2e30.css","static/chunks/pages/construct/prompt-05fd69727ee7ba35.js"],"/construct/prompt/[type]":[c,t,s,a,p,r,i,d,b,h,_,G,"static/chunks/5396-52bf019cbb5ec9e6.js","static/css/279c58a83be8d59c.css","static/chunks/pages/construct/prompt/[type]-56879fdd229957d9.js"],"/evaluation":[c,t,s,a,e,n,p,u,f,d,k,j,N,"static/chunks/4833-3f1c9f62a70aa547.js","static/chunks/pages/evaluation-19a12671e204ab30.js"],"/knowledge/graph":[m,x,e,w,"static/chunks/2973-fdc1592501026593.js","static/chunks/4744-a431699d60da1732.js","static/chunks/5558-c3c1f07b8ed25ee2.js","static/chunks/pages/knowledge/graph-4c62aded08a8fcdf.js"],"/mobile/chat":[c,t,s,a,e,n,o,u,i,b,"static/chunks/5005-847957d83300cf4e.js",T,"static/chunks/pages/mobile/chat-622a6cdf07c4be28.js"],"/mobile/chat/components/ChatDialog":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,k,b,j,w,h,y,C,L,_,l,"static/chunks/2105-0b96e55d662e38bc.js",M,g,D,"static/chunks/pages/mobile/chat/components/ChatDialog-8e5e3540d4723510.js"],"/mobile/chat/components/Content":[m,x,I,R,v,A,S,F,c,t,s,a,e,n,o,p,r,u,f,i,k,b,j,w,h,y,C,L,_,l,"static/chunks/2860-ab34ed021ff52af2.js",M,g,D,"static/chunks/pages/mobile/chat/components/Content-cd8e3d52a83fb57e.js"],"/mobile/chat/components/DislikeDrawer":[c,s,"static/chunks/pages/mobile/chat/components/DislikeDrawer-6abdf68a6518fb52.js"],"/mobile/chat/components/Feedback":[c,t,s,a,e,n,o,u,i,b,"static/chunks/4354-e57cde4433c5fd5c.js",T,"static/chunks/pages/mobile/chat/components/Feedback-2fde0924fbbeed10.js"],"/mobile/chat/components/Header":[c,t,s,a,e,n,o,u,i,b,"static/chunks/1390-db1d6f8281c4dd59.js",T,"static/chunks/pages/mobile/chat/components/Header-812c0dd51a64e53b.js"],"/mobile/chat/components/InputContainer":[c,t,s,a,e,n,o,u,i,b,"static/chunks/5654-e2fb6910235d251d.js",T,"static/chunks/pages/mobile/chat/components/InputContainer-d9adf4858c7f1201.js"],"/mobile/chat/components/ModelSelector":[c,t,s,a,e,n,o,u,i,b,"static/chunks/950-88c84d615a45ac96.js",T,"static/chunks/pages/mobile/chat/components/ModelSelector-c8b471e7a8368aba.js"],"/mobile/chat/components/OptionIcon":["static/chunks/pages/mobile/chat/components/OptionIcon-9b7b2b198d5ee1f1.js"],"/mobile/chat/components/Resource":[c,t,s,a,e,n,o,u,i,b,"static/chunks/6047-26e7e176b04ca9f3.js",T,"static/chunks/pages/mobile/chat/components/Resource-cd0d918ae1ceaa67.js"],"/mobile/chat/components/Thermometer":[c,t,s,a,e,n,o,u,i,b,"static/chunks/1437-13a9042f2fa6daf7.js",T,"static/chunks/pages/mobile/chat/components/Thermometer-313450ba4abca4a2.js"],sortedPages:["/","/_app","/_error","/chat","/construct","/construct/agent","/construct/app","/construct/app/components/create-app-modal","/construct/app/extra","/construct/app/extra/components/AwelLayout","/construct/app/extra/components/NativeApp","/construct/app/extra/components/RecommendQuestions","/construct/app/extra/components/auto-plan","/construct/app/extra/components/auto-plan/DetailsCard","/construct/app/extra/components/auto-plan/PromptSelect","/construct/app/extra/components/auto-plan/ResourceContent","/construct/app/extra/components/auto-plan/ResourcesCard","/construct/app/extra/config","/construct/database","/construct/dbgpts","/construct/flow","/construct/flow/canvas","/construct/flow/libro","/construct/knowledge","/construct/knowledge/chunk","/construct/models","/construct/prompt","/construct/prompt/[type]","/evaluation","/knowledge/graph","/mobile/chat","/mobile/chat/components/ChatDialog","/mobile/chat/components/Content","/mobile/chat/components/DislikeDrawer","/mobile/chat/components/Feedback","/mobile/chat/components/Header","/mobile/chat/components/InputContainer","/mobile/chat/components/ModelSelector","/mobile/chat/components/OptionIcon","/mobile/chat/components/Resource","/mobile/chat/components/Thermometer"]}}("static/chunks/2913-315ad705b1306902.js","static/chunks/3791-58df908ca3784958.js","static/chunks/5278-36ac2f07bcb92504.js","static/chunks/8791-d36492edb39795c5.js","static/chunks/4330-a1b5cee9f3b8b8f7.js","static/chunks/1049-b2925c4c7e1e37be.js","static/chunks/5030-ed144c49e325cd61.js","static/chunks/4041-5492a10899848bfe.js","static/chunks/3799-d48c841202a23ed2.js","static/chunks/2684-73933877255629e3.js","static/chunks/6231-082aa9c179c552ae.js","static/chunks/2398-80f576e59bf84b54.js","static/chunks/9859-0f9a257d2a611e9c.js","static/chunks/4567-e13d92805b9a662c.js","static/chunks/3457-105f31ebfbb8ea1c.js","static/chunks/1300-d15ca5298cec4f7e.js","static/chunks/29107295-75edf0bf34e24b1e.js","static/chunks/9773-d9f5901b80287410.js","static/chunks/5782-c716125f96f3c46d.js","static/chunks/7249-0257990fb004d1e0.js","static/chunks/355a6ca7-744d111cb90d9a0e.js","static/chunks/4035-e44efbdb196bb006.js","static/chunks/2510-48a15f9b508d4371.js","static/chunks/9202-a18f5e3aa6a290da.js","static/css/9b601b4de5d78ac2.css","static/chunks/d9005de1-9554a68697ca3836.js","static/chunks/f9a75a99-95eebf4be8f76543.js","static/chunks/33a1eaa4-7856035046c28279.js","static/chunks/008713dc-dc1f72d2eff49743.js","static/chunks/554c6155-1a171fdb837a225b.js","static/chunks/4d857c35-6c3c1ca79b606788.js","static/chunks/152-56fad3e011927332.js","static/chunks/8592-ebdb32e965a5eb5d.js","static/chunks/626-5ea69fdbcb1e1a19.js","static/chunks/2783-67b811a852a75cad.js","static/chunks/3913-94e95819b7a3175b.js","static/css/f50ad89cce84a0a9.css","static/chunks/4745-5baace070c6fa86f.js","static/chunks/971df74e-f3c263af350cb1b6.js","static/chunks/1278-edc9b98f2c09de56.js","static/chunks/8587-971ed2abcff8ed71.js","static/chunks/8510-87c1e11c131b1df8.js","static/css/8ff116f2992cd086.css","static/css/a275cc2b185e04f8.css","static/chunks/7896-9a2711a6663ea90e.js","static/chunks/4393-bd13a27cd00a20d6.js","static/chunks/8914-e39d5b3463812745.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/Dojpbz19K63B2OOVa8USw/_ssgManifest.js b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/K-FTPWVGbeMjNlLvdeDU_/_ssgManifest.js similarity index 100% rename from packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/Dojpbz19K63B2OOVa8USw/_ssgManifest.js rename to packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/K-FTPWVGbeMjNlLvdeDU_/_ssgManifest.js diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/4769.0edd051d9b3a4801.js b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/4769.0edd051d9b3a4801.js deleted file mode 100644 index 0b304c159..000000000 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/4769.0edd051d9b3a4801.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4769],{36517:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return eI}});var n=l(85893),a=l(41468),s=l(76212),r=l(43446),o=l(62418),i=l(2093),c=l(93967),d=l.n(c),u=l(39332),x=l(67294),m=l(39156),h=l(91085),p=l(45247),f=()=>{let{history:e,setHistory:t,chatId:l,model:n,docId:o}=(0,x.useContext)(a.p),{chat:i}=(0,r.Z)({queryAgentURL:"/knowledge/document/summary"}),c=(0,x.useCallback)(async e=>{let[,a]=await (0,s.Vx)((0,s.$i)(l)),r=[...a,{role:"human",context:"",model_name:n,order:0,time_stamp:0},{role:"view",context:"",model_name:n,order:0,time_stamp:0,retry:!0}],c=r.length-1;t([...r]),await i({data:{doc_id:e||o,model_name:n},chatId:l,onMessage:e=>{r[c].context=e,t([...r])}})},[e,n,o,l]);return c},v=l(87740),g=l(57132),j=l(66478),w=l(14553),b=l(45360),y=l(83062),Z=l(85576),_=l(20640),N=l.n(_),C=l(96486),P=l(67421),k=l(27496),S=l(25278),R=l(14726),E=l(11163),I=l(82353),D=l(1051);function F(e){let{document:t}=e;switch(t.status){case"RUNNING":return(0,n.jsx)(I.Rp,{});case"FINISHED":default:return(0,n.jsx)(I.s2,{});case"FAILED":return(0,n.jsx)(D.Z,{})}}function M(e){let{documents:t,dbParam:l}=e,a=(0,E.useRouter)(),s=e=>{a.push("/knowledge/chunk/?spaceName=".concat(l,"&id=").concat(e))};return(null==t?void 0:t.length)?(0,n.jsx)("div",{className:"absolute flex overflow-scroll h-12 top-[-35px] w-full z-10",children:t.map(e=>{let t;switch(e.status){case"RUNNING":t="#2db7f5";break;case"FINISHED":default:t="#87d068";break;case"FAILED":t="#f50"}return(0,n.jsx)(y.Z,{title:e.result,children:(0,n.jsxs)(R.ZP,{style:{color:t},onClick:()=>{s(e.id)},className:"shrink flex items-center mr-3",children:[(0,n.jsx)(F,{document:e}),e.doc_name]})},e.id)})}):null}var U=l(5392),L=l(23799);function O(e){let{dbParam:t,setDocId:l}=(0,x.useContext)(a.p),{onUploadFinish:r,handleFinish:o}=e,i=f(),[c,d]=(0,x.useState)(!1),u=async e=>{d(!0);let n=new FormData;n.append("doc_name",e.file.name),n.append("doc_file",e.file),n.append("doc_type","DOCUMENT");let a=await (0,s.Vx)((0,s.iG)(t||"default",n));if(!a[1]){d(!1);return}l(a[1]),r(),d(!1),null==o||o(!0),await i(a[1]),null==o||o(!1)};return(0,n.jsx)(L.default,{customRequest:u,showUploadList:!1,maxCount:1,multiple:!1,className:"absolute z-10 top-2 left-2",accept:".pdf,.ppt,.pptx,.xls,.xlsx,.doc,.docx,.txt,.md",children:(0,n.jsx)(R.ZP,{loading:c,size:"small",shape:"circle",icon:(0,n.jsx)(U.Z,{})})})}var $=l(30119),A=l(65654),V=l(2487),G=l(28459),z=l(55241),H=l(99859),q=l(34041),B=l(12652);let T=e=>{let{data:t,loading:l,submit:a,close:s}=e,{t:r}=(0,P.$G)(),o=e=>()=>{a(e),s()};return(0,n.jsx)("div",{style:{maxHeight:400,overflow:"auto"},children:(0,n.jsx)(V.Z,{dataSource:null==t?void 0:t.data,loading:l,rowKey:e=>e.prompt_name,renderItem:e=>(0,n.jsx)(V.Z.Item,{onClick:o(e.content),children:(0,n.jsx)(y.Z,{title:e.content,children:(0,n.jsx)(V.Z.Item.Meta,{style:{cursor:"copy"},title:e.prompt_name,description:r("Prompt_Info_Scene")+":".concat(e.chat_scene,",")+r("Prompt_Info_Sub_Scene")+":".concat(e.sub_chat_scene)})})},e.prompt_name)})})};var J=e=>{let{submit:t}=e,{t:l}=(0,P.$G)(),[a,s]=(0,x.useState)(!1),[r,o]=(0,x.useState)("common"),{data:i,loading:c}=(0,A.Z)(()=>(0,$.PR)("/prompt/list",{prompt_type:r}),{refreshDeps:[r],onError:e=>{b.ZP.error(null==e?void 0:e.message)}});return(0,n.jsx)(G.ZP,{theme:{components:{Popover:{minWidth:250}}},children:(0,n.jsx)(z.Z,{title:(0,n.jsx)(H.default.Item,{label:"Prompt "+l("Type"),children:(0,n.jsx)(q.default,{style:{width:150},value:r,onChange:e=>{o(e)},options:[{label:l("Public")+" Prompts",value:"common"},{label:l("Private")+" Prompts",value:"private"}]})}),content:(0,n.jsx)(T,{data:i,loading:c,submit:t,close:()=>{s(!1)}}),placement:"topRight",trigger:"click",open:a,onOpenChange:e=>{s(e)},children:(0,n.jsx)(y.Z,{title:l("Click_Select")+" Prompt",children:(0,n.jsx)(B.Z,{className:"bottom-[30%]"})})})})},Q=function(e){let{children:t,loading:l,onSubmit:r,handleFinish:o,placeholder:i,...c}=e,{dbParam:d,scene:u}=(0,x.useContext)(a.p),[m,h]=(0,x.useState)(""),p=(0,x.useMemo)(()=>"chat_knowledge"===u,[u]),[f,v]=(0,x.useState)([]),g=(0,x.useRef)(0);async function j(){if(!d)return null;let[e,t]=await (0,s.Vx)((0,s._Q)(d,{page:1,page_size:g.current}));v((null==t?void 0:t.data)||[])}(0,x.useEffect)(()=>{p&&j()},[d]);let w=async()=>{g.current+=1,await j()};return(0,n.jsxs)("div",{className:"flex-1 relative",children:[(0,n.jsx)(M,{documents:f,dbParam:d}),p&&(0,n.jsx)(O,{handleFinish:o,onUploadFinish:w,className:"absolute z-10 top-2 left-2"}),(0,n.jsx)(S.default.TextArea,{className:"flex-1 ".concat(p?"pl-10":""," pr-10"),size:"large",value:m,autoSize:{minRows:1,maxRows:4},...c,onPressEnter:e=>{if(m.trim()&&13===e.keyCode){if(e.shiftKey){e.preventDefault(),h(e=>e+"\n");return}r(m),setTimeout(()=>{h("")},0)}},onChange:e=>{if("number"==typeof c.maxLength){h(e.target.value.substring(0,c.maxLength));return}h(e.target.value)},placeholder:i}),(0,n.jsx)(R.ZP,{className:"ml-2 flex items-center justify-center absolute right-0 bottom-0",size:"large",type:"text",loading:l,icon:(0,n.jsx)(k.Z,{}),onClick:()=>{r(m)}}),(0,n.jsx)(J,{submit:e=>{h(m+e)}}),t]})},W=l(32975),K=l(14660),X=l(13185),Y=(0,x.memo)(function(e){var t;let{content:l}=e,{scene:s}=(0,x.useContext)(a.p),r="view"===l.role;return(0,n.jsx)("div",{className:d()("relative w-full p-2 md:p-4 rounded-xl break-words",{"bg-white dark:bg-[#232734]":r,"lg:w-full xl:w-full pl-0":["chat_with_db_execute","chat_dashboard"].includes(s)}),children:r?(0,n.jsx)(W.Z,{components:X.Z,rehypePlugins:[K.Z],children:null==(t=l.context)?void 0:t.replace(/]+)>/gi,"").replace(/]+)>/gi,"")}):(0,n.jsx)("div",{className:"",children:l.context})})}),ee=l(24019),et=l(50888),el=l(97937),en=l(63606),ea=l(50228),es=l(87547),er=l(89035),eo=l(66309),ei=l(55186),ec=l(81799);let ed={todo:{bgClass:"bg-gray-500",icon:(0,n.jsx)(ee.Z,{className:"ml-2"})},runing:{bgClass:"bg-blue-500",icon:(0,n.jsx)(et.Z,{className:"ml-2"})},failed:{bgClass:"bg-red-500",icon:(0,n.jsx)(el.Z,{className:"ml-2"})},completed:{bgClass:"bg-green-500",icon:(0,n.jsx)(en.Z,{className:"ml-2"})}};function eu(e){return e.replaceAll("\\n","\n").replace(/]+)>/gi,"
").replace(/]+)>/gi,"")}var ex=(0,x.memo)(function(e){let{children:t,content:l,isChartChat:s,onLinkClick:r}=e,{scene:o}=(0,x.useContext)(a.p),{context:i,model_name:c,role:u}=l,m="view"===u,{relations:h,value:p,cachePluginContext:f}=(0,x.useMemo)(()=>{if("string"!=typeof i)return{relations:[],value:"",cachePluginContext:[]};let[e,t]=i.split(" relations:"),l=t?t.split(","):[],n=[],a=0,s=e.replace(/]*>[^<]*<\/dbgpt-view>/gi,e=>{try{var t;let l=e.replaceAll("\n","\\n").replace(/<[^>]*>|<\/[^>]*>/gm,""),s=JSON.parse(l),r="".concat(a,"");return n.push({...s,result:eu(null!==(t=s.result)&&void 0!==t?t:"")}),a++,r}catch(t){return console.log(t.message,t),e}});return{relations:l,cachePluginContext:n,value:s}},[i]),v=(0,x.useMemo)(()=>({"custom-view"(e){var t;let{children:l}=e,a=+l.toString();if(!f[a])return l;let{name:s,status:r,err_msg:o,result:i}=f[a],{bgClass:c,icon:u}=null!==(t=ed[r])&&void 0!==t?t:{};return(0,n.jsxs)("div",{className:"bg-white dark:bg-[#212121] rounded-lg overflow-hidden my-2 flex flex-col lg:max-w-[80%]",children:[(0,n.jsxs)("div",{className:d()("flex px-4 md:px-6 py-2 items-center text-white text-sm",c),children:[s,u]}),i?(0,n.jsx)("div",{className:"px-4 md:px-6 py-4 text-sm",children:(0,n.jsx)(W.Z,{components:X.Z,rehypePlugins:[K.Z],remarkPlugins:[ei.Z],children:null!=i?i:""})}):(0,n.jsx)("div",{className:"px-4 md:px-6 py-4 text-sm",children:o})]})}}),[i,f]);return m||i?(0,n.jsxs)("div",{className:d()("relative flex flex-wrap w-full p-2 md:p-4 rounded-xl break-words",{"bg-white dark:bg-[#232734]":m,"lg:w-full xl:w-full pl-0":["chat_with_db_execute","chat_dashboard"].includes(o)}),children:[(0,n.jsx)("div",{className:"mr-2 flex flex-shrink-0 items-center justify-center h-7 w-7 rounded-full text-lg sm:mr-4",children:m?(0,ec.A)(c)||(0,n.jsx)(ea.Z,{}):(0,n.jsx)(es.Z,{})}),(0,n.jsxs)("div",{className:"flex-1 overflow-hidden items-center text-md leading-8 pb-2",children:[!m&&"string"==typeof i&&i,m&&s&&"object"==typeof i&&(0,n.jsxs)("div",{children:["[".concat(i.template_name,"]: "),(0,n.jsxs)("span",{className:"text-theme-primary cursor-pointer",onClick:r,children:[(0,n.jsx)(er.Z,{className:"mr-1"}),i.template_introduce||"More Details"]})]}),m&&"string"==typeof i&&(0,n.jsx)(W.Z,{components:{...X.Z,...v},rehypePlugins:[K.Z],remarkPlugins:[ei.Z],children:eu(p)}),!!(null==h?void 0:h.length)&&(0,n.jsx)("div",{className:"flex flex-wrap mt-2",children:null==h?void 0:h.map((e,t)=>(0,n.jsx)(eo.Z,{color:"#108ee9",children:e},e+t))})]}),t]}):(0,n.jsx)("div",{className:"h-12"})}),em=l(59301),eh=l(41132),ep=l(74312),ef=l(3414),ev=l(72868),eg=l(59562),ej=l(25359),ew=l(7203),eb=l(48665),ey=l(26047),eZ=l(99056),e_=l(57814),eN=l(64415),eC=l(21694),eP=l(40911),ek=e=>{var t;let{conv_index:l,question:r,knowledge_space:o,select_param:i}=e,{t:c}=(0,P.$G)(),{chatId:d}=(0,x.useContext)(a.p),[u,m]=(0,x.useState)(""),[h,p]=(0,x.useState)(4),[f,v]=(0,x.useState)(""),g=(0,x.useRef)(null),[Z,_]=b.ZP.useMessage(),N=(0,x.useCallback)((e,t)=>{t?(0,s.Vx)((0,s.Eb)(d,l)).then(e=>{var t,l,n,a;let s=null!==(t=e[1])&&void 0!==t?t:{};m(null!==(l=s.ques_type)&&void 0!==l?l:""),p(parseInt(null!==(n=s.score)&&void 0!==n?n:"4")),v(null!==(a=s.messages)&&void 0!==a?a:"")}).catch(e=>{console.log(e)}):(m(""),p(4),v(""))},[d,l]),C=(0,ep.Z)(ef.Z)(e=>{let{theme:t}=e;return{backgroundColor:"dark"===t.palette.mode?"#FBFCFD":"#0E0E10",...t.typography["body-sm"],padding:t.spacing(1),display:"flex",alignItems:"center",justifyContent:"center",borderRadius:4,width:"100%",height:"100%"}});return(0,n.jsxs)(ev.L,{onOpenChange:N,children:[_,(0,n.jsx)(y.Z,{title:c("Rating"),children:(0,n.jsx)(eg.Z,{slots:{root:w.ZP},slotProps:{root:{variant:"plain",color:"primary"}},sx:{borderRadius:40},children:(0,n.jsx)(em.Z,{})})}),(0,n.jsxs)(ej.Z,{children:[(0,n.jsx)(ew.Z,{disabled:!0,sx:{minHeight:0}}),(0,n.jsx)(eb.Z,{sx:{width:"100%",maxWidth:350,display:"grid",gap:3,padding:1},children:(0,n.jsx)("form",{onSubmit:e=>{e.preventDefault(),(0,s.Vx)((0,s.VC)({data:{conv_uid:d,conv_index:l,question:r,knowledge_space:o,score:h,ques_type:u,messages:f}})).then(e=>{Z.open({type:"success",content:"save success"})}).catch(e=>{Z.open({type:"error",content:"save error"})})},children:(0,n.jsxs)(ey.Z,{container:!0,spacing:.5,columns:13,sx:{flexGrow:1},children:[(0,n.jsx)(ey.Z,{xs:3,children:(0,n.jsx)(C,{children:c("Q_A_Category")})}),(0,n.jsx)(ey.Z,{xs:10,children:(0,n.jsx)(eZ.Z,{action:g,value:u,placeholder:"Choose one…",onChange:(e,t)=>m(null!=t?t:""),...u&&{endDecorator:(0,n.jsx)(w.ZP,{size:"sm",variant:"plain",color:"neutral",onMouseDown:e=>{e.stopPropagation()},onClick:()=>{var e;m(""),null===(e=g.current)||void 0===e||e.focusVisible()},children:(0,n.jsx)(eh.Z,{})}),indicator:null},sx:{width:"100%"},children:i&&(null===(t=Object.keys(i))||void 0===t?void 0:t.map(e=>(0,n.jsx)(e_.Z,{value:e,children:i[e]},e)))})}),(0,n.jsx)(ey.Z,{xs:3,children:(0,n.jsx)(C,{children:(0,n.jsx)(y.Z,{title:(0,n.jsx)(eb.Z,{children:(0,n.jsx)("div",{children:c("feed_back_desc")})}),variant:"solid",placement:"left",children:c("Q_A_Rating")})})}),(0,n.jsx)(ey.Z,{xs:10,sx:{pl:0,ml:0},children:(0,n.jsx)(eN.Z,{"aria-label":"Custom",step:1,min:0,max:5,valueLabelFormat:function(e){return({0:c("Lowest"),1:c("Missed"),2:c("Lost"),3:c("Incorrect"),4:c("Verbose"),5:c("Best")})[e]},valueLabelDisplay:"on",marks:[{value:0,label:"0"},{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"},{value:4,label:"4"},{value:5,label:"5"}],sx:{width:"90%",pt:3,m:2,ml:1},onChange:e=>{var t;return p(null===(t=e.target)||void 0===t?void 0:t.value)},value:h})}),(0,n.jsx)(ey.Z,{xs:13,children:(0,n.jsx)(eC.Z,{placeholder:c("Please_input_the_text"),value:f,onChange:e=>v(e.target.value),minRows:2,maxRows:4,endDecorator:(0,n.jsx)(eP.ZP,{level:"body-xs",sx:{ml:"auto"},children:c("input_count")+f.length+c("input_unit")}),sx:{width:"100%",fontSize:14}})}),(0,n.jsx)(ey.Z,{xs:13,children:(0,n.jsx)(j.Z,{type:"submit",variant:"outlined",sx:{width:"100%",height:"100%"},children:c("submit")})})]})})})]})]})},eS=l(74434),eR=e=>{var t,l;let{messages:r,onSubmit:c}=e,{dbParam:m,currentDialogue:p,scene:_,model:k,refreshDialogList:S,chatId:R,agent:E,docId:I}=(0,x.useContext)(a.p),{t:D}=(0,P.$G)(),F=(0,u.useSearchParams)(),M=null!==(t=F&&F.get("select_param"))&&void 0!==t?t:"",U=null!==(l=F&&F.get("spaceNameOriginal"))&&void 0!==l?l:"",[L,O]=(0,x.useState)(!1),[$,A]=(0,x.useState)(!1),[V,G]=(0,x.useState)(r),[z,H]=(0,x.useState)(""),[q,B]=(0,x.useState)(),T=(0,x.useRef)(null),J=(0,x.useMemo)(()=>"chat_dashboard"===_,[_]),W=f(),K=(0,x.useMemo)(()=>{switch(_){case"chat_agent":return E;case"chat_excel":return null==p?void 0:p.select_param;case"chat_flow":return M;default:return U||m}},[_,E,p,m,U,M]),X=async e=>{if(!L&&e.trim()){if("chat_agent"===_&&!E){b.ZP.warning(D("choice_agent_tip"));return}try{O(!0),await c(e,{select_param:null!=K?K:""})}finally{O(!1)}}},ee=e=>{try{return JSON.parse(e)}catch(t){return e}},[et,el]=b.ZP.useMessage(),en=async e=>{let t=null==e?void 0:e.replace(/\trelations:.*/g,""),l=N()(t);l?t?et.open({type:"success",content:D("copy_success")}):et.open({type:"warning",content:D("copy_nothing")}):et.open({type:"error",content:D("copy_failed")})},ea=async()=>{!L&&I&&(O(!0),await W(I),O(!1))};return(0,i.Z)(async()=>{let e=(0,o.a_)();e&&e.id===R&&(await X(e.message),S(),localStorage.removeItem(o.rU))},[R]),(0,x.useEffect)(()=>{let e=r;J&&(e=(0,C.cloneDeep)(r).map(e=>((null==e?void 0:e.role)==="view"&&"string"==typeof(null==e?void 0:e.context)&&(e.context=ee(null==e?void 0:e.context)),e))),G(e.filter(e=>["view","human"].includes(e.role)))},[J,r]),(0,x.useEffect)(()=>{(0,s.Vx)((0,s.Lu)()).then(e=>{var t;B(null!==(t=e[1])&&void 0!==t?t:{})}).catch(e=>{console.log(e)})},[]),(0,x.useEffect)(()=>{setTimeout(()=>{var e;null===(e=T.current)||void 0===e||e.scrollTo(0,T.current.scrollHeight)},50)},[r]),(0,n.jsxs)(n.Fragment,{children:[el,(0,n.jsx)("div",{ref:T,className:"flex flex-1 overflow-y-auto pb-8 w-full flex-col",children:(0,n.jsx)("div",{className:"flex items-center flex-1 flex-col text-sm leading-6 text-slate-900 dark:text-slate-300 sm:text-base sm:leading-7",children:V.length?V.map((e,t)=>{var l;return"chat_agent"===_?(0,n.jsx)(Y,{content:e},t):(0,n.jsx)(ex,{content:e,isChartChat:J,onLinkClick:()=>{A(!0),H(JSON.stringify(null==e?void 0:e.context,null,2))},children:"view"===e.role&&(0,n.jsxs)("div",{className:"flex w-full border-t border-gray-200 dark:border-theme-dark",children:["chat_knowledge"===_&&e.retry?(0,n.jsxs)(j.Z,{onClick:ea,slots:{root:w.ZP},slotProps:{root:{variant:"plain",color:"primary"}},children:[(0,n.jsx)(v.Z,{}),"\xa0",(0,n.jsx)("span",{className:"text-sm",children:D("Retry")})]}):null,(0,n.jsxs)("div",{className:"flex w-full flex-row-reverse",children:[(0,n.jsx)(ek,{select_param:q,conv_index:Math.ceil((t+1)/2),question:null===(l=null==V?void 0:V.filter(t=>(null==t?void 0:t.role)==="human"&&(null==t?void 0:t.order)===e.order)[0])||void 0===l?void 0:l.context,knowledge_space:U||m||""}),(0,n.jsx)(y.Z,{title:D("Copy_Btn"),children:(0,n.jsx)(j.Z,{onClick:()=>en(null==e?void 0:e.context),slots:{root:w.ZP},slotProps:{root:{variant:"plain",color:"primary"}},sx:{borderRadius:40},children:(0,n.jsx)(g.Z,{})})})]})]})},t)}):(0,n.jsx)(h.Z,{description:"Start a conversation"})})}),(0,n.jsx)("div",{className:d()("relative after:absolute after:-top-8 after:h-8 after:w-full after:bg-gradient-to-t after:from-theme-light after:to-transparent dark:after:from-theme-dark",{"cursor-not-allowed":"chat_excel"===_&&!(null==p?void 0:p.select_param)}),children:(0,n.jsxs)("div",{className:"flex flex-wrap w-full py-2 sm:pt-6 sm:pb-10 items-center",children:[k&&(0,n.jsx)("div",{className:"mr-2 flex",children:(0,ec.A)(k)}),(0,n.jsx)(Q,{loading:L,onSubmit:X,handleFinish:O})]})}),(0,n.jsx)(Z.default,{title:"JSON Editor",open:$,width:"60%",cancelButtonProps:{hidden:!0},onOk:()=>{A(!1)},onCancel:()=>{A(!1)},children:(0,n.jsx)(eS.Z,{className:"w-full h-[500px]",language:"json",value:z})})]})},eE=l(34625),eI=()=>{var e;let t=(0,u.useSearchParams)(),{scene:l,chatId:c,model:f,agent:v,setModel:g,history:j,setHistory:w}=(0,x.useContext)(a.p),{chat:b}=(0,r.Z)({}),y=null!==(e=t&&t.get("initMessage"))&&void 0!==e?e:"",[Z,_]=(0,x.useState)(!1),[N,C]=(0,x.useState)(),P=async()=>{_(!0);let[,e]=await (0,s.Vx)((0,s.$i)(c));w(null!=e?e:[]),_(!1)},k=e=>{var t;let l=null===(t=e[e.length-1])||void 0===t?void 0:t.context;if(l)try{let e="string"==typeof l?JSON.parse(l):l;C((null==e?void 0:e.template_name)==="report"?null==e?void 0:e.charts:void 0)}catch(e){console.log(e),C([])}};(0,i.Z)(async()=>{let e=(0,o.a_)();e&&e.id===c||await P()},[y,c]),(0,x.useEffect)(()=>{var e,t;if(!j.length)return;let l=null===(e=null===(t=j.filter(e=>"view"===e.role))||void 0===t?void 0:t.slice(-1))||void 0===e?void 0:e[0];(null==l?void 0:l.model_name)&&g(l.model_name),k(j)},[j.length]),(0,x.useEffect)(()=>()=>{w([])},[]);let S=(0,x.useCallback)((e,t)=>new Promise(n=>{let a=[...j,{role:"human",context:e,model_name:f,order:0,time_stamp:0},{role:"view",context:"",model_name:f,order:0,time_stamp:0}],s=a.length-1;w([...a]),b({data:{...t,chat_mode:l||"chat_normal",model_name:f,user_input:e},chatId:c,onMessage:e=>{(null==t?void 0:t.incremental)?a[s].context+=e:a[s].context=e,w([...a])},onDone:()=>{k(a),n()},onClose:()=>{k(a),n()},onError:e=>{a[s].context=e,w([...a]),n()}})}),[j,b,c,f,v,l]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(p.Z,{visible:Z}),(0,n.jsx)(eE.Z,{refreshHistory:P,modelChange:e=>{g(e)}}),(0,n.jsxs)("div",{className:"px-4 flex flex-1 flex-wrap overflow-hidden relative",children:[!!(null==N?void 0:N.length)&&(0,n.jsx)("div",{className:"w-full pb-4 xl:w-3/4 h-1/2 xl:pr-4 xl:h-full overflow-y-auto",children:(0,n.jsx)(m.ZP,{chartsData:N})}),!(null==N?void 0:N.length)&&"chat_dashboard"===l&&(0,n.jsx)(h.Z,{className:"w-full xl:w-3/4 h-1/2 xl:h-full"}),(0,n.jsx)("div",{className:d()("flex flex-1 flex-col overflow-hidden",{"px-0 xl:pl-4 h-1/2 w-full xl:w-auto xl:h-full border-t xl:border-t-0 xl:border-l dark:border-gray-800":"chat_dashboard"===l,"h-full lg:px-8":"chat_dashboard"!==l}),children:(0,n.jsx)(eR,{messages:j,onSubmit:S})})]})]})}},34625:function(e,t,l){"use strict";l.d(t,{Z:function(){return R}});var n=l(85893),a=l(41468),s=l(81799),r=l(82353),o=l(16165),i=l(96991),c=l(78045),d=l(67294);function u(){let{isContract:e,setIsContract:t,scene:l}=(0,d.useContext)(a.p),s=l&&["chat_with_db_execute","chat_dashboard"].includes(l);return s?(0,n.jsxs)(c.ZP.Group,{value:e,defaultValue:!0,buttonStyle:"solid",onChange:()=>{t(!e)},children:[(0,n.jsxs)(c.ZP.Button,{value:!1,children:[(0,n.jsx)(o.Z,{component:r.ig,className:"mr-1"}),"Preview"]}),(0,n.jsxs)(c.ZP.Button,{value:!0,children:[(0,n.jsx)(i.Z,{className:"mr-1"}),"Editor"]})]}):null}l(23293);var x=l(76212),m=l(65654),h=l(34041),p=l(67421),f=function(){let{t:e}=(0,p.$G)(),{agent:t,setAgent:l}=(0,d.useContext)(a.p),{data:s=[]}=(0,m.Z)(async()=>{let[,e]=await (0,x.Vx)((0,x.H4)());return null!=e?e:[]});return(0,n.jsx)(h.default,{className:"w-60",value:t,placeholder:e("Select_Plugins"),options:s.map(e=>({label:e.app_name,value:e.app_code})),allowClear:!0,onChange:e=>{null==l||l(e)}})},v=l(29158),g=l(49591),j=l(88484),w=l(45360),b=l(83062),y=l(23799),Z=l(14726),_=function(e){var t;let{convUid:l,chatMode:s,onComplete:r,...o}=e,[i,c]=(0,d.useState)(!1),[u,m]=w.ZP.useMessage(),[h,p]=(0,d.useState)([]),[f,_]=(0,d.useState)(),{model:N}=(0,d.useContext)(a.p),C=async e=>{var t;if(!e){w.ZP.error("Please select the *.(csv|xlsx|xls) file");return}if(!/\.(csv|xlsx|xls)$/.test(null!==(t=e.file.name)&&void 0!==t?t:"")){w.ZP.error("File type must be csv, xlsx or xls");return}p([e.file])},P=async()=>{c(!0);try{let e=new FormData;e.append("doc_file",h[0]),u.open({content:"Uploading ".concat(h[0].name),type:"loading",duration:0});let[t]=await (0,x.Vx)((0,x.qn)({convUid:l,chatMode:s,data:e,model:N,config:{timeout:36e5,onUploadProgress:e=>{let t=Math.ceil(e.loaded/(e.total||0)*100);_(t)}}}));if(t)return;w.ZP.success("success"),null==r||r()}catch(e){w.ZP.error((null==e?void 0:e.message)||"Upload Error")}finally{c(!1),u.destroy()}};return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("div",{className:"flex items-start gap-2",children:[m,(0,n.jsx)(b.Z,{placement:"bottom",title:"File cannot be changed after upload",children:(0,n.jsx)(y.default,{disabled:i,className:"mr-1",beforeUpload:()=>!1,fileList:h,name:"file",accept:".csv,.xlsx,.xls",multiple:!1,onChange:C,showUploadList:{showDownloadIcon:!1,showPreviewIcon:!1,showRemoveIcon:!1},itemRender:()=>(0,n.jsx)(n.Fragment,{}),...o,children:(0,n.jsx)(Z.ZP,{className:"flex justify-center items-center",type:"primary",disabled:i,icon:(0,n.jsx)(g.Z,{}),children:"Select File"})})}),(0,n.jsx)(Z.ZP,{type:"primary",loading:i,className:"flex justify-center items-center",disabled:!h.length,icon:(0,n.jsx)(j.Z,{}),onClick:P,children:i?100===f?"Analysis":"Uploading":"Upload"}),!!h.length&&(0,n.jsxs)("div",{className:"mt-2 text-gray-500 text-sm flex items-center",onClick:()=>p([]),children:[(0,n.jsx)(v.Z,{className:"mr-2"}),(0,n.jsx)("span",{children:null===(t=h[0])||void 0===t?void 0:t.name})]})]})})},N=function(e){let{onComplete:t}=e,{currentDialogue:l,scene:s,chatId:r}=(0,d.useContext)(a.p);return"chat_excel"!==s?null:(0,n.jsx)("div",{className:"max-w-md h-full relative",children:l?(0,n.jsxs)("div",{className:"flex h-8 overflow-hidden rounded",children:[(0,n.jsx)("div",{className:"flex items-center justify-center px-2 bg-gray-600 text-lg",children:(0,n.jsx)(v.Z,{className:"text-white"})}),(0,n.jsx)("div",{className:"flex items-center justify-center px-3 bg-gray-100 text-xs rounded-tr rounded-br dark:text-gray-800 truncate",children:l.select_param})]}):(0,n.jsx)(_,{convUid:r,chatMode:s,onComplete:t})})},C=l(98978),P=l(62418),k=l(2093),S=function(){let{scene:e,dbParam:t,setDbParam:l}=(0,d.useContext)(a.p),[s,r]=(0,d.useState)([]);(0,k.Z)(async()=>{let[,t]=await (0,x.Vx)((0,x.vD)(e));r(null!=t?t:[])},[e]);let o=(0,d.useMemo)(()=>{var e;return null===(e=s.map)||void 0===e?void 0:e.call(s,e=>({name:e.param,...P.S$[e.type]}))},[s]);return((0,d.useEffect)(()=>{(null==o?void 0:o.length)&&!t&&l(o[0].name)},[o,l,t]),null==o?void 0:o.length)?(0,n.jsx)(h.default,{value:t,className:"w-36",onChange:e=>{l(e)},children:o.map(e=>(0,n.jsxs)(h.default.Option,{children:[(0,n.jsx)(C.Z,{width:24,height:24,src:e.icon,label:e.label,className:"w-[1.5em] h-[1.5em] mr-1 inline-block mt-[-4px]"}),e.name]},e.name))}):null},R=function(e){let{refreshHistory:t,modelChange:l}=e,{scene:r,refreshDialogList:o}=(0,d.useContext)(a.p);return(0,n.jsxs)("div",{className:"w-full py-2 px-4 md:px-4 flex flex-wrap items-center justify-center gap-1 md:gap-4",children:[(0,n.jsx)(s.Z,{onChange:l}),(0,n.jsx)(S,{}),"chat_excel"===r&&(0,n.jsx)(N,{onComplete:()=>{null==o||o(),null==t||t()}}),"chat_agent"===r&&(0,n.jsx)(f,{}),(0,n.jsx)(u,{})]})}},81799:function(e,t,l){"use strict";l.d(t,{A:function(){return x}});var n=l(85893),a=l(41468),s=l(19284),r=l(34041),o=l(25675),i=l.n(o),c=l(67294),d=l(67421);let u="/models/huggingface.svg";function x(e,t){var l,a;let{width:r,height:o}=t||{};return e?(0,n.jsx)(i(),{className:"rounded-full border border-gray-200 object-contain bg-white inline-block",width:r||24,height:o||24,src:(null===(l=s.Hf[e])||void 0===l?void 0:l.icon)||u,alt:"llm"},(null===(a=s.Hf[e])||void 0===a?void 0:a.icon)||u):null}t.Z=function(e){let{onChange:t}=e,{t:l}=(0,d.$G)(),{modelList:o,model:i}=(0,c.useContext)(a.p);return!o||o.length<=0?null:(0,n.jsx)(r.default,{value:i,placeholder:l("choose_model"),className:"w-52",onChange:e=>{null==t||t(e)},children:o.map(e=>{var t;return(0,n.jsx)(r.default.Option,{children:(0,n.jsxs)("div",{className:"flex items-center",children:[x(e),(0,n.jsx)("span",{className:"ml-2",children:(null===(t=s.Hf[e])||void 0===t?void 0:t.label)||e})]})},e)})})}},91085:function(e,t,l){"use strict";var n=l(85893),a=l(32983),s=l(14726),r=l(93967),o=l.n(r),i=l(67421);t.Z=function(e){let{className:t,error:l,description:r,refresh:c}=e,{t:d}=(0,i.$G)();return(0,n.jsx)(a.Z,{image:"/empty.png",imageStyle:{width:320,height:196,margin:"0 auto",maxWidth:"100%",maxHeight:"100%"},className:o()("flex items-center justify-center flex-col h-full w-full",t),description:l?(0,n.jsx)(s.ZP,{type:"primary",onClick:c,children:d("try_again")}):null!=r?r:d("no_data")})}},45247:function(e,t,l){"use strict";var n=l(85893),a=l(50888);t.Z=function(e){let{visible:t}=e;return t?(0,n.jsx)("div",{className:"absolute w-full h-full top-0 left-0 flex justify-center items-center z-10 bg-white dark:bg-black bg-opacity-50 dark:bg-opacity-50 backdrop-blur-sm text-3xl animate-fade animate-duration-200",children:(0,n.jsx)(a.Z,{})}):null}},2440:function(e,t,l){"use strict";var n=l(25519);t.Z=()=>{var e;return JSON.parse(null!==(e=localStorage.getItem(n.C9))&&void 0!==e?e:"")}},30119:function(e,t,l){"use strict";l.d(t,{Tk:function(){return d},PR:function(){return u}});var n,a=l(62418),s=l(45360);l(96486);var r=l(87066),o=l(83454);let i=r.default.create({baseURL:null!==(n=o.env.API_BASE_URL)&&void 0!==n?n:""});i.defaults.timeout=1e4,i.interceptors.response.use(e=>e.data,e=>Promise.reject(e));let c={"content-type":"application/json","User-Id":(0,a.n5)()},d=(e,t)=>{if(t){let l=Object.keys(t).filter(e=>void 0!==t[e]&&""!==t[e]).map(e=>"".concat(e,"=").concat(t[e])).join("&");l&&(e+="?".concat(l))}return i.get("/api"+e,{headers:c}).then(e=>e).catch(e=>{s.ZP.error(e),Promise.reject(e)})},u=(e,t)=>i.post(e,t,{headers:c}).then(e=>e).catch(e=>{s.ZP.error(e),Promise.reject(e)})},23293:function(){}}]); \ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/4769.d5c1e6f7bcaa835a.js b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/4769.d5c1e6f7bcaa835a.js new file mode 100644 index 000000000..4b829cced --- /dev/null +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/4769.d5c1e6f7bcaa835a.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4769],{36517:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return eD}});var n=l(85893),a=l(41468),s=l(76212),r=l(43446),i=l(62418),o=l(2093),c=l(93967),u=l.n(c),d=l(39332),x=l(67294),m=l(39156),h=l(91085),p=l(45247),f=()=>{let{history:e,setHistory:t,chatId:l,model:n,docId:i}=(0,x.useContext)(a.p),{chat:o}=(0,r.Z)({queryAgentURL:"/knowledge/document/summary"}),c=(0,x.useCallback)(async e=>{let[,a]=await (0,s.Vx)((0,s.$i)(l)),r=[...a,{role:"human",context:"",model_name:n,order:0,time_stamp:0},{role:"view",context:"",model_name:n,order:0,time_stamp:0,retry:!0}],c=r.length-1;t([...r]),await o({data:{doc_id:e||i,model_name:n},chatId:l,onMessage:e=>{r[c].context=e,t([...r])}})},[e,n,i,l]);return c},v=l(87740),g=l(57132),j=l(66478),b=l(14553),w=l(45360),y=l(83062),Z=l(85576),_=l(20640),N=l.n(_),C=l(96486),k=l(67421),P=l(27496),S=l(25278),R=l(14726),E=l(11163),I=l(82353),O=l(1051);function D(e){let{document:t}=e;switch(t.status){case"RUNNING":return(0,n.jsx)(I.Rp,{});case"FINISHED":default:return(0,n.jsx)(I.s2,{});case"FAILED":return(0,n.jsx)(O.Z,{})}}function F(e){let{documents:t,dbParam:l}=e,a=(0,E.useRouter)(),s=e=>{a.push("/knowledge/chunk/?spaceName=".concat(l,"&id=").concat(e))};return(null==t?void 0:t.length)?(0,n.jsx)("div",{className:"absolute flex overflow-scroll h-12 top-[-35px] w-full z-10",children:t.map(e=>{let t;switch(e.status){case"RUNNING":t="#2db7f5";break;case"FINISHED":default:t="#87d068";break;case"FAILED":t="#f50"}return(0,n.jsx)(y.Z,{title:e.result,children:(0,n.jsxs)(R.ZP,{style:{color:t},onClick:()=>{s(e.id)},className:"shrink flex items-center mr-3",children:[(0,n.jsx)(D,{document:e}),e.doc_name]})},e.id)})}):null}var M=l(5392),U=l(23799);function L(e){let{dbParam:t,setDocId:l}=(0,x.useContext)(a.p),{onUploadFinish:r,handleFinish:i}=e,o=f(),[c,u]=(0,x.useState)(!1),d=async e=>{u(!0);let n=new FormData;n.append("doc_name",e.file.name),n.append("doc_file",e.file),n.append("doc_type","DOCUMENT");let a=await (0,s.Vx)((0,s.iG)(t||"default",n));if(!a[1]){u(!1);return}l(a[1]),r(),u(!1),null==i||i(!0),await o(a[1]),null==i||i(!1)};return(0,n.jsx)(U.default,{customRequest:d,showUploadList:!1,maxCount:1,multiple:!1,className:"absolute z-10 top-2 left-2",accept:".pdf,.ppt,.pptx,.xls,.xlsx,.doc,.docx,.txt,.md",children:(0,n.jsx)(R.ZP,{loading:c,size:"small",shape:"circle",icon:(0,n.jsx)(M.Z,{})})})}var $=l(30119),A=l(65654),V=l(2487),G=l(28459),z=l(55241),H=l(99859),J=l(34041),q=l(12652);let B=e=>{let{data:t,loading:l,submit:a,close:s}=e,{t:r}=(0,k.$G)(),i=e=>()=>{a(e),s()};return(0,n.jsx)("div",{style:{maxHeight:400,overflow:"auto"},children:(0,n.jsx)(V.Z,{dataSource:null==t?void 0:t.data,loading:l,rowKey:e=>e.prompt_name,renderItem:e=>(0,n.jsx)(V.Z.Item,{onClick:i(e.content),children:(0,n.jsx)(y.Z,{title:e.content,children:(0,n.jsx)(V.Z.Item.Meta,{style:{cursor:"copy"},title:e.prompt_name,description:r("Prompt_Info_Scene")+":".concat(e.chat_scene,",")+r("Prompt_Info_Sub_Scene")+":".concat(e.sub_chat_scene)})})},e.prompt_name)})})};var T=e=>{let{submit:t}=e,{t:l}=(0,k.$G)(),[a,s]=(0,x.useState)(!1),[r,i]=(0,x.useState)("common"),{data:o,loading:c}=(0,A.Z)(()=>(0,$.PR)("/prompt/list",{prompt_type:r}),{refreshDeps:[r],onError:e=>{w.ZP.error(null==e?void 0:e.message)}});return(0,n.jsx)(G.ZP,{theme:{components:{Popover:{minWidth:250}}},children:(0,n.jsx)(z.Z,{title:(0,n.jsx)(H.default.Item,{label:"Prompt "+l("Type"),children:(0,n.jsx)(J.default,{style:{width:150},value:r,onChange:e=>{i(e)},options:[{label:l("Public")+" Prompts",value:"common"},{label:l("Private")+" Prompts",value:"private"}]})}),content:(0,n.jsx)(B,{data:o,loading:c,submit:t,close:()=>{s(!1)}}),placement:"topRight",trigger:"click",open:a,onOpenChange:e=>{s(e)},children:(0,n.jsx)(y.Z,{title:l("Click_Select")+" Prompt",children:(0,n.jsx)(q.Z,{className:"bottom-[30%]"})})})})},W=function(e){let{children:t,loading:l,onSubmit:r,handleFinish:i,placeholder:o,...c}=e,{dbParam:u,scene:d}=(0,x.useContext)(a.p),[m,h]=(0,x.useState)(""),p=(0,x.useMemo)(()=>"chat_knowledge"===d,[d]),[f,v]=(0,x.useState)([]),g=(0,x.useRef)(0);async function j(){if(!u)return null;let[e,t]=await (0,s.Vx)((0,s._Q)(u,{page:1,page_size:g.current}));v((null==t?void 0:t.data)||[])}(0,x.useEffect)(()=>{p&&j()},[u]);let b=async()=>{g.current+=1,await j()};return(0,n.jsxs)("div",{className:"flex-1 relative",children:[(0,n.jsx)(F,{documents:f,dbParam:u}),p&&(0,n.jsx)(L,{handleFinish:i,onUploadFinish:b,className:"absolute z-10 top-2 left-2"}),(0,n.jsx)(S.default.TextArea,{className:"flex-1 ".concat(p?"pl-10":""," pr-10"),size:"large",value:m,autoSize:{minRows:1,maxRows:4},...c,onPressEnter:e=>{if(m.trim()&&13===e.keyCode){if(e.shiftKey){e.preventDefault(),h(e=>e+"\n");return}r(m),setTimeout(()=>{h("")},0)}},onChange:e=>{if("number"==typeof c.maxLength){h(e.target.value.substring(0,c.maxLength));return}h(e.target.value)},placeholder:o}),(0,n.jsx)(R.ZP,{className:"ml-2 flex items-center justify-center absolute right-0 bottom-0",size:"large",type:"text",loading:l,icon:(0,n.jsx)(P.Z,{}),onClick:()=>{r(m)}}),(0,n.jsx)(T,{submit:e=>{h(m+e)}}),t]})},Q=l(32975),K=l(14660),X=l(13185),Y=(0,x.memo)(function(e){var t;let{content:l}=e,{scene:s}=(0,x.useContext)(a.p),r="view"===l.role;return(0,n.jsx)("div",{className:u()("relative w-full p-2 md:p-4 rounded-xl break-words",{"bg-white dark:bg-[#232734]":r,"lg:w-full xl:w-full pl-0":["chat_with_db_execute","chat_dashboard"].includes(s)}),children:r?(0,n.jsx)(Q.Z,{components:X.Z,rehypePlugins:[K.Z],children:null==(t=l.context)?void 0:t.replace(/]+)>/gi,"
").replace(/]+)>/gi,"")}):(0,n.jsx)("div",{className:"",children:l.context})})}),ee=l(24019),et=l(50888),el=l(97937),en=l(63606),ea=l(50228),es=l(87547),er=l(89035),ei=l(66309),eo=l(55186),ec=l(81799);let eu={todo:{bgClass:"bg-gray-500",icon:(0,n.jsx)(ee.Z,{className:"ml-2"})},runing:{bgClass:"bg-blue-500",icon:(0,n.jsx)(et.Z,{className:"ml-2"})},failed:{bgClass:"bg-red-500",icon:(0,n.jsx)(el.Z,{className:"ml-2"})},completed:{bgClass:"bg-green-500",icon:(0,n.jsx)(en.Z,{className:"ml-2"})}};function ed(e){return e.replaceAll("\\n","\n").replace(/]+)>/gi,"
").replace(/]+)>/gi,"")}var ex=(0,x.memo)(function(e){let{children:t,content:l,isChartChat:s,onLinkClick:r}=e,{scene:i}=(0,x.useContext)(a.p),{context:o,model_name:c,role:d}=l,m="view"===d,{relations:h,value:p,cachePluginContext:f}=(0,x.useMemo)(()=>{if("string"!=typeof o)return{relations:[],value:"",cachePluginContext:[]};let[e,t]=o.split(" relations:"),l=t?t.split(","):[],n=[],a=0,s=e.replace(/]*>[^<]*<\/dbgpt-view>/gi,e=>{try{var t;let l=e.replaceAll("\n","\\n").replace(/<[^>]*>|<\/[^>]*>/gm,""),s=JSON.parse(l),r="".concat(a,"");return n.push({...s,result:ed(null!==(t=s.result)&&void 0!==t?t:"")}),a++,r}catch(t){return console.log(t.message,t),e}});return{relations:l,cachePluginContext:n,value:s}},[o]),v=(0,x.useMemo)(()=>({"custom-view"(e){var t;let{children:l}=e,a=+l.toString();if(!f[a])return l;let{name:s,status:r,err_msg:i,result:o}=f[a],{bgClass:c,icon:d}=null!==(t=eu[r])&&void 0!==t?t:{};return(0,n.jsxs)("div",{className:"bg-white dark:bg-[#212121] rounded-lg overflow-hidden my-2 flex flex-col lg:max-w-[80%]",children:[(0,n.jsxs)("div",{className:u()("flex px-4 md:px-6 py-2 items-center text-white text-sm",c),children:[s,d]}),o?(0,n.jsx)("div",{className:"px-4 md:px-6 py-4 text-sm",children:(0,n.jsx)(Q.Z,{components:X.Z,rehypePlugins:[K.Z],remarkPlugins:[eo.Z],children:null!=o?o:""})}):(0,n.jsx)("div",{className:"px-4 md:px-6 py-4 text-sm",children:i})]})}}),[o,f]);return m||o?(0,n.jsxs)("div",{className:u()("relative flex flex-wrap w-full p-2 md:p-4 rounded-xl break-words",{"bg-white dark:bg-[#232734]":m,"lg:w-full xl:w-full pl-0":["chat_with_db_execute","chat_dashboard"].includes(i)}),children:[(0,n.jsx)("div",{className:"mr-2 flex flex-shrink-0 items-center justify-center h-7 w-7 rounded-full text-lg sm:mr-4",children:m?(0,ec.A)(c)||(0,n.jsx)(ea.Z,{}):(0,n.jsx)(es.Z,{})}),(0,n.jsxs)("div",{className:"flex-1 overflow-hidden items-center text-md leading-8 pb-2",children:[!m&&"string"==typeof o&&o,m&&s&&"object"==typeof o&&(0,n.jsxs)("div",{children:["[".concat(o.template_name,"]: "),(0,n.jsxs)("span",{className:"text-theme-primary cursor-pointer",onClick:r,children:[(0,n.jsx)(er.Z,{className:"mr-1"}),o.template_introduce||"More Details"]})]}),m&&"string"==typeof o&&(0,n.jsx)(Q.Z,{components:{...X.Z,...v},rehypePlugins:[K.Z],remarkPlugins:[eo.Z],children:ed(p)}),!!(null==h?void 0:h.length)&&(0,n.jsx)("div",{className:"flex flex-wrap mt-2",children:null==h?void 0:h.map((e,t)=>(0,n.jsx)(ei.Z,{color:"#108ee9",children:e},e+t))})]}),t]}):(0,n.jsx)("div",{className:"h-12"})}),em=l(59301),eh=l(41132),ep=l(74312),ef=l(3414),ev=l(72868),eg=l(59562),ej=l(25359),eb=l(7203),ew=l(48665),ey=l(26047),eZ=l(99056),e_=l(57814),eN=l(64415),eC=l(21694),ek=l(40911),eP=e=>{var t;let{conv_index:l,question:r,knowledge_space:i,select_param:o}=e,{t:c}=(0,k.$G)(),{chatId:u}=(0,x.useContext)(a.p),[d,m]=(0,x.useState)(""),[h,p]=(0,x.useState)(4),[f,v]=(0,x.useState)(""),g=(0,x.useRef)(null),[Z,_]=w.ZP.useMessage(),N=(0,x.useCallback)((e,t)=>{t?(0,s.Vx)((0,s.Eb)(u,l)).then(e=>{var t,l,n,a;let s=null!==(t=e[1])&&void 0!==t?t:{};m(null!==(l=s.ques_type)&&void 0!==l?l:""),p(parseInt(null!==(n=s.score)&&void 0!==n?n:"4")),v(null!==(a=s.messages)&&void 0!==a?a:"")}).catch(e=>{console.log(e)}):(m(""),p(4),v(""))},[u,l]),C=(0,ep.Z)(ef.Z)(e=>{let{theme:t}=e;return{backgroundColor:"dark"===t.palette.mode?"#FBFCFD":"#0E0E10",...t.typography["body-sm"],padding:t.spacing(1),display:"flex",alignItems:"center",justifyContent:"center",borderRadius:4,width:"100%",height:"100%"}});return(0,n.jsxs)(ev.L,{onOpenChange:N,children:[_,(0,n.jsx)(y.Z,{title:c("Rating"),children:(0,n.jsx)(eg.Z,{slots:{root:b.ZP},slotProps:{root:{variant:"plain",color:"primary"}},sx:{borderRadius:40},children:(0,n.jsx)(em.Z,{})})}),(0,n.jsxs)(ej.Z,{children:[(0,n.jsx)(eb.Z,{disabled:!0,sx:{minHeight:0}}),(0,n.jsx)(ew.Z,{sx:{width:"100%",maxWidth:350,display:"grid",gap:3,padding:1},children:(0,n.jsx)("form",{onSubmit:e=>{e.preventDefault(),(0,s.Vx)((0,s.VC)({data:{conv_uid:u,conv_index:l,question:r,knowledge_space:i,score:h,ques_type:d,messages:f}})).then(e=>{Z.open({type:"success",content:"save success"})}).catch(e=>{Z.open({type:"error",content:"save error"})})},children:(0,n.jsxs)(ey.Z,{container:!0,spacing:.5,columns:13,sx:{flexGrow:1},children:[(0,n.jsx)(ey.Z,{xs:3,children:(0,n.jsx)(C,{children:c("Q_A_Category")})}),(0,n.jsx)(ey.Z,{xs:10,children:(0,n.jsx)(eZ.Z,{action:g,value:d,placeholder:"Choose one…",onChange:(e,t)=>m(null!=t?t:""),...d&&{endDecorator:(0,n.jsx)(b.ZP,{size:"sm",variant:"plain",color:"neutral",onMouseDown:e=>{e.stopPropagation()},onClick:()=>{var e;m(""),null===(e=g.current)||void 0===e||e.focusVisible()},children:(0,n.jsx)(eh.Z,{})}),indicator:null},sx:{width:"100%"},children:o&&(null===(t=Object.keys(o))||void 0===t?void 0:t.map(e=>(0,n.jsx)(e_.Z,{value:e,children:o[e]},e)))})}),(0,n.jsx)(ey.Z,{xs:3,children:(0,n.jsx)(C,{children:(0,n.jsx)(y.Z,{title:(0,n.jsx)(ew.Z,{children:(0,n.jsx)("div",{children:c("feed_back_desc")})}),variant:"solid",placement:"left",children:c("Q_A_Rating")})})}),(0,n.jsx)(ey.Z,{xs:10,sx:{pl:0,ml:0},children:(0,n.jsx)(eN.Z,{"aria-label":"Custom",step:1,min:0,max:5,valueLabelFormat:function(e){return({0:c("Lowest"),1:c("Missed"),2:c("Lost"),3:c("Incorrect"),4:c("Verbose"),5:c("Best")})[e]},valueLabelDisplay:"on",marks:[{value:0,label:"0"},{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"},{value:4,label:"4"},{value:5,label:"5"}],sx:{width:"90%",pt:3,m:2,ml:1},onChange:e=>{var t;return p(null===(t=e.target)||void 0===t?void 0:t.value)},value:h})}),(0,n.jsx)(ey.Z,{xs:13,children:(0,n.jsx)(eC.Z,{placeholder:c("Please_input_the_text"),value:f,onChange:e=>v(e.target.value),minRows:2,maxRows:4,endDecorator:(0,n.jsx)(ek.ZP,{level:"body-xs",sx:{ml:"auto"},children:c("input_count")+f.length+c("input_unit")}),sx:{width:"100%",fontSize:14}})}),(0,n.jsx)(ey.Z,{xs:13,children:(0,n.jsx)(j.Z,{type:"submit",variant:"outlined",sx:{width:"100%",height:"100%"},children:c("submit")})})]})})})]})]})},eS=l(74434),eR=e=>{var t,l;let{messages:r,onSubmit:c,onFormatContent:m}=e,{dbParam:p,currentDialogue:_,scene:P,model:S,refreshDialogList:R,chatId:E,agent:I,docId:O}=(0,x.useContext)(a.p),{t:D}=(0,k.$G)(),F=(0,d.useSearchParams)(),M=null!==(t=F&&F.get("select_param"))&&void 0!==t?t:"",U=null!==(l=F&&F.get("spaceNameOriginal"))&&void 0!==l?l:"",[L,$]=(0,x.useState)(!1),[A,V]=(0,x.useState)(!1),[G,z]=(0,x.useState)(r),[H,J]=(0,x.useState)(""),[q,B]=(0,x.useState)(),T=(0,x.useRef)(null),Q=(0,x.useMemo)(()=>"chat_dashboard"===P,[P]),K=f(),X=(0,x.useMemo)(()=>{switch(P){case"chat_agent":return I;case"chat_excel":return null==_?void 0:_.select_param;case"chat_flow":return M;default:return U||p}},[P,I,_,p,U,M]),ee=async e=>{if(!L&&e.trim()){if("chat_agent"===P&&!I){w.ZP.warning(D("choice_agent_tip"));return}try{$(!0),await c(e,{select_param:null!=X?X:""})}finally{$(!1)}}},et=e=>Q&&m&&"string"==typeof e?m(e):e,[el,en]=w.ZP.useMessage(),ea=async e=>{let t=Q&&m&&"string"==typeof e?m(e):e,l=null==t?void 0:t.replace(/\trelations:.*/g,""),n=N()(l);n?l?el.open({type:"success",content:D("copy_success")}):el.open({type:"warning",content:D("copy_nothing")}):el.open({type:"error",content:D("copy_failed")})},es=async()=>{!L&&O&&($(!0),await K(O),$(!1))};return(0,o.Z)(async()=>{let e=(0,i.a_)();e&&e.id===E&&(await ee(e.message),R(),localStorage.removeItem(i.rU))},[E]),(0,x.useEffect)(()=>{let e=r;Q&&(e=(0,C.cloneDeep)(r).map(e=>{if((null==e?void 0:e.role)==="view"&&"string"==typeof(null==e?void 0:e.context))try{e.context=JSON.parse(e.context)}catch(t){m&&(e.context=et(e.context))}return e})),z(e.filter(e=>["view","human"].includes(e.role)))},[Q,r,m]),(0,x.useEffect)(()=>{(0,s.Vx)((0,s.Lu)()).then(e=>{var t;B(null!==(t=e[1])&&void 0!==t?t:{})}).catch(e=>{console.log(e)})},[]),(0,x.useEffect)(()=>{setTimeout(()=>{var e;null===(e=T.current)||void 0===e||e.scrollTo(0,T.current.scrollHeight)},50)},[r]),(0,n.jsxs)(n.Fragment,{children:[en,(0,n.jsx)("div",{ref:T,className:"flex flex-1 overflow-y-auto pb-8 w-full flex-col",children:(0,n.jsx)("div",{className:"flex items-center flex-1 flex-col text-sm leading-6 text-slate-900 dark:text-slate-300 sm:text-base sm:leading-7",children:G.length?G.map((e,t)=>{var l;return"chat_agent"===P?(0,n.jsx)(Y,{content:e},t):(0,n.jsx)(ex,{content:e,isChartChat:Q,onLinkClick:()=>{V(!0),J(JSON.stringify(null==e?void 0:e.context,null,2))},children:"view"===e.role&&(0,n.jsxs)("div",{className:"flex w-full border-t border-gray-200 dark:border-theme-dark",children:["chat_knowledge"===P&&e.retry?(0,n.jsxs)(j.Z,{onClick:es,slots:{root:b.ZP},slotProps:{root:{variant:"plain",color:"primary"}},children:[(0,n.jsx)(v.Z,{}),"\xa0",(0,n.jsx)("span",{className:"text-sm",children:D("Retry")})]}):null,(0,n.jsxs)("div",{className:"flex w-full flex-row-reverse",children:[(0,n.jsx)(eP,{select_param:q,conv_index:Math.ceil((t+1)/2),question:null===(l=null==G?void 0:G.filter(t=>(null==t?void 0:t.role)==="human"&&(null==t?void 0:t.order)===e.order)[0])||void 0===l?void 0:l.context,knowledge_space:U||p||""}),(0,n.jsx)(y.Z,{title:D("Copy_Btn"),children:(0,n.jsx)(j.Z,{onClick:()=>ea(null==e?void 0:e.context),slots:{root:b.ZP},slotProps:{root:{variant:"plain",color:"primary"}},sx:{borderRadius:40},children:(0,n.jsx)(g.Z,{})})})]})]})},t)}):(0,n.jsx)(h.Z,{description:"Start a conversation"})})}),(0,n.jsx)("div",{className:u()("relative after:absolute after:-top-8 after:h-8 after:w-full after:bg-gradient-to-t after:from-theme-light after:to-transparent dark:after:from-theme-dark",{"cursor-not-allowed":"chat_excel"===P&&!(null==_?void 0:_.select_param)}),children:(0,n.jsxs)("div",{className:"flex flex-wrap w-full py-2 sm:pt-6 sm:pb-10 items-center",children:[S&&(0,n.jsx)("div",{className:"mr-2 flex",children:(0,ec.A)(S)}),(0,n.jsx)(W,{loading:L,onSubmit:ee,handleFinish:$})]})}),(0,n.jsx)(Z.default,{title:"JSON Editor",open:A,width:"60%",cancelButtonProps:{hidden:!0},onOk:()=>{V(!1)},onCancel:()=>{V(!1)},children:(0,n.jsx)(eS.Z,{className:"w-full h-[500px]",language:"json",value:H})})]})},eE=l(34625);let eI=e=>{if("string"!=typeof e)return e;if(e.startsWith("```vis-thinking")||e.includes("```vis-thinking")){let t=e.indexOf('{"');if(-1!==t){let l=e.substring(t);try{return JSON.parse(l)}catch(t){let e=l.replace(/```$/g,"").trim();try{return JSON.parse(e)}catch(e){return console.error("Error parsing cleaned JSON:",e),null}}}}try{return"string"==typeof e?JSON.parse(e):e}catch(t){return console.log("Not JSON format or vis-thinking format, returning original content"),e}},eO=e=>{if("string"!=typeof e)return e;if(e.startsWith("```vis-thinking")||e.includes("```vis-thinking")){let t=e.indexOf("```vis-thinking"),l=t+15,n=e.indexOf("```",l);if(-1!==n)return e.substring(t,n+3)}return e};var eD=()=>{var e;let t=(0,d.useSearchParams)(),{scene:l,chatId:c,model:f,agent:v,setModel:g,history:j,setHistory:b}=(0,x.useContext)(a.p),{chat:w}=(0,r.Z)({}),y=null!==(e=t&&t.get("initMessage"))&&void 0!==e?e:"",[Z,_]=(0,x.useState)(!1),[N,C]=(0,x.useState)(),k=async()=>{_(!0);let[,e]=await (0,s.Vx)((0,s.$i)(c));b(null!=e?e:[]),_(!1)},P=e=>{var t;let l=null===(t=e[e.length-1])||void 0===t?void 0:t.context;if(l)try{let e=eI(l),t="object"==typeof e?e:"string"==typeof l?JSON.parse(l):l;C((null==t?void 0:t.template_name)==="report"?null==t?void 0:t.charts:void 0)}catch(e){console.log(e),C([])}};(0,o.Z)(async()=>{let e=(0,i.a_)();e&&e.id===c||await k()},[y,c]),(0,x.useEffect)(()=>{var e,t;if(!j.length)return;let l=null===(e=null===(t=j.filter(e=>"view"===e.role))||void 0===t?void 0:t.slice(-1))||void 0===e?void 0:e[0];(null==l?void 0:l.model_name)&&g(l.model_name),P(j)},[j.length]),(0,x.useEffect)(()=>()=>{b([])},[]);let S=(0,x.useCallback)((e,t)=>new Promise(n=>{let a=[...j,{role:"human",context:e,model_name:f,order:0,time_stamp:0},{role:"view",context:"",model_name:f,order:0,time_stamp:0}],s=a.length-1;b([...a]),w({data:{...t,chat_mode:l||"chat_normal",model_name:f,user_input:e},chatId:c,onMessage:e=>{(null==t?void 0:t.incremental)?a[s].context+=e:a[s].context=e,b([...a])},onDone:()=>{P(a),n()},onClose:()=>{P(a),n()},onError:e=>{a[s].context=e,b([...a]),n()}})}),[j,w,c,f,v,l]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(p.Z,{visible:Z}),(0,n.jsx)(eE.Z,{refreshHistory:k,modelChange:e=>{g(e)}}),(0,n.jsxs)("div",{className:"px-4 flex flex-1 flex-wrap overflow-hidden relative",children:[!!(null==N?void 0:N.length)&&(0,n.jsx)("div",{className:"w-full pb-4 xl:w-3/4 h-1/2 xl:pr-4 xl:h-full overflow-y-auto",children:(0,n.jsx)(m.ZP,{chartsData:N})}),!(null==N?void 0:N.length)&&"chat_dashboard"===l&&(0,n.jsx)(h.Z,{className:"w-full xl:w-3/4 h-1/2 xl:h-full"}),(0,n.jsx)("div",{className:u()("flex flex-1 flex-col overflow-hidden",{"px-0 xl:pl-4 h-1/2 w-full xl:w-auto xl:h-full border-t xl:border-t-0 xl:border-l dark:border-gray-800":"chat_dashboard"===l,"h-full lg:px-8":"chat_dashboard"!==l}),children:(0,n.jsx)(eR,{messages:j,onSubmit:S,onFormatContent:eO})})]})]})}},34625:function(e,t,l){"use strict";l.d(t,{Z:function(){return R}});var n=l(85893),a=l(41468),s=l(81799),r=l(82353),i=l(16165),o=l(96991),c=l(78045),u=l(67294);function d(){let{isContract:e,setIsContract:t,scene:l}=(0,u.useContext)(a.p),s=l&&["chat_with_db_execute","chat_dashboard"].includes(l);return s?(0,n.jsxs)(c.ZP.Group,{value:e,defaultValue:!0,buttonStyle:"solid",onChange:()=>{t(!e)},children:[(0,n.jsxs)(c.ZP.Button,{value:!1,children:[(0,n.jsx)(i.Z,{component:r.ig,className:"mr-1"}),"Preview"]}),(0,n.jsxs)(c.ZP.Button,{value:!0,children:[(0,n.jsx)(o.Z,{className:"mr-1"}),"Editor"]})]}):null}l(23293);var x=l(76212),m=l(65654),h=l(34041),p=l(67421),f=function(){let{t:e}=(0,p.$G)(),{agent:t,setAgent:l}=(0,u.useContext)(a.p),{data:s=[]}=(0,m.Z)(async()=>{let[,e]=await (0,x.Vx)((0,x.H4)());return null!=e?e:[]});return(0,n.jsx)(h.default,{className:"w-60",value:t,placeholder:e("Select_Plugins"),options:s.map(e=>({label:e.app_name,value:e.app_code})),allowClear:!0,onChange:e=>{null==l||l(e)}})},v=l(29158),g=l(49591),j=l(88484),b=l(45360),w=l(83062),y=l(23799),Z=l(14726),_=function(e){var t;let{convUid:l,chatMode:s,onComplete:r,...i}=e,[o,c]=(0,u.useState)(!1),[d,m]=b.ZP.useMessage(),[h,p]=(0,u.useState)([]),[f,_]=(0,u.useState)(),{model:N}=(0,u.useContext)(a.p),C=async e=>{var t;if(!e){b.ZP.error("Please select the *.(csv|xlsx|xls) file");return}if(!/\.(csv|xlsx|xls)$/.test(null!==(t=e.file.name)&&void 0!==t?t:"")){b.ZP.error("File type must be csv, xlsx or xls");return}p([e.file])},k=async()=>{c(!0);try{let e=new FormData;e.append("doc_file",h[0]),d.open({content:"Uploading ".concat(h[0].name),type:"loading",duration:0});let[t]=await (0,x.Vx)((0,x.qn)({convUid:l,chatMode:s,data:e,model:N,config:{timeout:36e5,onUploadProgress:e=>{let t=Math.ceil(e.loaded/(e.total||0)*100);_(t)}}}));if(t)return;b.ZP.success("success"),null==r||r()}catch(e){b.ZP.error((null==e?void 0:e.message)||"Upload Error")}finally{c(!1),d.destroy()}};return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("div",{className:"flex items-start gap-2",children:[m,(0,n.jsx)(w.Z,{placement:"bottom",title:"File cannot be changed after upload",children:(0,n.jsx)(y.default,{disabled:o,className:"mr-1",beforeUpload:()=>!1,fileList:h,name:"file",accept:".csv,.xlsx,.xls",multiple:!1,onChange:C,showUploadList:{showDownloadIcon:!1,showPreviewIcon:!1,showRemoveIcon:!1},itemRender:()=>(0,n.jsx)(n.Fragment,{}),...i,children:(0,n.jsx)(Z.ZP,{className:"flex justify-center items-center",type:"primary",disabled:o,icon:(0,n.jsx)(g.Z,{}),children:"Select File"})})}),(0,n.jsx)(Z.ZP,{type:"primary",loading:o,className:"flex justify-center items-center",disabled:!h.length,icon:(0,n.jsx)(j.Z,{}),onClick:k,children:o?100===f?"Analysis":"Uploading":"Upload"}),!!h.length&&(0,n.jsxs)("div",{className:"mt-2 text-gray-500 text-sm flex items-center",onClick:()=>p([]),children:[(0,n.jsx)(v.Z,{className:"mr-2"}),(0,n.jsx)("span",{children:null===(t=h[0])||void 0===t?void 0:t.name})]})]})})},N=function(e){let{onComplete:t}=e,{currentDialogue:l,scene:s,chatId:r}=(0,u.useContext)(a.p);return"chat_excel"!==s?null:(0,n.jsx)("div",{className:"max-w-md h-full relative",children:l?(0,n.jsxs)("div",{className:"flex h-8 overflow-hidden rounded",children:[(0,n.jsx)("div",{className:"flex items-center justify-center px-2 bg-gray-600 text-lg",children:(0,n.jsx)(v.Z,{className:"text-white"})}),(0,n.jsx)("div",{className:"flex items-center justify-center px-3 bg-gray-100 text-xs rounded-tr rounded-br dark:text-gray-800 truncate",children:l.select_param})]}):(0,n.jsx)(_,{convUid:r,chatMode:s,onComplete:t})})},C=l(98978),k=l(62418),P=l(2093),S=function(){let{scene:e,dbParam:t,setDbParam:l}=(0,u.useContext)(a.p),[s,r]=(0,u.useState)([]);(0,P.Z)(async()=>{let[,t]=await (0,x.Vx)((0,x.vD)(e));r(null!=t?t:[])},[e]);let i=(0,u.useMemo)(()=>{var e;return null===(e=s.map)||void 0===e?void 0:e.call(s,e=>({name:e.param,...k.S$[e.type]}))},[s]);return((0,u.useEffect)(()=>{(null==i?void 0:i.length)&&!t&&l(i[0].name)},[i,l,t]),null==i?void 0:i.length)?(0,n.jsx)(h.default,{value:t,className:"w-36",onChange:e=>{l(e)},children:i.map(e=>(0,n.jsxs)(h.default.Option,{children:[(0,n.jsx)(C.Z,{width:24,height:24,src:e.icon,label:e.label,className:"w-[1.5em] h-[1.5em] mr-1 inline-block mt-[-4px]"}),e.name]},e.name))}):null},R=function(e){let{refreshHistory:t,modelChange:l}=e,{scene:r,refreshDialogList:i}=(0,u.useContext)(a.p);return(0,n.jsxs)("div",{className:"w-full py-2 px-4 md:px-4 flex flex-wrap items-center justify-center gap-1 md:gap-4",children:[(0,n.jsx)(s.Z,{onChange:l}),(0,n.jsx)(S,{}),"chat_excel"===r&&(0,n.jsx)(N,{onComplete:()=>{null==i||i(),null==t||t()}}),"chat_agent"===r&&(0,n.jsx)(f,{}),(0,n.jsx)(d,{})]})}},81799:function(e,t,l){"use strict";l.d(t,{A:function(){return x}});var n=l(85893),a=l(41468),s=l(19284),r=l(34041),i=l(25675),o=l.n(i),c=l(67294),u=l(67421);let d="/models/huggingface.svg";function x(e,t){var l,a;let{width:r,height:i}=t||{};return e?(0,n.jsx)(o(),{className:"rounded-full border border-gray-200 object-contain bg-white inline-block",width:r||24,height:i||24,src:(null===(l=s.Hf[e])||void 0===l?void 0:l.icon)||d,alt:"llm"},(null===(a=s.Hf[e])||void 0===a?void 0:a.icon)||d):null}t.Z=function(e){let{onChange:t}=e,{t:l}=(0,u.$G)(),{modelList:i,model:o}=(0,c.useContext)(a.p);return!i||i.length<=0?null:(0,n.jsx)(r.default,{value:o,placeholder:l("choose_model"),className:"w-52",onChange:e=>{null==t||t(e)},children:i.map(e=>{var t;return(0,n.jsx)(r.default.Option,{children:(0,n.jsxs)("div",{className:"flex items-center",children:[x(e),(0,n.jsx)("span",{className:"ml-2",children:(null===(t=s.Hf[e])||void 0===t?void 0:t.label)||e})]})},e)})})}},91085:function(e,t,l){"use strict";var n=l(85893),a=l(32983),s=l(14726),r=l(93967),i=l.n(r),o=l(67421);t.Z=function(e){let{className:t,error:l,description:r,refresh:c}=e,{t:u}=(0,o.$G)();return(0,n.jsx)(a.Z,{image:"/empty.png",imageStyle:{width:320,height:196,margin:"0 auto",maxWidth:"100%",maxHeight:"100%"},className:i()("flex items-center justify-center flex-col h-full w-full",t),description:l?(0,n.jsx)(s.ZP,{type:"primary",onClick:c,children:u("try_again")}):null!=r?r:u("no_data")})}},45247:function(e,t,l){"use strict";var n=l(85893),a=l(50888);t.Z=function(e){let{visible:t}=e;return t?(0,n.jsx)("div",{className:"absolute w-full h-full top-0 left-0 flex justify-center items-center z-10 bg-white dark:bg-black bg-opacity-50 dark:bg-opacity-50 backdrop-blur-sm text-3xl animate-fade animate-duration-200",children:(0,n.jsx)(a.Z,{})}):null}},2440:function(e,t,l){"use strict";var n=l(25519);t.Z=()=>{var e;return JSON.parse(null!==(e=localStorage.getItem(n.C9))&&void 0!==e?e:"")}},30119:function(e,t,l){"use strict";l.d(t,{Tk:function(){return u},PR:function(){return d}});var n,a=l(62418),s=l(45360);l(96486);var r=l(87066),i=l(83454);let o=r.default.create({baseURL:null!==(n=i.env.API_BASE_URL)&&void 0!==n?n:""});o.defaults.timeout=1e4,o.interceptors.response.use(e=>e.data,e=>Promise.reject(e));let c={"content-type":"application/json","User-Id":(0,a.n5)()},u=(e,t)=>{if(t){let l=Object.keys(t).filter(e=>void 0!==t[e]&&""!==t[e]).map(e=>"".concat(e,"=").concat(t[e])).join("&");l&&(e+="?".concat(l))}return o.get("/api"+e,{headers:c}).then(e=>e).catch(e=>{s.ZP.error(e),Promise.reject(e)})},d=(e,t)=>o.post(e,t,{headers:c}).then(e=>e).catch(e=>{s.ZP.error(e),Promise.reject(e)})},23293:function(){}}]); \ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/pages/mobile/chat/components/Header-9dc1942a4484521c.js b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/pages/mobile/chat/components/Header-812c0dd51a64e53b.js similarity index 96% rename from packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/pages/mobile/chat/components/Header-9dc1942a4484521c.js rename to packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/pages/mobile/chat/components/Header-812c0dd51a64e53b.js index 485e0a2a8..0f0c825ba 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/pages/mobile/chat/components/Header-9dc1942a4484521c.js +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/pages/mobile/chat/components/Header-812c0dd51a64e53b.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1244],{85335:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/mobile/chat/components/Header",function(){return n(56397)}])},2440:function(e,t,n){"use strict";var r=n(25519);t.Z=()=>{var e;return JSON.parse(null!==(e=localStorage.getItem(r.C9))&&void 0!==e?e:"")}},39718:function(e,t,n){"use strict";var r=n(85893),c=n(19284),a=n(25675),l=n.n(a),u=n(67294);t.Z=(0,u.memo)(e=>{let{width:t,height:n,model:a}=e,s=(0,u.useMemo)(()=>{let e=null==a?void 0:a.replaceAll("-","_").split("_")[0],t=Object.keys(c.Me);for(let n=0;n{let{width:t,height:n,scene:u}=e,s=(0,l.useCallback)(()=>{switch(u){case"chat_knowledge":return c.je;case"chat_with_db_execute":return c.zM;case"chat_excel":return c.DL;case"chat_with_db_qa":case"chat_dba":return c.RD;case"chat_dashboard":return c.In;case"chat_agent":return c.si;case"chat_normal":return c.O7;default:return}},[u]);return(0,r.jsx)(a.Z,{className:"w-".concat(t||7," h-").concat(n||7),component:s()})}},70065:function(e,t,n){"use strict";var r=n(91321);let c=(0,r.Z)({scriptUrl:"//at.alicdn.com/t/a/font_4440880_ljyggdw605.js"});t.Z=c}},function(e){e.O(0,[2913,3791,5278,8791,4330,1049,5030,3799,2684,6231,5654,3913,9774,2888,179],function(){return e(e.s=85335)}),_N_E=e.O()}]); \ No newline at end of file +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1244],{85335:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/mobile/chat/components/Header",function(){return n(56397)}])},2440:function(e,t,n){"use strict";var r=n(25519);t.Z=()=>{var e;return JSON.parse(null!==(e=localStorage.getItem(r.C9))&&void 0!==e?e:"")}},39718:function(e,t,n){"use strict";var r=n(85893),c=n(19284),a=n(25675),l=n.n(a),u=n(67294);t.Z=(0,u.memo)(e=>{let{width:t,height:n,model:a}=e,s=(0,u.useMemo)(()=>{let e=null==a?void 0:a.replaceAll("-","_").split("_")[0],t=Object.keys(c.Me);for(let n=0;n{let{width:t,height:n,scene:u}=e,s=(0,l.useCallback)(()=>{switch(u){case"chat_knowledge":return c.je;case"chat_with_db_execute":return c.zM;case"chat_excel":return c.DL;case"chat_with_db_qa":case"chat_dba":return c.RD;case"chat_dashboard":return c.In;case"chat_agent":return c.si;case"chat_normal":return c.O7;default:return}},[u]);return(0,r.jsx)(a.Z,{className:"w-".concat(t||7," h-").concat(n||7),component:s()})}},70065:function(e,t,n){"use strict";var r=n(91321);let c=(0,r.Z)({scriptUrl:"//at.alicdn.com/t/a/font_4440880_ljyggdw605.js"});t.Z=c}},function(e){e.O(0,[2913,3791,5278,8791,4330,1049,5030,3799,2684,6231,1390,3913,9774,2888,179],function(){return e(e.s=85335)}),_N_E=e.O()}]); \ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/pages/mobile/chat/components/InputContainer-fa85310076f5fa4d.js b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/pages/mobile/chat/components/InputContainer-d9adf4858c7f1201.js similarity index 96% rename from packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/pages/mobile/chat/components/InputContainer-fa85310076f5fa4d.js rename to packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/pages/mobile/chat/components/InputContainer-d9adf4858c7f1201.js index c94002926..626ebe9e6 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/pages/mobile/chat/components/InputContainer-fa85310076f5fa4d.js +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/pages/mobile/chat/components/InputContainer-d9adf4858c7f1201.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3882],{69487:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/mobile/chat/components/InputContainer",function(){return n(74638)}])},2440:function(e,t,n){"use strict";var r=n(25519);t.Z=()=>{var e;return JSON.parse(null!==(e=localStorage.getItem(r.C9))&&void 0!==e?e:"")}},39718:function(e,t,n){"use strict";var r=n(85893),c=n(19284),a=n(25675),l=n.n(a),u=n(67294);t.Z=(0,u.memo)(e=>{let{width:t,height:n,model:a}=e,s=(0,u.useMemo)(()=>{let e=null==a?void 0:a.replaceAll("-","_").split("_")[0],t=Object.keys(c.Me);for(let n=0;n{let{width:t,height:n,scene:u}=e,s=(0,l.useCallback)(()=>{switch(u){case"chat_knowledge":return c.je;case"chat_with_db_execute":return c.zM;case"chat_excel":return c.DL;case"chat_with_db_qa":case"chat_dba":return c.RD;case"chat_dashboard":return c.In;case"chat_agent":return c.si;case"chat_normal":return c.O7;default:return}},[u]);return(0,r.jsx)(a.Z,{className:"w-".concat(t||7," h-").concat(n||7),component:s()})}},70065:function(e,t,n){"use strict";var r=n(91321);let c=(0,r.Z)({scriptUrl:"//at.alicdn.com/t/a/font_4440880_ljyggdw605.js"});t.Z=c}},function(e){e.O(0,[2913,3791,5278,8791,4330,1049,5030,3799,2684,6231,1390,3913,9774,2888,179],function(){return e(e.s=69487)}),_N_E=e.O()}]); \ No newline at end of file +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3882],{69487:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/mobile/chat/components/InputContainer",function(){return n(74638)}])},2440:function(e,t,n){"use strict";var r=n(25519);t.Z=()=>{var e;return JSON.parse(null!==(e=localStorage.getItem(r.C9))&&void 0!==e?e:"")}},39718:function(e,t,n){"use strict";var r=n(85893),c=n(19284),a=n(25675),l=n.n(a),u=n(67294);t.Z=(0,u.memo)(e=>{let{width:t,height:n,model:a}=e,s=(0,u.useMemo)(()=>{let e=null==a?void 0:a.replaceAll("-","_").split("_")[0],t=Object.keys(c.Me);for(let n=0;n{let{width:t,height:n,scene:u}=e,s=(0,l.useCallback)(()=>{switch(u){case"chat_knowledge":return c.je;case"chat_with_db_execute":return c.zM;case"chat_excel":return c.DL;case"chat_with_db_qa":case"chat_dba":return c.RD;case"chat_dashboard":return c.In;case"chat_agent":return c.si;case"chat_normal":return c.O7;default:return}},[u]);return(0,r.jsx)(a.Z,{className:"w-".concat(t||7," h-").concat(n||7),component:s()})}},70065:function(e,t,n){"use strict";var r=n(91321);let c=(0,r.Z)({scriptUrl:"//at.alicdn.com/t/a/font_4440880_ljyggdw605.js"});t.Z=c}},function(e){e.O(0,[2913,3791,5278,8791,4330,1049,5030,3799,2684,6231,5654,3913,9774,2888,179],function(){return e(e.s=69487)}),_N_E=e.O()}]); \ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/webpack-8fbde76e33a12b85.js b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/webpack-77e0abbf3a113dc4.js similarity index 99% rename from packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/webpack-8fbde76e33a12b85.js rename to packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/webpack-77e0abbf3a113dc4.js index 8e24ae56a..cdc259bb7 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/webpack-8fbde76e33a12b85.js +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/_next/static/chunks/webpack-77e0abbf3a113dc4.js @@ -1 +1 @@ -!function(){"use strict";var e,c,t,a,f,n,d,b,r,s,u,i,o={},l={};function h(e){var c=l[e];if(void 0!==c)return c.exports;var t=l[e]={id:e,loaded:!1,exports:{}},a=!0;try{o[e].call(t.exports,t,t.exports,h),a=!1}finally{a&&delete l[e]}return t.loaded=!0,t.exports}h.m=o,h.amdO={},e=[],h.O=function(c,t,a,f){if(t){f=f||0;for(var n=e.length;n>0&&e[n-1][2]>f;n--)e[n]=e[n-1];e[n]=[t,a,f];return}for(var d=1/0,n=0;n=f&&Object.keys(h.O).every(function(e){return h.O[e](t[r])})?t.splice(r--,1):(b=!1,f0&&e[n-1][2]>f;n--)e[n]=e[n-1];e[n]=[t,a,f];return}for(var d=1/0,n=0;n=f&&Object.keys(h.O).every(function(e){return h.O[e](t[r])})?t.splice(r--,1):(b=!1,f
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/agent/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/agent/index.html index a6a4b7345..556ac4d8f 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/agent/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/agent/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/components/create-app-modal/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/components/create-app-modal/index.html index fc3ec60ed..f505ad9f3 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/components/create-app-modal/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/components/create-app-modal/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/AwelLayout/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/AwelLayout/index.html index dd3d03a62..72aabb365 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/AwelLayout/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/AwelLayout/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/NativeApp/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/NativeApp/index.html index a8dfda733..f48eaa436 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/NativeApp/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/NativeApp/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/RecommendQuestions/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/RecommendQuestions/index.html index 93afc735d..b52e25d7f 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/RecommendQuestions/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/RecommendQuestions/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/DetailsCard/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/DetailsCard/index.html index 7dca3e891..60ff7b1a9 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/DetailsCard/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/DetailsCard/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/PromptSelect/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/PromptSelect/index.html index 4646c8480..c5a522946 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/PromptSelect/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/PromptSelect/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/ResourceContent/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/ResourceContent/index.html index b49a45e0f..896900a1f 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/ResourceContent/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/ResourceContent/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/ResourcesCard/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/ResourcesCard/index.html index 9cc6d9a45..e8676af50 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/ResourcesCard/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/ResourcesCard/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/index.html index 5c5118b95..666ff8105 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/components/auto-plan/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/config/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/config/index.html index bbdaa9d8c..a012b4bd8 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/config/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/config/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/index.html index 93fe7d3cb..deda90dc2 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/extra/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/index.html index 45d3aa827..477738000 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/app/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/database/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/database/index.html index 9f019f977..bc18bd4cf 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/database/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/database/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/dbgpts/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/dbgpts/index.html index 0181e74e0..60d86e3a2 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/dbgpts/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/dbgpts/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/flow/canvas/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/flow/canvas/index.html index ec3893a05..a7693e792 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/flow/canvas/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/flow/canvas/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/flow/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/flow/index.html index a9c69f885..ce74e0ac6 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/flow/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/flow/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/flow/libro/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/flow/libro/index.html index 3d1855fbe..cfd0cfca6 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/flow/libro/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/flow/libro/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/index.html index bfe936f2a..bd9d0363f 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/knowledge/chunk/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/knowledge/chunk/index.html index 966d8dae9..fa9589060 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/knowledge/chunk/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/knowledge/chunk/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/knowledge/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/knowledge/index.html index 5eda3fe1a..bf6e0ebd8 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/knowledge/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/knowledge/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/models/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/models/index.html index c29b0ddf5..de9820a10 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/models/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/models/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/prompt/add/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/prompt/add/index.html index 019d7dd09..cf19407b8 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/prompt/add/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/prompt/add/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/prompt/edit/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/prompt/edit/index.html index 0b3e8ffdb..8b35c13c5 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/prompt/edit/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/prompt/edit/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/prompt/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/prompt/index.html index 50d9e5350..b40fdefc4 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/construct/prompt/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/construct/prompt/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/evaluation/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/evaluation/index.html index 89ea2ed8c..85468cb0a 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/evaluation/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/evaluation/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/index.html index 232acb524..59e5ab117 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/knowledge/graph/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/knowledge/graph/index.html index 23012716a..334fdabb4 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/knowledge/graph/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/knowledge/graph/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/ChatDialog/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/ChatDialog/index.html index b8327f245..eab9db1df 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/ChatDialog/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/ChatDialog/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Content/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Content/index.html index df60a10e9..e11920f36 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Content/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Content/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/DislikeDrawer/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/DislikeDrawer/index.html index 19a6181c4..eb983030f 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/DislikeDrawer/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/DislikeDrawer/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Feedback/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Feedback/index.html index b12c5da77..6a92041b6 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Feedback/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Feedback/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Header/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Header/index.html index 5ac584e11..f9f3248fc 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Header/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Header/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/InputContainer/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/InputContainer/index.html index 745f4f89d..5953db3d4 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/InputContainer/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/InputContainer/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/ModelSelector/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/ModelSelector/index.html index 64ded63f2..150191283 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/ModelSelector/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/ModelSelector/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/OptionIcon/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/OptionIcon/index.html index f40d2822c..49e6f7de7 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/OptionIcon/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/OptionIcon/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Resource/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Resource/index.html index 7f801d238..d24933b3c 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Resource/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Resource/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Thermometer/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Thermometer/index.html index 546c49990..3481a77f4 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Thermometer/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/components/Thermometer/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/index.html b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/index.html index a6e9f888c..5d5636ef8 100644 --- a/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/index.html +++ b/packages/dbgpt-app/src/dbgpt_app/static/web/mobile/chat/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/packages/dbgpt-core/src/dbgpt/core/interface/output_parser.py b/packages/dbgpt-core/src/dbgpt/core/interface/output_parser.py index b1f142e9c..0ccaa622f 100644 --- a/packages/dbgpt-core/src/dbgpt/core/interface/output_parser.py +++ b/packages/dbgpt-core/src/dbgpt/core/interface/output_parser.py @@ -233,6 +233,8 @@ class BaseOutputParser(MapOperator[ModelOutput, Any], ABC): cleaned_output = ( cleaned_output.strip() + .replace("\\r\\n", " ") + .replace("\r\n", " ") .replace("\\n", " ") .replace("\n", " ") .replace("\\", " ") diff --git a/packages/dbgpt-core/src/dbgpt/model/adapter/base.py b/packages/dbgpt-core/src/dbgpt/model/adapter/base.py index 414eabe1a..1a60204a6 100644 --- a/packages/dbgpt-core/src/dbgpt/model/adapter/base.py +++ b/packages/dbgpt-core/src/dbgpt/model/adapter/base.py @@ -270,7 +270,7 @@ class LLMModelAdapter(ABC): or "reasoning" in lower_model_name_or_path or "reasoner" in lower_model_name_or_path ) - ) + ) or (lower_model_name_or_path and "qwq" in lower_model_name_or_path) def support_async(self) -> bool: """Whether the loaded model supports asynchronous calls""" diff --git a/packages/dbgpt-core/src/dbgpt/rag/text_splitter/text_splitter.py b/packages/dbgpt-core/src/dbgpt/rag/text_splitter/text_splitter.py index 3250f4477..81e2b830f 100644 --- a/packages/dbgpt-core/src/dbgpt/rag/text_splitter/text_splitter.py +++ b/packages/dbgpt-core/src/dbgpt/rag/text_splitter/text_splitter.py @@ -916,8 +916,9 @@ class PageTextSplitter(TextSplitter): class RDBTextSplitter(TextSplitter): """Split relational database tables and fields.""" - def __init__(self, **kwargs): + def __init__(self, column_separator: str = "\n", **kwargs): """Create a new TextSplitter.""" + self._column_separator = column_separator super().__init__(**kwargs) def split_text(self, text: str, **kwargs): @@ -942,7 +943,7 @@ class RDBTextSplitter(TextSplitter): field_metadata["part"] = "field" # identify of field_chunk table_chunk = Chunk(content=table_part, metadata=table_metadata) chunks.append(table_chunk) - field_parts = field_part.split("\n") + field_parts = field_part.split(self._column_separator) for i, sub_part in enumerate(field_parts): sub_metadata = copy.deepcopy(field_metadata) sub_metadata["part_index"] = i diff --git a/packages/dbgpt-ext/src/dbgpt_ext/rag/assembler/db_schema.py b/packages/dbgpt-ext/src/dbgpt_ext/rag/assembler/db_schema.py index 4233300bc..42b31ee9f 100644 --- a/packages/dbgpt-ext/src/dbgpt_ext/rag/assembler/db_schema.py +++ b/packages/dbgpt-ext/src/dbgpt_ext/rag/assembler/db_schema.py @@ -60,40 +60,12 @@ class DBSchemaAssembler(BaseAssembler): self._connector = connector self._table_vector_store_connector = table_vector_store_connector self._field_vector_store_connector = field_vector_store_connector - # field_vector_store_config = VectorStoreConfig( - # name=table_vector_store_connector.vector_store_config.name + "_field" - # ) - # self._field_vector_store_connector = ( - # field_vector_store_connector - # or VectorStoreConnector.from_default( - # os.getenv("VECTOR_STORE_TYPE", "Chroma"), - # self._table_vector_store_connector.current_embeddings, - # vector_store_config=field_vector_store_config, - # ) - # ) - self._embedding_model = embedding_model if self._embedding_model and not embeddings: embeddings = DefaultEmbeddingFactory( default_model_name=self._embedding_model ).create(self._embedding_model) - # if ( - # embeddings - # and self._table_vector_store_connector.vector_store_config.embedding_fn - # is None - # ): - # self._table_vector_store_connector.vector_store_config.embedding_fn = ( - # embeddings - # ) - # if ( - # embeddings - # and self._field_vector_store_connector.vector_store_config.embedding_fn - # is None - # ): - # self._field_vector_store_connector.vector_store_config.embedding_fn = ( - # embeddings - # ) knowledge = DatasourceKnowledge(connector, model_dimension=max_seq_length) super().__init__( knowledge=knowledge, diff --git a/packages/dbgpt-ext/src/dbgpt_ext/rag/knowledge/datasource.py b/packages/dbgpt-ext/src/dbgpt_ext/rag/knowledge/datasource.py index 1dbc83afd..201a600c6 100644 --- a/packages/dbgpt-ext/src/dbgpt_ext/rag/knowledge/datasource.py +++ b/packages/dbgpt-ext/src/dbgpt_ext/rag/knowledge/datasource.py @@ -11,7 +11,11 @@ from dbgpt.rag.knowledge.base import ( KnowledgeType, ) -from ..summary.rdbms_db_summary import _parse_db_summary_with_metadata +from ..summary.rdbms_db_summary import ( + _DEFAULT_COLUMN_SEPARATOR, + _DEFAULT_SUMMARY_TEMPLATE, + _parse_db_summary_with_metadata, +) class DatasourceKnowledge(Knowledge): @@ -20,8 +24,9 @@ class DatasourceKnowledge(Knowledge): def __init__( self, connector: BaseConnector, - summary_template: str = "table_name: {table_name}", + summary_template: str = _DEFAULT_SUMMARY_TEMPLATE, separator: str = "--table-field-separator--", + column_separator: str = _DEFAULT_COLUMN_SEPARATOR, knowledge_type: Optional[KnowledgeType] = KnowledgeType.DOCUMENT, metadata: Optional[Dict[str, Union[str, List[str]]]] = None, model_dimension: int = 512, @@ -40,6 +45,7 @@ class DatasourceKnowledge(Knowledge): model_dimension(int, optional): The threshold for splitting field string """ self._separator = separator + self._column_separator = column_separator self._connector = connector self._summary_template = summary_template self._model_dimension = model_dimension @@ -52,7 +58,8 @@ class DatasourceKnowledge(Knowledge): self._connector, self._summary_template, self._separator, - self._model_dimension, + column_separator=self._column_separator, + model_dimension=self._model_dimension, ) for summary, table_metadata in db_summary_with_metadata: metadata = {"source": "database"} diff --git a/packages/dbgpt-ext/src/dbgpt_ext/rag/retriever/db_schema.py b/packages/dbgpt-ext/src/dbgpt_ext/rag/retriever/db_schema.py index 1ccff6275..60258698e 100644 --- a/packages/dbgpt-ext/src/dbgpt_ext/rag/retriever/db_schema.py +++ b/packages/dbgpt-ext/src/dbgpt_ext/rag/retriever/db_schema.py @@ -13,7 +13,11 @@ from dbgpt.storage.vector_store.filters import MetadataFilter, MetadataFilters from dbgpt.util.chat_util import run_tasks from dbgpt.util.executor_utils import blocking_func_to_async_no_executor -from ..summary.rdbms_db_summary import _parse_db_summary +from ..summary.rdbms_db_summary import ( + _DEFAULT_COLUMN_SEPARATOR, + _parse_db_summary, + _parse_table_detail, +) logger = logging.getLogger(__name__) @@ -28,6 +32,7 @@ class DBSchemaRetriever(BaseRetriever): table_vector_store_connector: VectorStoreBase, field_vector_store_connector: VectorStoreBase = None, separator: str = "--table-field-separator--", + column_separator: str = _DEFAULT_COLUMN_SEPARATOR, top_k: int = 4, connector: Optional[BaseConnector] = None, query_rewrite: bool = False, @@ -100,6 +105,7 @@ class DBSchemaRetriever(BaseRetriever): print(f"db struct rag example results:{result}") """ self._separator = separator + self._column_separator = column_separator self._top_k = top_k self._connector = connector self._query_rewrite = query_rewrite @@ -186,9 +192,11 @@ class DBSchemaRetriever(BaseRetriever): field_chunks = self._field_vector_store_connector.similar_search_with_scores( query, self._top_k, 0, MetadataFilters(filters=filters) ) - field_contents = [chunk.content for chunk in field_chunks] - table_chunk.content += "\n" + self._separator + "\n" + "\n".join(field_contents) - return table_chunk + field_contents = [chunk.content.strip() for chunk in field_chunks] + table_chunk.content += ( + "\n" + self._separator + "\n" + self._column_separator.join(field_contents) + ) + return self._deserialize_table_chunk(table_chunk) def _similarity_search( self, query, filters: Optional[MetadataFilters] = None @@ -198,6 +206,7 @@ class DBSchemaRetriever(BaseRetriever): query, self._top_k, 0, filters ) + # Find all table chunks which are not separated not_sep_chunks = [ chunk for chunk in table_chunks if not chunk.metadata.get("separated") ] @@ -205,9 +214,11 @@ class DBSchemaRetriever(BaseRetriever): chunk for chunk in table_chunks if chunk.metadata.get("separated") ] if not separated_chunks: - return not_sep_chunks + return [self._deserialize_table_chunk(chunk) for chunk in not_sep_chunks] # Create tasks list + # The fields of table is too large, and it has to be separated into chunks, + # so we need to retrieve fields of each table separately tasks = [ lambda c=chunk: self._retrieve_field(c, query) for chunk in separated_chunks ] @@ -216,3 +227,32 @@ class DBSchemaRetriever(BaseRetriever): # Combine and return results return not_sep_chunks + separated_result + + def _deserialize_table_chunk(self, chunk: Chunk) -> Chunk: + """Deserialize table chunk.""" + db_summary_version = chunk.metadata.get("db_summary_version") + if not db_summary_version: + return chunk + parts = chunk.content.split(self._separator) + table_part, field_part = parts[0].strip(), parts[1].strip() + table_detail = _parse_table_detail(table_part) + table_name = table_detail.get("table_name") + table_comment = table_detail.get("table_comment") + index_keys = table_detail.get("index_keys") + + table_name = table_name.strip() if table_name else table_name + table_comment = table_comment.strip() if table_comment else table_comment + index_keys = index_keys.strip() if index_keys else index_keys + if not table_name: + return chunk + + create_statement = f'CREATE TABLE "{table_name}"\r\n(\r\n ' + create_statement += field_part + create_statement += "\r\n)" + if table_comment: + create_statement += f' COMMENT "{table_comment}"\r\n' + if index_keys: + create_statement += f"Index keys: {index_keys}" + + chunk.content = create_statement + return chunk diff --git a/packages/dbgpt-ext/src/dbgpt_ext/rag/summary/rdbms_db_summary.py b/packages/dbgpt-ext/src/dbgpt_ext/rag/summary/rdbms_db_summary.py index dba7f827e..d65a4aef7 100644 --- a/packages/dbgpt-ext/src/dbgpt_ext/rag/summary/rdbms_db_summary.py +++ b/packages/dbgpt-ext/src/dbgpt_ext/rag/summary/rdbms_db_summary.py @@ -13,6 +13,35 @@ if TYPE_CHECKING: CFG = Config() +_DEFAULT_SUMMARY_TEMPLATE = """\ +table_name: {table_name}\r\n\ +table_comment: {table_comment}\r\n\ +index_keys: {index_keys}\r\n\ +""" +_DEFAULT_SUMMARY_TEMPLATE_PATTEN = ( + r"table_name:\s*(?P.*)\s*" + r"table_comment:\s*(?P.*)\s*" + r"index_keys:\s*(?P.*)\s*" +) +_DEFAULT_COLUMN_SEPARATOR = ",\r\n " + + +def _parse_table_detail(table_desc_str: str) -> Dict[str, Any]: + """Parse table detail string. + + Args: + table_desc_str (str): table detail string + + Returns: + Dict[str, Any]: A dictionary containing table_name, table_comment, and + index_keys. + """ + matched = re.match(_DEFAULT_SUMMARY_TEMPLATE_PATTEN, table_desc_str) + if matched: + return matched.groupdict() + return {} + + class RdbmsSummary(DBSummary): """Get rdbms db table summary template. @@ -83,8 +112,9 @@ def _parse_db_summary( def _parse_db_summary_with_metadata( conn: BaseConnector, - summary_template: str = "table_name: {table_name}", + summary_template: str = _DEFAULT_SUMMARY_TEMPLATE, separator: str = "--table-field-separator--", + column_separator: str = _DEFAULT_COLUMN_SEPARATOR, model_dimension: int = 512, ) -> List[Tuple[str, Dict[str, Any]]]: """Get db summary for database. @@ -99,14 +129,21 @@ def _parse_db_summary_with_metadata( tables = conn.get_table_names() table_info_summaries = [ _parse_table_summary_with_metadata( - conn, summary_template, separator, table_name, model_dimension + conn, + summary_template, + separator, + table_name, + model_dimension, + column_separator=column_separator, ) for table_name in tables ] return table_info_summaries -def _split_columns_str(columns: List[str], model_dimension: int): +def _split_columns_str( + columns: List[str], model_dimension: int, column_separator: str = ",\r\n " +): """Split columns str. Args: @@ -129,7 +166,7 @@ def _split_columns_str(columns: List[str], model_dimension: int): else: # If current string is empty, add element directly if current_string: - current_string += "," + element_str + current_string += column_separator + element_str else: current_string = element_str current_length += element_length + 1 # Add length of space @@ -147,6 +184,8 @@ def _parse_table_summary_with_metadata( separator, table_name: str, model_dimension=512, + column_separator: str = _DEFAULT_COLUMN_SEPARATOR, + db_summary_version: str = "v1.0", ) -> Tuple[str, Dict[str, Any]]: """Get table summary for table. @@ -168,17 +207,26 @@ def _parse_table_summary_with_metadata( (column4,comment), (column5, comment), (column6, comment) """ columns = [] - metadata = {"table_name": table_name, "separated": 0} + metadata = { + "table_name": table_name, + "separated": 0, + "db_summary_version": db_summary_version, + } for column in conn.get_columns(table_name): - if column.get("comment"): - columns.append(f"{column['name']} ({column.get('comment')})") - else: - columns.append(f"{column['name']}") + col_name = column["name"] + col_type = str(column["type"]) if "type" in column else None + col_comment = column.get("comment") + column_def = f'"{col_name}" {col_type.upper()}' + if col_comment: + column_def += f' COMMENT "{col_comment}"' + columns.append(column_def) metadata.update({"field_num": len(columns)}) - separated_columns = _split_columns_str(columns, model_dimension=model_dimension) + separated_columns = _split_columns_str( + columns, model_dimension=model_dimension, column_separator=column_separator + ) if len(separated_columns) > 1: metadata["separated"] = 1 - column_str = "\n".join(separated_columns) + column_str = column_separator.join(separated_columns) # Obtain index information index_keys = [] raw_indexes = conn.get_indexes(table_name) @@ -193,18 +241,19 @@ def _parse_table_summary_with_metadata( else: key_str = ", ".join(index["column_names"]) index_keys.append(f"{index['name']}(`{key_str}`) ") - table_str = summary_template.format(table_name=table_name) + + table_comment = "" try: comment = conn.get_table_comment(table_name) + table_comment = comment.get("text") except Exception: - comment = dict(text=None) - if comment.get("text"): - table_str += f"\ntable_comment: {comment.get('text')}" + pass - if len(index_keys) > 0: - index_key_str = ", ".join(index_keys) - table_str += f"\nindex_keys: {index_key_str}" + index_key_str = ", ".join(index_keys) + table_str = summary_template.format( + table_name=table_name, table_comment=table_comment, index_keys=index_key_str + ) table_str += f"\n{separator}\n{column_str}" return table_str, metadata diff --git a/packages/dbgpt-serve/src/dbgpt_serve/datasource/service/db_summary_client.py b/packages/dbgpt-serve/src/dbgpt_serve/datasource/service/db_summary_client.py index 698e9d43a..4a9395b49 100644 --- a/packages/dbgpt-serve/src/dbgpt_serve/datasource/service/db_summary_client.py +++ b/packages/dbgpt-serve/src/dbgpt_serve/datasource/service/db_summary_client.py @@ -106,9 +106,13 @@ class DBSummaryClient: ) if not table_vector_connector.vector_name_exists(): from dbgpt_ext.rag.assembler.db_schema import DBSchemaAssembler + from dbgpt_ext.rag.summary.rdbms_db_summary import _DEFAULT_COLUMN_SEPARATOR chunk_parameters = ChunkParameters( - text_splitter=RDBTextSplitter(separator="--table-field-separator--") + text_splitter=RDBTextSplitter( + column_separator=_DEFAULT_COLUMN_SEPARATOR, + separator="--table-field-separator--", + ) ) db_assembler = DBSchemaAssembler.load_from_connection( connector=db_summary_client.db, diff --git a/packages/dbgpt-serve/src/dbgpt_serve/rag/connector.py b/packages/dbgpt-serve/src/dbgpt_serve/rag/connector.py index 28f42b202..3f4b46711 100644 --- a/packages/dbgpt-serve/src/dbgpt_serve/rag/connector.py +++ b/packages/dbgpt-serve/src/dbgpt_serve/rag/connector.py @@ -59,7 +59,7 @@ class VectorStoreConnector: self.app_config = self._system_app.config.configs.get("app_config") self._register() - vector_store_type = self.__rewrite_index_store_type(vector_store_type) + vector_store_type = self._rewrite_index_store_type(vector_store_type) if self._match(vector_store_type): self.connector_class, self.config_class = connector[vector_store_type] else: @@ -94,11 +94,16 @@ class VectorStoreConnector: logger.error("connect vector store failed: %s", e) raise e - def __rewrite_index_store_type(self, index_store_type): + def _rewrite_index_store_type(self, index_store_type): # Rewrite Knowledge Graph Type - if self.app_config.rag.storage.graph.get("enable_summary").lower() == "true": - if index_store_type == "KnowledgeGraph": - return "CommunitySummaryKnowledgeGraph" + if self.app_config.rag.storage.graph: + graph_dict = self.app_config.rag.storage.graph + if ( + isinstance(graph_dict, dict) + and graph_dict.get("enable_summary", "false").lower() == "true" + ): + if index_store_type == "KnowledgeGraph": + return "CommunitySummaryKnowledgeGraph" return index_store_type @classmethod diff --git a/web/components/chat/chat-container.tsx b/web/components/chat/chat-container.tsx index 3a21819f7..744afb02f 100644 --- a/web/components/chat/chat-container.tsx +++ b/web/components/chat/chat-container.tsx @@ -13,6 +13,76 @@ import MuiLoading from '../common/loading'; import Completion from './completion'; import Header from './header'; +// Function to extract JSON from vis-thinking code blocks +const parseVisThinking = (content: any) => { + // Check if content is a string + if (typeof content !== 'string') { + return content; + } + + // Check if this is a vis-thinking code block + if (content.startsWith('```vis-thinking') || content.includes('```vis-thinking')) { + // Find where the JSON part begins + // We're looking for the first occurrence of '{"' after the vis-thinking header + const jsonStartIndex = content.indexOf('{"'); + + if (jsonStartIndex !== -1) { + // Extract everything from the JSON start to the end + const jsonContent = content.substring(jsonStartIndex); + + // Attempt to parse the JSON + try { + return JSON.parse(jsonContent); + } catch { + // If there's a parsing error, try to clean up the JSON string + // This might happen if there are backticks at the end + const cleanedContent = jsonContent.replace(/```$/g, '').trim(); + try { + return JSON.parse(cleanedContent); + } catch (e2) { + console.error('Error parsing cleaned JSON:', e2); + return null; + } + } + } + } + + // If it's not a vis-thinking block, try to parse it directly as JSON + try { + return typeof content === 'string' ? JSON.parse(content) : content; + } catch { + // If it's not valid JSON, return the original content + console.log('Not JSON format or vis-thinking format, returning original content'); + return content; + } +}; + +// Function to extract the thinking part from vis-thinking code blocks while preserving tags +const formatToVisThinking = (content: any) => { + // Only process strings + if (typeof content !== 'string') { + return content; + } + + // Check if this is a vis-thinking code block + if (content.startsWith('```vis-thinking') || content.includes('```vis-thinking')) { + // Find the start of the vis-thinking block + const blockStartIndex = content.indexOf('```vis-thinking'); + const thinkingStartIndex = blockStartIndex + '```vis-thinking'.length; + + // Find the end of the vis-thinking block + const thinkingEndIndex = content.indexOf('```', thinkingStartIndex); + + if (thinkingEndIndex !== -1) { + // Extract the thinking content with the tags + return content.substring(blockStartIndex, thinkingEndIndex + 3); + } + } + + // If it's not a vis-thinking block or can't extract thinking part, return the original content + return content; +}; + const ChatContainer = () => { const searchParams = useSearchParams(); const { scene, chatId, model, agent, setModel, history, setHistory } = useContext(ChatContext); @@ -33,7 +103,17 @@ const ChatContainer = () => { const contextTemp = list[list.length - 1]?.context; if (contextTemp) { try { - const contextObj = typeof contextTemp === 'string' ? JSON.parse(contextTemp) : contextTemp; + // First, parse the context to handle vis-thinking code blocks + const parsedContext = parseVisThinking(contextTemp); + + // Then, handle the normal JSON processing + const contextObj = + typeof parsedContext === 'object' + ? parsedContext + : typeof contextTemp === 'string' + ? JSON.parse(contextTemp) + : contextTemp; + setChartsData(contextObj?.template_name === 'report' ? contextObj?.charts : undefined); } catch (e) { console.log(e); @@ -127,7 +207,11 @@ const ChatContainer = () => { 'h-full lg:px-8': scene !== 'chat_dashboard', })} > - + diff --git a/web/components/chat/completion.tsx b/web/components/chat/completion.tsx index efca8c35b..290ebcd45 100644 --- a/web/components/chat/completion.tsx +++ b/web/components/chat/completion.tsx @@ -25,9 +25,10 @@ import MonacoEditor from './monaco-editor'; type Props = { messages: IChatDialogueMessageSchema[]; onSubmit: (message: string, otherQueryBody?: Record) => Promise; + onFormatContent?: (content: any) => any; // Callback for extracting thinking part }; -const Completion = ({ messages, onSubmit }: Props) => { +const Completion = ({ messages, onSubmit, onFormatContent }: Props) => { const { dbParam, currentDialogue, scene, model, refreshDialogList, chatId, agent, docId } = useContext(ChatContext); const { t } = useTranslation(); const searchParams = useSearchParams(); @@ -78,18 +79,23 @@ const Completion = ({ messages, onSubmit }: Props) => { } }; - const handleJson2Obj = (jsonStr: string) => { - try { - return JSON.parse(jsonStr); - } catch { - return jsonStr; + // Process message content - if onFormatContent is provided and this is a dashboard chat, + // we'll extract the thinking part from vis-thinking code blocks + const processMessageContent = (content: any) => { + if (isChartChat && onFormatContent && typeof content === 'string') { + return onFormatContent(content); } + return content; }; const [messageApi, contextHolder] = message.useMessage(); const onCopyContext = async (context: any) => { - const pureStr = context?.replace(/\trelations:.*/g, ''); + // If we have a formatting function and this is a string, apply it before copying + const contentToCopy = + isChartChat && onFormatContent && typeof context === 'string' ? onFormatContent(context) : context; + + const pureStr = contentToCopy?.replace(/\trelations:.*/g, ''); const result = copy(pureStr); if (result) { if (pureStr) { @@ -124,14 +130,25 @@ const Completion = ({ messages, onSubmit }: Props) => { let tempMessage: IChatDialogueMessageSchema[] = messages; if (isChartChat) { tempMessage = cloneDeep(messages).map(item => { - if (item?.role === 'view' && typeof item?.context === 'string') { - item.context = handleJson2Obj(item?.context); + if (item?.role === 'view') { + if (typeof item?.context === 'string') { + // Try to parse JSON first + try { + item.context = JSON.parse(item.context); + } catch { + // If JSON parsing fails and we have a formatting function, + // it might be a vis-thinking block, so process it + if (onFormatContent) { + item.context = processMessageContent(item.context); + } + } + } } return item; }); } setShowMessages(tempMessage.filter(item => ['view', 'human'].includes(item.role))); - }, [isChartChat, messages]); + }, [isChartChat, messages, onFormatContent]); useEffect(() => { apiInterceptors(getChatFeedBackSelect())