Enhance agent call method to include conversation history and update system prompt for image handling
Browse files- app.py +9 -5
- system_prompt.txt +1 -1
app.py
CHANGED
@@ -148,27 +148,31 @@ class Agent:
|
|
148 |
|
149 |
#print("System prompt:", self.agent.prompt_templates["system_prompt"])
|
150 |
|
151 |
-
def __call__(self, message: str,
|
152 |
-
|
|
|
|
|
|
|
153 |
return answer
|
154 |
|
155 |
## gradio functions
|
156 |
def respond(message: str, history : dict):
|
157 |
|
158 |
# input
|
|
|
159 |
text = message.get("text", "")
|
160 |
if not message.get("files"): # no files uploaded
|
161 |
print("No files received.")
|
162 |
-
message = agent(text)
|
163 |
else:
|
164 |
files = message.get("files", [])
|
165 |
print(f"files received: {files}")
|
166 |
if is_image_extension(files[0]):
|
167 |
image = load_file(files[0]) # assuming only one file is uploaded at a time (gradio default behavior)
|
168 |
-
message = agent(text, images=image)
|
169 |
else:
|
170 |
file = load_file(files[0])
|
171 |
-
message = agent(text, files=file)
|
172 |
|
173 |
# output
|
174 |
print("Agent response:", message)
|
|
|
148 |
|
149 |
#print("System prompt:", self.agent.prompt_templates["system_prompt"])
|
150 |
|
151 |
+
def __call__(self, message: str,
|
152 |
+
images: Optional[list[Image.Image]] = None,
|
153 |
+
files: Optional[str] = None,
|
154 |
+
conversation_history: Optional[dict] = None) -> str:
|
155 |
+
answer = self.agent.run(message, images = images, additional_args={"files": files, "conversation_history": conversation_history})
|
156 |
return answer
|
157 |
|
158 |
## gradio functions
|
159 |
def respond(message: str, history : dict):
|
160 |
|
161 |
# input
|
162 |
+
print("history:", history)
|
163 |
text = message.get("text", "")
|
164 |
if not message.get("files"): # no files uploaded
|
165 |
print("No files received.")
|
166 |
+
message = agent(text, conversation_history=history) # conversation_history is a dict with the history of the conversation
|
167 |
else:
|
168 |
files = message.get("files", [])
|
169 |
print(f"files received: {files}")
|
170 |
if is_image_extension(files[0]):
|
171 |
image = load_file(files[0]) # assuming only one file is uploaded at a time (gradio default behavior)
|
172 |
+
message = agent(text, images=image, conversation_history=history)
|
173 |
else:
|
174 |
file = load_file(files[0])
|
175 |
+
message = agent(text, files=file, conversation_history=history)
|
176 |
|
177 |
# output
|
178 |
print("Agent response:", message)
|
system_prompt.txt
CHANGED
@@ -323,7 +323,7 @@ It is MANDATORY to use these rules for the 'final_answer' tool:
|
|
323 |
• [gr.Image(value=“output.png”), “Here is the chart.”]
|
324 |
• [gr.File(value=“report.pdf”), “Download the report.”]
|
325 |
7. Any deviation (returning a dict, tuple, raw PIL image, etc.) is invalid.
|
326 |
-
8. Always put
|
327 |
|
328 |
Now Begin!
|
329 |
|
|
|
323 |
• [gr.Image(value=“output.png”), “Here is the chart.”]
|
324 |
• [gr.File(value=“report.pdf”), “Download the report.”]
|
325 |
7. Any deviation (returning a dict, tuple, raw PIL image, etc.) is invalid.
|
326 |
+
8. Always put generated images in the list, do NOT create external link.
|
327 |
|
328 |
Now Begin!
|
329 |
|