Skip to content

Commit 02591dd

Browse files
committed
added image objects to api call to agent for better context for agent
1 parent af3accb commit 02591dd

File tree

4 files changed

+28
-13
lines changed

4 files changed

+28
-13
lines changed

api/llm/agent.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,15 @@ def get_agent():
6565

6666

6767
def chat_with_agent(
68-
message: str, user_id: str = "default", selected_images: Optional[List[str]] = None
68+
message: str, user_id: str = "default", selected_images: Optional[List[dict]] = None
6969
) -> str:
7070
"""
7171
Send a message to the agent and get a response.
7272
7373
Args:
7474
message: The user's message
7575
user_id: Unique identifier for the user/thread
76-
selected_images: List of selected image names (optional)
76+
selected_images: List of selected image objects (optional)
7777
7878
Returns:
7979
The agent's response as a string
@@ -83,7 +83,16 @@ def chat_with_agent(
8383
# Prepare the message with context
8484
full_message = message
8585
if selected_images and len(selected_images) > 0:
86-
image_context = f" Selected images: {', '.join(selected_images)}."
86+
image_context = "\n\nSelected Images:\n"
87+
for i, img in enumerate(selected_images, 1):
88+
image_context += (
89+
f"{i}. {img.get('title', 'Untitled')} (ID: {img.get('id', 'unknown')})\n"
90+
)
91+
image_context += f" Type: {img.get('type', 'unknown')}\n"
92+
image_context += f" Description: {img.get('description', 'No description')}\n"
93+
if img.get("url"):
94+
image_context += f" URL: {img.get('url')}\n"
95+
image_context += "\n"
8796
full_message = message + image_context
8897

8998
# Configure thread ID for conversation continuity

api/server/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import List, Optional
1+
from typing import Any, Dict, List, Optional
22

33
from fastapi import FastAPI, HTTPException
44
from pydantic import BaseModel
@@ -14,7 +14,7 @@
1414

1515
class ChatRequest(BaseModel):
1616
message: str
17-
selected_images: Optional[List[str]] = []
17+
selected_images: Optional[List[Dict[str, Any]]] = []
1818
user_id: Optional[str] = None
1919

2020

src/app/page.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,12 @@ export default function Home() {
101101

102102
const handleChatMessage = async (message: string) => {
103103
const selectedImageIds = Array.from(selectedImages);
104-
const imageMetadata =
105-
selectedImageIds.length > 0
106-
? `\n\nSelected Images: ${selectedImageIds.join(", ")}`
107-
: "";
104+
const selectedImageObjects = images.filter((img) =>
105+
selectedImageIds.includes(img.id),
106+
);
108107

109-
// Add user message
110-
const userMessage = createMessage(message + imageMetadata, "user");
108+
// Add user message (without image metadata)
109+
const userMessage = createMessage(message, "user");
111110
addMessage(userMessage);
112111

113112
// Set loading state
@@ -117,7 +116,7 @@ export default function Home() {
117116
try {
118117
const apiResponse = await sendChatMessage({
119118
message,
120-
selected_images: selectedImageIds,
119+
selected_images: selectedImageObjects,
121120
user_id: userId,
122121
});
123122

src/lib/actions.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,14 @@ import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
99

1010
interface ChatRequest {
1111
message: string;
12-
selected_images: string[];
12+
selected_images: Array<{
13+
id: string;
14+
url: string | null;
15+
title: string;
16+
description: string;
17+
timestamp: Date;
18+
type: "uploaded" | "generated" | "sample";
19+
}>;
1320
user_id?: string;
1421
}
1522

0 commit comments

Comments
 (0)