feat: Add image upload support with file path handling (#8830)

* ✨ (data.py): introduce a new function get_file_paths to resolve file paths before creating image URLs in HumanMessage contents

* ✨ (general-bugs-agent-images-playground.spec.ts): add test case for user to send images in the playground with the agent component

* 📝 (general-bugs-agent-images-playground.spec.ts): update file path to image file to fix test failure due to incorrect file path

* [autofix.ci] apply automated fixes

* fix: autofix.ci / Update Starter Projects (pull_request)

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: italojohnny <italojohnnydosanjos@gmail.com>
This commit is contained in:
Cristhian Zanforlin Lousa 2025-07-04 10:54:22 -03:00 • committed by GitHub
commit 557f7b31aa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
31 changed files with 216 additions and 121 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -169,8 +169,11 @@ class Data(BaseModel):
files = self.data.get("files", [])
if sender == MESSAGE_SENDER_USER:
if files:
from langflow.schema.image import get_file_paths
contents = [{"type": "text", "text": text}]
for file_path in files:
resolved_file_paths = get_file_paths(files)
for file_path in resolved_file_paths:
image_url = create_data_url(file_path)
contents.append({"type": "image_url", "image_url": {"url": image_url}})
human_message = HumanMessage(content=contents)