Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -60,6 +60,41 @@ def search_query():
|
|
| 60 |
except Exception as e:
|
| 61 |
return jsonify({"error": str(e)}), 500
|
| 62 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
|
| 64 |
if __name__ == "__main__":
|
| 65 |
app.run(host="0.0.0.0",debug=True, port=7860)
|
|
|
|
| 60 |
except Exception as e:
|
| 61 |
return jsonify({"error": str(e)}), 500
|
| 62 |
|
| 63 |
+
@app.route("/search-multi", methods=["POST"])
|
| 64 |
+
def search_multi_query():
|
| 65 |
+
"""
|
| 66 |
+
Recherche avec une liste de queries (multi-query) pour style / contexte.
|
| 67 |
+
"""
|
| 68 |
+
data = request.json
|
| 69 |
+
queries = data.get("queries") # ATTENTION : maintenant on attend une liste
|
| 70 |
+
collection_name = data.get("collectionName")
|
| 71 |
+
metadata = data.get("metadata")
|
| 72 |
+
n_results = data.get("nResults", 10)
|
| 73 |
+
|
| 74 |
+
if not queries or not isinstance(queries, list):
|
| 75 |
+
return jsonify({"error": "Le champ 'queries' doit être une liste de chaînes"}), 400
|
| 76 |
+
|
| 77 |
+
try:
|
| 78 |
+
all_results = []
|
| 79 |
+
for query in queries:
|
| 80 |
+
results = search(collection_name, query, metadata, n_results)
|
| 81 |
+
all_results.extend(results)
|
| 82 |
+
|
| 83 |
+
# 🔥 Fusion et tri par score décroissant
|
| 84 |
+
# si plusieurs résultats avec le même id, garder le max score
|
| 85 |
+
merged = {}
|
| 86 |
+
for r in all_results:
|
| 87 |
+
if r["id"] not in merged or r["score"] > merged[r["id"]]["score"]:
|
| 88 |
+
merged[r["id"]] = r
|
| 89 |
+
|
| 90 |
+
final_results = sorted(merged.values(), key=lambda x: x["score"], reverse=True)
|
| 91 |
+
|
| 92 |
+
return jsonify({"results": final_results[:n_results]}), 200
|
| 93 |
+
|
| 94 |
+
except Exception as e:
|
| 95 |
+
return jsonify({"error": str(e)}), 500
|
| 96 |
+
|
| 97 |
+
|
| 98 |
|
| 99 |
if __name__ == "__main__":
|
| 100 |
app.run(host="0.0.0.0",debug=True, port=7860)
|