geronimo-pericoli commited on
Commit
b963f56
·
verified ·
1 Parent(s): 3bc496b

Update server.py

Browse files
Files changed (1) hide show
  1. server.py +21 -14
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
- # Obtener metadatos
159
- metadata = next(
160
- (meta for src in retrievers_metadata.values()
161
- for idx, meta in src.items() if idx == name),
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": next(
177
- (s for s, idx in retrievers_metadata.items() if name in idx),
178
- "unknown"
179
- )
180
  }
 
181
  except Exception as e:
182
- results[name] = {"error": str(e)}
 
 
 
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()