Solution published: update main.py
This commit is contained in:
@@ -76,7 +76,7 @@ def reflect(state: CodeReviewState) -> CodeReviewState:
|
|||||||
response = llm.invoke([HumanMessage(content=prompt)])
|
response = llm.invoke([HumanMessage(content=prompt)])
|
||||||
try:
|
try:
|
||||||
data = ReflectOutput.model_validate_json(response.content)
|
data = ReflectOutput.model_validate_json(response.content)
|
||||||
except Exception as e:
|
except Exception:
|
||||||
# Fallback simple parsing
|
# Fallback simple parsing
|
||||||
data = ReflectOutput.model_validate_json("{\"scores\":{\"pep8\":5,\"type_hints\":5,\"edge_cases\":5,\"naming\":5},\"weakest_criterion\":\"pep8\",\"verdict\":\"needs_revision\"}")
|
data = ReflectOutput.model_validate_json("{\"scores\":{\"pep8\":5,\"type_hints\":5,\"edge_cases\":5,\"naming\":5},\"weakest_criterion\":\"pep8\",\"verdict\":\"needs_revision\"}")
|
||||||
state["criteria_scores"] = data.scores
|
state["criteria_scores"] = data.scores
|
||||||
@@ -111,13 +111,12 @@ builder.add_conditional_edges(
|
|||||||
lambda state: state["verdict"] == "ok",
|
lambda state: state["verdict"] == "ok",
|
||||||
{"ok": END, "needs_revision": "rewrite"},
|
{"ok": END, "needs_revision": "rewrite"},
|
||||||
)
|
)
|
||||||
|
# After rewrite, decide to reflect again or end if max rounds reached
|
||||||
builder.add_conditional_edges(
|
builder.add_conditional_edges(
|
||||||
"rewrite",
|
"rewrite",
|
||||||
lambda state: state["round"] < state["max_rounds"],
|
lambda state: "reflect" if state["round"] < state["max_rounds"] else END,
|
||||||
{"rewrite": "reflect", "maxed": END},
|
{"reflect": "reflect", "END": END}
|
||||||
)
|
)
|
||||||
# If maxed, go to END
|
|
||||||
builder.add_edge("rewrite", "maxed")
|
|
||||||
|
|
||||||
graph = builder.compile()
|
graph = builder.compile()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user