diff --git a/graph/canvas.py b/graph/canvas.py index 9b8f4c62cec..2d61915b339 100644 --- a/graph/canvas.py +++ b/graph/canvas.py @@ -188,6 +188,7 @@ def run(self, **kwargs): def prepare2run(cpns): nonlocal ran, ans for c in cpns: + if self.path[-1] and c == self.path[-1][-1]: continue cpn = self.components[c]["obj"] if cpn.component_name == "Answer": self.answer.append(c) diff --git a/graph/component/baidu.py b/graph/component/baidu.py index 5a7779553c4..b39a75aaec2 100644 --- a/graph/component/baidu.py +++ b/graph/component/baidu.py @@ -43,7 +43,7 @@ def _run(self, history, **kwargs): ans = self.get_input() ans = " - ".join(ans["content"]) if "content" in ans else "" if not ans: - return Baidu.be_output(self._param.no) + return Baidu.be_output("") url = 'https://www.baidu.com/s?wd=' + ans + '&rn=' + str(self._param.top_n) headers = { @@ -56,8 +56,10 @@ def _run(self, history, **kwargs): baidu_res = [{"content": re.sub('|', '', '' + title + ' ' + body)} for url, title, body in zip(url_res, title_res, body_res)] del body_res, url_res, title_res - df = pd.DataFrame(baidu_res) - print(df, ":::::::::::::::::::::::::::::::::") + if not baidu_res: + return Baidu.be_output("") + df = pd.DataFrame(baidu_res) + if DEBUG: print(df, ":::::::::::::::::::::::::::::::::") return df diff --git a/graph/component/duckduckgo.py b/graph/component/duckduckgo.py index 95ce3e8576d..06928445b51 100644 --- a/graph/component/duckduckgo.py +++ b/graph/component/duckduckgo.py @@ -44,7 +44,7 @@ def _run(self, history, **kwargs): ans = self.get_input() ans = " - ".join(ans["content"]) if "content" in ans else "" if not ans: - return DuckDuckGo.be_output(self._param.no) + return DuckDuckGo.be_output("") if self._param.channel == "text": with DDGS() as ddgs: @@ -57,6 +57,9 @@ def _run(self, history, **kwargs): duck_res = [{"content": '' + i["title"] + ' ' + i["body"]} for i in ddgs.news(ans, max_results=self._param.top_n)] + if not duck_res: + return DuckDuckGo.be_output("") + df = pd.DataFrame(duck_res) - print(df, ":::::::::::::::::::::::::::::::::") + if DEBUG: print(df, ":::::::::::::::::::::::::::::::::") return df diff --git a/graph/component/generate.py b/graph/component/generate.py index 83ade128d67..f36dd466407 100644 --- a/graph/component/generate.py +++ b/graph/component/generate.py @@ -72,14 +72,14 @@ def _run(self, history, **kwargs): prompt = self._param.prompt retrieval_res = self.get_input() - input = "\n- ".join(retrieval_res["content"]) if "content" in retrieval_res else "" + input = (" - " + "\n - ".join(retrieval_res["content"])) if "content" in retrieval_res else "" for para in self._param.parameters: cpn = self._canvas.get_component(para["component_id"])["obj"] _, out = cpn.output(allow_partial=False) if "content" not in out.columns: kwargs[para["key"]] = "Nothing" else: - kwargs[para["key"]] = "\n - ".join(out["content"]) + kwargs[para["key"]] = " - " + "\n - ".join(out["content"]) kwargs["input"] = input for n, v in kwargs.items(): diff --git a/graph/component/wikipedia.py b/graph/component/wikipedia.py index 4da911fb83f..df7e313a2ae 100644 --- a/graph/component/wikipedia.py +++ b/graph/component/wikipedia.py @@ -30,7 +30,7 @@ class WikipediaParam(ComponentParamBase): def __init__(self): super().__init__() self.top_n = 10 - self.language = 'en' + self.language = "en" def check(self): self.check_positive_integer(self.top_n, "Top N") @@ -49,7 +49,7 @@ def _run(self, history, **kwargs): ans = self.get_input() ans = " - ".join(ans["content"]) if "content" in ans else "" if not ans: - return Wikipedia.be_output(self._param.no) + return Wikipedia.be_output("") wiki_res = [] wikipedia.set_lang(self._param.language) @@ -63,7 +63,7 @@ def _run(self, history, **kwargs): pass if not wiki_res: - return Wikipedia.be_output(self._param.no) + return Wikipedia.be_output("") df = pd.DataFrame(wiki_res) if DEBUG: print(df, ":::::::::::::::::::::::::::::::::") diff --git a/graph/templates/websearch_assistant.json b/graph/templates/websearch_assistant.json index b982212a920..1a82257cb5e 100644 --- a/graph/templates/websearch_assistant.json +++ b/graph/templates/websearch_assistant.json @@ -59,7 +59,6 @@ "cite": true, "frequency_penalty": 0.7, "llm_id": "deepseek-chat", - "max_tokens": 2048, "message_history_window_size": 12, "parameters": [ { @@ -108,7 +107,7 @@ "frequencyPenaltyEnabled": true, "frequency_penalty": 0.7, "llm_id": "deepseek-chat", - "maxTokensEnabled": false, + "maxTokensEnabled": true, "max_tokens": 256, "parameter": "Precise", "presencePenaltyEnabled": true, @@ -366,7 +365,7 @@ "frequencyPenaltyEnabled": true, "frequency_penalty": 0.7, "llm_id": "deepseek-chat", - "maxTokensEnabled": false, + "maxTokensEnabled": true, "max_tokens": 256, "parameter": "Precise", "presencePenaltyEnabled": true, @@ -510,8 +509,6 @@ "frequencyPenaltyEnabled": true, "frequency_penalty": 0.7, "llm_id": "deepseek-chat", - "maxTokensEnabled": true, - "max_tokens": 2048, "message_history_window_size": 12, "parameter": "Precise", "parameters": [ @@ -538,7 +535,7 @@ ], "presencePenaltyEnabled": true, "presence_penalty": 0.4, - "prompt": "Role: You are an intelligent assistant. \nTask: Chat with user. Answer the question based on the provided content from: Knowledge Base, Wikipedia, Duckduckgo, Baidu.\nRequirements:\n - Answer should be in markdown format.\n - Summarize and label the sources of the cited content separately: (Knowledge Base, Wikipedia, Duckduckgo, Baidu).\n - Attach URL links to the content which is quoted from Wikipedia, DuckDuckGo or Baidu.\n - Do not make thing up when there's no relevant information to user's question. \n\n## Knowledge base content\n {kb_input}\n\n\n## Wikipedia content\n{wikipedia}\n\n\n## Duckduckgo content\n{duckduckgo}\n\n\n## Baidu content\n{baidu}", + "prompt": "Role: You are an intelligent assistant. \nTask: Chat with user. Answer the question based on the provided content from: Knowledge Base, Wikipedia, Duckduckgo, Baidu.\nRequirements:\n - Answer should be in markdown format.\n - Answer should include all sources(Knowledge Base, Wikipedia, Duckduckgo, Baidu) as long as they are relevant, and label the sources of the cited content separately.\n - Attach URL links to the content which is quoted from Wikipedia, DuckDuckGo or Baidu.\n - Do not make thing up when there's no relevant information to user's question. \n\n## Knowledge base content\n {kb_input}\n\n\n## Wikipedia content\n{wikipedia}\n\n\n## Duckduckgo content\n{duckduckgo}\n\n\n## Baidu content\n{baidu}", "temperature": 0.1, "temperatureEnabled": true, "topPEnabled": true,