@@ -106,12 +106,11 @@ def __init__(
106
106
** metadata ,
107
107
}
108
108
109
- def run (self , prompt : str , image_urls : Optional [ list [ str ]] = None ) -> str :
110
- """Run the agent with a prompt and optional images .
109
+ def run (self , prompt : str ) -> str :
110
+ """Run the agent with a prompt.
111
111
112
112
Args:
113
113
prompt: The prompt to run
114
- image_urls: Optional list of base64-encoded image strings. Example: ["data:image/png;base64,<base64_str>"]
115
114
thread_id: Optional thread ID for message history
116
115
117
116
Returns:
@@ -125,15 +124,14 @@ def run(self, prompt: str, image_urls: Optional[list[str]] = None) -> str:
125
124
"recursion_limit" : 100 ,
126
125
}
127
126
128
- # Prepare content with prompt and images if provided
129
- content = [{"type" : "text" , "text" : prompt }]
130
- if image_urls :
131
- content += [{"type" : "image_url" , "image_url" : {"url" : image_url }} for image_url in image_urls ]
127
+ # this message has a reducer which appends the current message to the existing history
128
+ # see more https://langchain-ai.github.io/langgraph/concepts/low_level/#reducers
129
+ input = {"query" : prompt }
132
130
133
131
config = RunnableConfig (configurable = {"thread_id" : self .thread_id }, tags = self .tags , metadata = self .metadata , recursion_limit = 200 )
134
132
# we stream the steps instead of invoke because it allows us to access intermediate nodes
135
133
136
- stream = self .agent .stream ({ "messages" : [ HumanMessage ( content = content )]} , config = config , stream_mode = "values" )
134
+ stream = self .agent .stream (input , config = config , stream_mode = "values" )
137
135
138
136
_tracer = MessageStreamTracer (logger = self .logger )
139
137
@@ -145,7 +143,7 @@ def run(self, prompt: str, image_urls: Optional[list[str]] = None) -> str:
145
143
146
144
for s in traced_stream :
147
145
if len (s ["messages" ]) == 0 or isinstance (s ["messages" ][- 1 ], HumanMessage ):
148
- message = HumanMessage (content = content )
146
+ message = HumanMessage (content = prompt )
149
147
else :
150
148
message = s ["messages" ][- 1 ]
151
149
0 commit comments