From 434b6d4cca7586e730e9d11239aca376a86d6b03 Mon Sep 17 00:00:00 2001 From: alpha-nerd-nomyo Date: Tue, 16 Dec 2025 09:46:36 +0100 Subject: [PATCH] finalize feat: Mixture of Experts: - prefix any ollama model with "moe-" on api/chat and the original user request gets passed to the selected model 3 times with temp=1 to get response variants. Each variant is then revisited and finally scored to find the best repsonse among them all and finally returned to the user. Runs longer, uses more tokens for expected better quality response. --- enhance.py | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) 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()