Spaces:
Runtime error
Runtime error
| from langchain_huggingface import HuggingFaceEmbeddings # β Updated import | |
| from langchain_chroma import Chroma # β Updated import | |
| from config import CHROMA_DB_PATH, EMBEDDING_MODEL | |
| # Load embeddings model | |
| embeddings = HuggingFaceEmbeddings(model_name=EMBEDDING_MODEL) | |
| # Load ChromaDB | |
| db = Chroma(persist_directory=CHROMA_DB_PATH, embedding_function=embeddings) | |
| def retrieve_similar_chunks(query: str, k=5): | |
| """Retrieve top-k most relevant document chunks from ChromaDB with metadata.""" | |
| results = db.similarity_search_with_score(query, k=k) # β Retrieves content + score | |
| retrieved_docs = [ | |
| { | |
| "num": doc.metadata.get("num", "Unknown"), # β Retrieve stored 'num' | |
| "content": doc.page_content, | |
| "score": score # β Include similarity score | |
| } | |
| for doc, score in results | |
| ] | |
| return retrieved_docs | |
| # Example usage | |
| query = "artificial intelligence in movies" | |
| top_chunks = retrieve_similar_chunks(query, k=5) | |
| # Print results | |
| for chunk in top_chunks: | |
| print(f"π File Num: {chunk['num']}\nπ Similarity Score: {chunk['score']:.4f}\nπ Content: {chunk['content']}\n{'-'*80}") | |