Spaces:
Sleeping
Sleeping
Update server.py
Browse files
server.py
CHANGED
|
@@ -139,7 +139,7 @@ def retrieve_docs(
|
|
| 139 |
Ejemplo:
|
| 140 |
retrieve_docs(
|
| 141 |
query="estándares farmacéuticos",
|
| 142 |
-
retrievers=["vec_who_1"],
|
| 143 |
top_k=2
|
| 144 |
)
|
| 145 |
"""
|
|
@@ -152,16 +152,20 @@ def retrieve_docs(
|
|
| 152 |
continue
|
| 153 |
|
| 154 |
try:
|
|
|
|
| 155 |
retriever = indices[name].as_retriever(similarity_top_k=top_k)
|
| 156 |
nodes = retriever.retrieve(query)
|
| 157 |
|
| 158 |
-
#
|
| 159 |
-
metadata =
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
|
|
|
|
|
|
| 164 |
|
|
|
|
| 165 |
results[name] = {
|
| 166 |
"title": metadata.get("title", name),
|
| 167 |
"documents": [
|
|
@@ -173,18 +177,22 @@ def retrieve_docs(
|
|
| 173 |
for node in nodes
|
| 174 |
],
|
| 175 |
"description": metadata.get("description", ""),
|
| 176 |
-
"source":
|
| 177 |
-
|
| 178 |
-
"unknown"
|
| 179 |
-
)
|
| 180 |
}
|
|
|
|
| 181 |
except Exception as e:
|
| 182 |
-
results[name] = {
|
|
|
|
|
|
|
|
|
|
| 183 |
|
|
|
|
| 184 |
response = {
|
| 185 |
"query": query,
|
| 186 |
"results": results,
|
| 187 |
-
"top_k": top_k
|
|
|
|
| 188 |
}
|
| 189 |
|
| 190 |
if invalid:
|
|
@@ -195,7 +203,6 @@ def retrieve_docs(
|
|
| 195 |
|
| 196 |
return response
|
| 197 |
|
| 198 |
-
|
| 199 |
|
| 200 |
|
| 201 |
@mcp.tool()
|
|
|
|
| 139 |
Ejemplo:
|
| 140 |
retrieve_docs(
|
| 141 |
query="estándares farmacéuticos",
|
| 142 |
+
retrievers=["vec_who_1", "vec_who_2"],
|
| 143 |
top_k=2
|
| 144 |
)
|
| 145 |
"""
|
|
|
|
| 152 |
continue
|
| 153 |
|
| 154 |
try:
|
| 155 |
+
# 1. Obtener el índice y realizar la búsqueda
|
| 156 |
retriever = indices[name].as_retriever(similarity_top_k=top_k)
|
| 157 |
nodes = retriever.retrieve(query)
|
| 158 |
|
| 159 |
+
# 2. Buscar metadatos COMPLETOS
|
| 160 |
+
metadata = {}
|
| 161 |
+
source = "unknown"
|
| 162 |
+
for src, indexes in retrievers_metadata.items():
|
| 163 |
+
if name in indexes:
|
| 164 |
+
metadata = indexes[name]
|
| 165 |
+
source = src
|
| 166 |
+
break
|
| 167 |
|
| 168 |
+
# 3. Construir respuesta para ESTE retriever
|
| 169 |
results[name] = {
|
| 170 |
"title": metadata.get("title", name),
|
| 171 |
"documents": [
|
|
|
|
| 177 |
for node in nodes
|
| 178 |
],
|
| 179 |
"description": metadata.get("description", ""),
|
| 180 |
+
"source": source,
|
| 181 |
+
"last_updated": metadata.get("last_updated", "")
|
|
|
|
|
|
|
| 182 |
}
|
| 183 |
+
|
| 184 |
except Exception as e:
|
| 185 |
+
results[name] = {
|
| 186 |
+
"error": str(e),
|
| 187 |
+
"retriever": name
|
| 188 |
+
}
|
| 189 |
|
| 190 |
+
# Construir respuesta final
|
| 191 |
response = {
|
| 192 |
"query": query,
|
| 193 |
"results": results,
|
| 194 |
+
"top_k": top_k,
|
| 195 |
+
"timestamp": datetime.datetime.now().isoformat()
|
| 196 |
}
|
| 197 |
|
| 198 |
if invalid:
|
|
|
|
| 203 |
|
| 204 |
return response
|
| 205 |
|
|
|
|
| 206 |
|
| 207 |
|
| 208 |
@mcp.tool()
|