from qdrant_client import QdrantClient from sentence_transformers import SentenceTransformer import os from dotenv import load_dotenv load_dotenv() # Initialize Qdrant Cloud client url=os.environ.get("QDRANT_URL") api_key=os.environ.get("QDRANT_API_KEY") qdrant_client = QdrantClient( url=url, # Use environment variable api_key=api_key, # Use environment variable timeout=30.0 ) # Initialize SentenceTransformer model cache_dir = os.environ.get("MODEL_CACHE_DIR", "/app/cache") # Fallback to /app/cache os.makedirs(cache_dir, exist_ok=True) model = SentenceTransformer("all-MiniLM-L6-v2", cache_folder=cache_dir) # Collection name (must match the one used during upsert) collection_name = "symptoms" def get_similar_symptoms(symptom): # Encode the input symptom vector = model.encode(symptom) # Perform similarity search results = qdrant_client.search( collection_name=collection_name, query_vector=vector.tolist(), limit=5, # Return top 5 similar symptoms with_payload=True # Include payload (e.g., symptom name) ) # Extract symptom names from results similar_symptoms = [result.payload["name"] for result in results] return similar_symptoms