| def retrieve(state): | |
| question = state["question"] | |
| current_db = state["vector_db"] | |
| results = current_db.similarity_search_with_relevance_scores( | |
| question, | |
| k=10 | |
| ) | |
| docs = [] | |
| scores = [] | |
| for doc, score in results: | |
| docs.append(doc) | |
| scores.append(score) | |
| best_score = max(scores) if scores else 0 | |
| print("\n========== RETRIEVAL ==========") | |
| print("Question:", question) | |
| print("Retrieved docs:", len(docs)) | |
| print("Best score:", best_score) | |
| return { | |
| "question": question, | |
| "documents": docs, | |
| "retrieval_score": best_score, | |
| "vector_db": current_db | |
| } |