Spaces:
Sleeping
Sleeping
Update agent.py
Browse files
agent.py
CHANGED
|
@@ -111,7 +111,7 @@ def build_graph():
|
|
| 111 |
messages = [SystemMessage(content=system_prompt)] + messages
|
| 112 |
|
| 113 |
result = llm_with_tools.invoke(messages)
|
| 114 |
-
print(f"---Assistant Response: {result}") # Added print for debugging
|
| 115 |
return {"messages": [result]}
|
| 116 |
|
| 117 |
builder = StateGraph(MessagesState)
|
|
@@ -178,6 +178,33 @@ if __name__ == "__main__":
|
|
| 178 |
try:
|
| 179 |
# LangGraph returns the final state after execution completes or hits recursion limit
|
| 180 |
final_state = graph.invoke({"messages": [SystemMessage(content=system_prompt), HumanMessage(content=question)]})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 181 |
print("\n--- Final State Messages ---")
|
| 182 |
for m in final_state["messages"]:
|
| 183 |
m.pretty_print()
|
|
|
|
| 111 |
messages = [SystemMessage(content=system_prompt)] + messages
|
| 112 |
|
| 113 |
result = llm_with_tools.invoke(messages)
|
| 114 |
+
# print(f"---Assistant Response: {result}") # Added print for debugging
|
| 115 |
return {"messages": [result]}
|
| 116 |
|
| 117 |
builder = StateGraph(MessagesState)
|
|
|
|
| 178 |
try:
|
| 179 |
# LangGraph returns the final state after execution completes or hits recursion limit
|
| 180 |
final_state = graph.invoke({"messages": [SystemMessage(content=system_prompt), HumanMessage(content=question)]})
|
| 181 |
+
|
| 182 |
+
# 在这里添加您的处理答案代码
|
| 183 |
+
def process_answer(answer):
|
| 184 |
+
"""处理最终答案,去除可能的解释性文本"""
|
| 185 |
+
# 如果答案包含"FINAL ANSWER:",提取实际答案部分
|
| 186 |
+
if "FINAL ANSWER:" in answer.upper():
|
| 187 |
+
import re
|
| 188 |
+
match = re.search(r'(?i)FINAL ANSWER:\s*(.*)', answer)
|
| 189 |
+
if match:
|
| 190 |
+
return match.group(1).strip()
|
| 191 |
+
|
| 192 |
+
# 如果答案较长且包含多个句子,尝试提取最后一句作为答案
|
| 193 |
+
if len(answer.split()) > 15 and "." in answer:
|
| 194 |
+
sentences = answer.split(".")
|
| 195 |
+
# 过滤掉空字符串
|
| 196 |
+
sentences = [s.strip() for s in sentences if s.strip()]
|
| 197 |
+
if sentences:
|
| 198 |
+
return sentences[-1].strip()
|
| 199 |
+
|
| 200 |
+
return answer.strip()
|
| 201 |
+
|
| 202 |
+
# 在提交答案前应用处理
|
| 203 |
+
final_answer = final_state["messages"][-1].content
|
| 204 |
+
processed_answer = process_answer(final_answer)
|
| 205 |
+
# 打印处理后的答案
|
| 206 |
+
print(f"\n--- Processed Answer: {processed_answer}")
|
| 207 |
+
|
| 208 |
print("\n--- Final State Messages ---")
|
| 209 |
for m in final_state["messages"]:
|
| 210 |
m.pretty_print()
|