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()