diff --git a/enhance.py b/enhance.py
index 558e2fc..9be1fef 100644
--- a/enhance.py
+++ b/enhance.py
@@ -9,30 +9,41 @@ def moe(query: str, query_id: int, response: str) -> str:
User query: {query}
query_id: {query_id}
- The following is an assistant response to the original user query. Analyse the response, then critizise the response by discussing both strength and weakness of the response.
+ The following is an assistant response to the original user query. Analyse the response, then criticize the it by discussing both strengths and weaknesses. Do not add additional commentary.
{response}
+
+ Respond in the format:
+ original_response
+ ---
+ Response Analysis:
+ your analysis
"""
return moe_prompt
-def moe_select_candidate(query: str, candidates_with_feedback: list[str]) -> str:
+def moe_select_candidate(query: str, candidates: list[str]) -> str:
+ if not candidates:
+ raise ValueError("No candidates supplied")
+
+ candidate_sections = ""
+ for i, cand in enumerate(candidates[:3], start=0):
+ candidate_sections += f"""
+
+ {cand.message.content}
+
+ """
+
+ # Strict instruction: "Respond **only** with the final answer."
select_prompt = f"""
From the following responses for the user query: {query}
- select the best fitting candidate and formulate a final anser for the user.
-
- {candidates_with_feedback[0].message.content}
-
+ {candidate_sections}
-
- {candidates_with_feedback[1].message.content}
-
-
-
- {candidates_with_feedback[2].message.content}
-
+ Choose the best candidate and output the final answer in the language of the query.
+ **Do NOT** mention candidate numbers, strengths, weaknesses, or any other commentary.
+ Just give the final answer—nothing else.
"""
- return select_prompt
+ return select_prompt.strip()