Spaces:
Runtime error
Runtime error
| from pinecone import Pinecone | |
| from dotenv import load_dotenv | |
| import os | |
| load_dotenv() | |
| class PineconeRetriever: | |
| """Class for initializing and querying Pinecone.""" | |
| def __init__(self, api_key, index_name, namespace): | |
| self.api_key = api_key | |
| self.index_name = index_name | |
| self.namespace = namespace | |
| self.pc = Pinecone(api_key=self.api_key) | |
| self.index = self.pc.Index(self.index_name) | |
| def retrieve_data(self, query, top_k=1): | |
| """Retrieve relevant data from Pinecone.""" | |
| # Convert the query into a numerical vector that Pinecone can search with | |
| query_embedding = self.pc.inference.embed( | |
| model="multilingual-e5-large", | |
| inputs=[query], | |
| parameters={ | |
| "input_type": "query", | |
| "truncate": "END" | |
| } | |
| ) | |
| results = self.index.query(namespace=self.namespace, | |
| vector=query_embedding[0].values, | |
| top_k=top_k, | |
| include_values=False, | |
| include_metadata=True | |
| ) | |
| return results | |
| def retrieve_context(self, query, top_k=1): | |
| results = self.retrieve_data(query, top_k) | |
| context = "" | |
| for match in results['matches']: | |
| context += match['metadata']['source_text'] | |
| return context | |
| if __name__ == "__main__": | |
| pinecone_api=os.getenv("PINECONE_API_KEY"), | |
| pinecone_index=os.getenv("PINECONE_INDEX"), | |
| pinecone_namespace=os.getenv("PINECONE_NAMESPACE") | |
| retriever = PineconeRetriever(API_KEY, INDEX_NAME, NAMESPACE) | |
| query_result = retriever.retrieve_context("hi") | |
| print(query_result) | |