Spaces:
Sleeping
Sleeping
Upload streamlit_app.py
Browse files- streamlit_app.py +28 -2
streamlit_app.py
CHANGED
|
@@ -1032,14 +1032,40 @@ class ChromaVectorStore:
|
|
| 1032 |
|
| 1033 |
embeddings_list = embeddings.tolist()
|
| 1034 |
|
|
|
|
| 1035 |
# Create document IDs
|
| 1036 |
doc_ids = [f"doc_{i+j}" for j in range(len(batch_texts))]
|
| 1037 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1038 |
# Add to Chroma collection
|
| 1039 |
self.collection.add(
|
| 1040 |
embeddings=embeddings_list,
|
| 1041 |
documents=batch_texts,
|
| 1042 |
-
metadatas=
|
| 1043 |
ids=doc_ids
|
| 1044 |
)
|
| 1045 |
|
|
|
|
| 1032 |
|
| 1033 |
embeddings_list = embeddings.tolist()
|
| 1034 |
|
| 1035 |
+
|
| 1036 |
# Create document IDs
|
| 1037 |
doc_ids = [f"doc_{i+j}" for j in range(len(batch_texts))]
|
| 1038 |
+
|
| 1039 |
+
# Sanitize metadata: Chroma expects primitive metadata values (str,int,float,bool,None)
|
| 1040 |
+
sanitized_metadatas = []
|
| 1041 |
+
for md in batch_metadatas:
|
| 1042 |
+
clean_md = {}
|
| 1043 |
+
if not md:
|
| 1044 |
+
sanitized_metadatas.append(clean_md)
|
| 1045 |
+
continue
|
| 1046 |
+
for k, v in md.items():
|
| 1047 |
+
# Convert lists to comma-separated strings
|
| 1048 |
+
if isinstance(v, list):
|
| 1049 |
+
clean_md[k] = ', '.join(str(x) for x in v)
|
| 1050 |
+
# Convert dicts to JSON string
|
| 1051 |
+
elif isinstance(v, dict):
|
| 1052 |
+
try:
|
| 1053 |
+
clean_md[k] = json.dumps(v)
|
| 1054 |
+
except Exception:
|
| 1055 |
+
clean_md[k] = str(v)
|
| 1056 |
+
# Accept primitive types
|
| 1057 |
+
elif isinstance(v, (str, int, float, bool)) or v is None:
|
| 1058 |
+
clean_md[k] = v
|
| 1059 |
+
else:
|
| 1060 |
+
# Fallback to string representation
|
| 1061 |
+
clean_md[k] = str(v)
|
| 1062 |
+
sanitized_metadatas.append(clean_md)
|
| 1063 |
+
|
| 1064 |
# Add to Chroma collection
|
| 1065 |
self.collection.add(
|
| 1066 |
embeddings=embeddings_list,
|
| 1067 |
documents=batch_texts,
|
| 1068 |
+
metadatas=sanitized_metadatas,
|
| 1069 |
ids=doc_ids
|
| 1070 |
)
|
| 1071 |
|