Spaces:
Sleeping
Sleeping
| from pinecone import Pinecone | |
| import os | |
| from text_embedder_encoder import encoder_model_name | |
| class Retriever: | |
| def __init__(self, | |
| pinecone_api_key=os.environ["pinecone_api_key"], | |
| question_index_name=f"hebrew-dentist-questions-{encoder_model_name.replace('/', '-')}".lower()): | |
| # Initialize Pinecone connection | |
| self.pc = Pinecone(api_key=pinecone_api_key) | |
| self.question_index_name = question_index_name | |
| def search_similar(self, query_vector, top_k=50): | |
| """ | |
| Search for similar content using vector similarity in Pinecone | |
| """ | |
| try: | |
| # Get Pinecone index | |
| index = self.pc.Index(self.question_index_name) | |
| # Execute search | |
| results = index.query( | |
| vector=query_vector, | |
| top_k=top_k, | |
| include_metadata=True, | |
| ) | |
| answers_records_ids = [] | |
| for match in results['matches']: | |
| answers_records_ids.append( | |
| ':'.join(match['id'].split(':')[:-1]) + ":" + str(int(match['metadata']['answer_id']))) | |
| return answers_records_ids | |
| except Exception as e: | |
| print(f"Error performing retriever: {e}") | |
| return [] | |