diff --git a/agent/component/base.py b/agent/component/base.py index 3f9d4ad37..1890949e0 100644 --- a/agent/component/base.py +++ b/agent/component/base.py @@ -484,7 +484,7 @@ class ComponentBase(ABC): if q["component_id"].lower().find("answer") == 0: txt = [] for r, c in self._canvas.history[::-1][:self._param.message_history_window_size][::-1]: - txt.append(f"{r.upper()}: {c}") + txt.append(f"{r.upper()}:{c}") txt = "\n".join(txt) self._param.inputs.append({"content": txt, "component_id": q["component_id"]}) outs.append(pd.DataFrame([{"content": txt}])) @@ -521,7 +521,7 @@ class ComponentBase(ABC): if u.lower().find("answer") >= 0: for r, c in self._canvas.history[::-1]: if r == "user": - upstream_outs.append(pd.DataFrame([{"content": c, "component_id": u}])) + upstream_outs.append(pd.DataFrame([{"content": f"USER:{c}", "component_id": u}])) break break if self.component_name.lower().find("answer") >= 0 and self.get_component_name(u) in ["relevant"]: diff --git a/api/db/services/dialog_service.py b/api/db/services/dialog_service.py index e7d71186c..f02f9ff2d 100644 --- a/api/db/services/dialog_service.py +++ b/api/db/services/dialog_service.py @@ -304,8 +304,25 @@ def chat(dialog, messages, stream=True, **kwargs): retrieval_time_cost = (retrieval_ts - generate_keyword_ts) * 1000 generate_result_time_cost = (finish_chat_ts - retrieval_ts) * 1000 + tk_num = num_tokens_from_string(think+answer) prompt += "\n\n### Query:\n%s" % " ".join(questions) - prompt = f"{prompt}\n\n - Total: {total_time_cost:.1f}ms\n - Check LLM: {check_llm_time_cost:.1f}ms\n - Create retriever: {create_retriever_time_cost:.1f}ms\n - Bind embedding: {bind_embedding_time_cost:.1f}ms\n - Bind LLM: {bind_llm_time_cost:.1f}ms\n - Tune question: {refine_question_time_cost:.1f}ms\n - Bind reranker: {bind_reranker_time_cost:.1f}ms\n - Generate keyword: {generate_keyword_time_cost:.1f}ms\n - Retrieval: {retrieval_time_cost:.1f}ms\n - Generate answer: {generate_result_time_cost:.1f}ms" + prompt = ( + f"{prompt}\n\n" + "## Time elapsed:\n" + f" - Total: {total_time_cost:.1f}ms\n" + f" - Check LLM: {check_llm_time_cost:.1f}ms\n" + f" - Create retriever: {create_retriever_time_cost:.1f}ms\n" + f" - Bind embedding: {bind_embedding_time_cost:.1f}ms\n" + f" - Bind LLM: {bind_llm_time_cost:.1f}ms\n" + f" - Tune question: {refine_question_time_cost:.1f}ms\n" + f" - Bind reranker: {bind_reranker_time_cost:.1f}ms\n" + f" - Generate keyword: {generate_keyword_time_cost:.1f}ms\n" + f" - Retrieval: {retrieval_time_cost:.1f}ms\n" + f" - Generate answer: {generate_result_time_cost:.1f}ms\n\n" + "## Token usage:\n" + f" - Generated tokens(approximately): {tk_num}\n" + f" - Token speed: {int(tk_num/(generate_result_time_cost/1000.))}/s" + ) return {"answer": think+answer, "reference": refs, "prompt": re.sub(r"\n", " \n", prompt), "created_at": time.time()} if stream: