ksj47 commited on
Commit
ee8e88f
·
verified ·
1 Parent(s): 3eebe82

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +64 -3
app.py CHANGED
@@ -60,11 +60,72 @@ class BasicAgent:
60
  # Instruct the LLM to provide a concise answer without any extra phrases.
61
  # Per GAIA instructions: "make sure you don’t include the text “FINAL ANSWER”
62
  # in your submission, just make your agent reply with the answer and nothing else"
63
- prompt = f"""Answer the following question concisely. Provide only the answer, without any additional explanation, introductory phrases, or labels like "Answer:".
 
64
 
65
- Question: {question}
66
 
67
- Concise Answer:"""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
 
69
  try:
70
  response = self.llm.invoke(prompt)
 
60
  # Instruct the LLM to provide a concise answer without any extra phrases.
61
  # Per GAIA instructions: "make sure you don’t include the text “FINAL ANSWER”
62
  # in your submission, just make your agent reply with the answer and nothing else"
63
+ prompt = f"""You are a diligent and highly intelligent AI assistant. Your goal is to answer the given `Question` accurately and concisely by following the ReAct (Reasoning and Acting) framework.
64
+ You must break down the problem into a sequence of thoughts and actions.
65
 
66
+ **Available Tools:**
67
 
68
+ 1. **`GAIAFileLookup(filename: str) -> str`**:
69
+ * Use this tool to retrieve the content of a specific file relevant to the current question.
70
+ * The `task_id` associated with the question will be handled by the system; you only need to provide the `filename`.
71
+ * The question might explicitly name the file or give strong hints.
72
+ * Returns the text content of the file or an error message if the file cannot be found/read.
73
+
74
+ 2. **`Calculator(expression: str) -> str`**:
75
+ * Use this tool to perform mathematical calculations.
76
+ * Input a valid mathematical expression (e.g., "150 * 2 + 57", "(1024 - 256) / 8").
77
+ * Returns the numerical result as a string, or an error message for invalid expressions.
78
+
79
+ 3. **`LLM_Query(sub_question: str) -> str`**:
80
+ * Use this tool for general knowledge lookups, complex reasoning that doesn't fit other tools, or to rephrase/summarize information you've gathered.
81
+ * Input a clear question or instruction.
82
+ * Returns the response from a powerful language model.
83
+
84
+ **Output Format & Process:**
85
+
86
+ You must strictly follow this format for each step of your reasoning:
87
+
88
+ `Question:` The user's question you need to answer.
89
+
90
+ `Thought:` Your reasoning about the question, your plan to answer it, and self-correction if needed. Explain what you need to find out or calculate.
91
+ `Action:` The tool you choose to use from the list above (e.g., `GAIAFileLookup`, `Calculator`, `LLM_Query`). If you believe you can answer directly without a tool, you can skip to `Final Answer:` after your `Thought:`.
92
+ `Action Input:` The input string for the chosen `Action`. For `GAIAFileLookup`, this is the filename. For `Calculator`, the mathematical expression. For `LLM_Query`, the sub-question.
93
+ `Observation:` The result returned by the tool after your `Action` and `Action Input`. (This will be provided to you by the system).
94
+
95
+ ... (You can have multiple Thought/Action/Action Input/Observation cycles) ...
96
+
97
+ `Thought:` Once you have gathered all necessary information and are confident in your answer, summarize your findings.
98
+ `Final Answer:` The concise answer to the original `Question`. **IMPORTANT: Provide ONLY the answer value itself. Do NOT include the prefix "Final Answer:" or any other explanatory text in the string that represents the actual answer to be submitted. The system will extract the text following this label.**
99
+
100
+ **Key Guidelines for GAIA:**
101
+
102
+ 1. **Conciseness:** The final answer must be precise and directly address the question. Avoid any extra text or explanation in the final answer value.
103
+ 2. **Exact Match:** The scoring system uses exact match, so precision is critical.
104
+ 3. **No "FINAL ANSWER" Prefix in Submission:** Remember, the text *after* your `Final Answer:` label is what gets submitted. Do not include the phrase "FINAL ANSWER" or "The answer is" *within that value*.
105
+ 4. **File Identification:** Pay close attention to filenames mentioned or implied in the question.
106
+ 5. **Multi-Step Reasoning:** Break down complex questions into smaller, manageable steps using the Thought/Action/Observation cycle.
107
+
108
+ **Example Scenario (Illustrative):**
109
+
110
+ `Question:` According to `report_Q3.txt`, what was the percentage increase in sales from $1500 in Q2 to the Q3 sales figure, rounded to one decimal place? The Q3 sales figure is mentioned as "Total Revenue".
111
+
112
+ `Thought:` I need to find the "Total Revenue" in `report_Q3.txt`. Then I need to calculate the percentage increase from $1500 to that revenue. Finally, I need to round the result to one decimal place.
113
+ `Action: GAIAFileLookup`
114
+ `Action Input: report_Q3.txt`
115
+ `Observation: [System provides content of report_Q3.txt, e.g., "...Total Revenue: $1800..."]`
116
+
117
+ `Thought:` The report states Total Revenue (Q3 sales) is $1800. Q2 sales were $1500. Now I need to calculate the percentage increase: ((New - Old) / Old) * 100.
118
+ `Action: Calculator`
119
+ `Action Input: ((1800 - 1500) / 1500) * 100`
120
+ `Observation: 20.0`
121
+
122
+ `Thought:` The percentage increase is 20.0%. The question asks for it rounded to one decimal place, which it already is.
123
+ `Final Answer: 20.0%`
124
+
125
+ ---
126
+
127
+ Now, please answer the following question using the ReAct framework:
128
+ `Question: {actual_question_text_will_be_inserted_here}"""
129
 
130
  try:
131
  response = self.llm.invoke(prompt)