refac/fix: web/youtube file attachment handling

This commit is contained in:
Timothy Jaeryang Baek
2025-09-13 00:02:48 +04:00
parent 2227f24bd6
commit 210197fd43
2 changed files with 34 additions and 20 deletions

View File

@@ -491,25 +491,37 @@ def get_sources_from_items(
# Raw Text # Raw Text
# Used during temporary chat file uploads or web page & youtube attachements # Used during temporary chat file uploads or web page & youtube attachements
if item.get("collection_name"): if item.get("context") == "full":
# If item has a collection name, use it if item.get("file"):
collection_names.append(item.get("collection_name")) # if item has file data, use it
elif item.get("file"): query_result = {
# if item has file data, use it "documents": [
query_result = { [item.get("file", {}).get("data", {}).get("content")]
"documents": [ ],
[item.get("file", {}).get("data", {}).get("content")] "metadatas": [[item.get("file", {}).get("meta", {})]],
], }
"metadatas": [[item.get("file", {}).get("meta", {})]],
} if query_result is None:
else: # Fallback
# Fallback to item content if item.get("collection_name"):
query_result = { # If item has a collection name, use it
"documents": [[item.get("content")]], collection_names.append(item.get("collection_name"))
"metadatas": [ elif item.get("file"):
[{"file_id": item.get("id"), "name": item.get("name")}] # If item has file data, use it
], query_result = {
} "documents": [
[item.get("file", {}).get("data", {}).get("content")]
],
"metadatas": [[item.get("file", {}).get("meta", {})]],
}
else:
# Fallback to item content
query_result = {
"documents": [[item.get("content")]],
"metadatas": [
[{"file_id": item.get("id"), "name": item.get("name")}]
],
}
elif item.get("type") == "note": elif item.get("type") == "note":
# Note Attached # Note Attached

View File

@@ -1466,7 +1466,9 @@
const messages = createMessagesList(history, history.currentId); const messages = createMessagesList(history, history.currentId);
const _files = JSON.parse(JSON.stringify(files)); const _files = JSON.parse(JSON.stringify(files));
chatFiles.push(..._files.filter((item) => ['doc', 'file', 'collection'].includes(item.type))); chatFiles.push(
..._files.filter((item) => ['doc', 'text', 'file', 'collection'].includes(item.type))
);
chatFiles = chatFiles.filter( chatFiles = chatFiles.filter(
// Remove duplicates // Remove duplicates
(item, index, array) => (item, index, array) =>