Skip to content

Commit 6d750e8

Browse files
committed
attach file to user message
1 parent 6b6aaeb commit 6d750e8

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

python/llama-index-server/examples/private_file/agent-workflow.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def create_file_tool(chat_request: ChatRequest) -> Optional[FunctionTool]:
1818
Create a tool to read file if the user uploads a file.
1919
"""
2020
file_ids = []
21-
for file in get_file_attachments(chat_request):
21+
for file in get_file_attachments(chat_request.messages):
2222
file_ids.append(file.id)
2323
if len(file_ids) == 0:
2424
return None
@@ -29,7 +29,7 @@ def create_file_tool(chat_request: ChatRequest) -> Optional[FunctionTool]:
2929
)
3030

3131
def read_file(file_id: str) -> str:
32-
file_path = FileService.get_private_file_path(file_id)
32+
file_path = FileService.get_file_path(file_id)
3333
try:
3434
with open(file_path, "r") as file:
3535
return file.read()
@@ -57,7 +57,7 @@ def create_app() -> FastAPI:
5757
workflow_factory=create_workflow,
5858
suggest_next_questions=False,
5959
ui_config=UIConfig(
60-
file_upload_enabled=True,
60+
enable_file_upload=True,
6161
component_dir="components",
6262
),
6363
)

python/llama-index-server/llama_index/server/api/utils/chat_request.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,7 @@ def prepare_user_message(chat_request: ChatRequest) -> ChatMessage:
3737
raise ValueError("Last message must be from user")
3838

3939
# Add attached files to the user message
40-
user_messages = [
41-
message for message in chat_request.messages if message.role == MessageRole.USER
42-
]
43-
attachment_files = get_file_attachments(user_messages)
40+
attachment_files = get_file_attachments(chat_request.messages)
4441
last_message.blocks += [
4542
DocumentBlock(
4643
path=file.path or FileService.get_file_path(file.id),

python/llama-index-server/llama_index/server/utils/chat_attachments.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
11
from typing import List
22

3+
from llama_index.core.base.message import MessageRole
34
from llama_index.server.models.chat import ChatAPIMessage, FileAnnotation, ServerFile
45

56

67
def get_file_attachments(messages: List[ChatAPIMessage]) -> List[ServerFile]:
78
"""
8-
Extract all file attachments from the chat request.
9+
Extract all file attachments from user messages.
910
1011
Args:
1112
messages (List[ChatAPIMessage]): The list of messages.
1213
1314
Returns:
14-
List[PrivateFile]: The list of private files.
15+
List[ServerFile]: The list of private files.
1516
"""
16-
message_annotations = [
17-
message.annotations for message in messages if message.annotations
17+
user_message_annotations = [
18+
message.annotations
19+
for message in messages
20+
if message.annotations and message.role == MessageRole.USER
1821
]
1922
files: List[ServerFile] = []
20-
for annotation in message_annotations:
23+
for annotation in user_message_annotations:
2124
if isinstance(annotation, list):
2225
for item in annotation:
2326
if isinstance(item, FileAnnotation):

0 commit comments

Comments
 (0)