|
from qdrant_client import QdrantClient |
|
from src.vectorstore import QdrantVectorStoreDB |
|
from src.answerquery import AnswerQuery |
|
from src.embedding import all_minilm_l6_v2 |
|
from src.settings import settings |
|
|
|
|
|
class QAPipeline: |
|
""" |
|
A class that handles the entire QA pipeline. |
|
""" |
|
def __init__(self): |
|
self.embeddings=all_minilm_l6_v2() |
|
self.qdrant_client=QdrantClient(url=settings.QDRANT_URL, api_key=settings.QDRANT_API_KEY) |
|
|
|
|
|
self.vector_store = QdrantVectorStoreDB(qdrant_client=self.qdrant_client,vector_embedding= self.embeddings) |
|
self.answer_query = AnswerQuery() |
|
|
|
async def upload_documents(self, documents, collection_name:str="recipe"): |
|
""" |
|
Upload documents to the Qdrant vector store. |
|
""" |
|
await self.vector_store.upload_documents(documents, collection_name) |
|
|
|
|
|
async def answer_query_(self, query): |
|
""" |
|
Answer a query using the Groq model. |
|
""" |
|
return await self.answer_query.answer_query( |
|
vectorembedding=self.embeddings, |
|
query=query, |
|
) |
|
async def search_web(self, query): |
|
""" |
|
Search the web for a query. |
|
""" |
|
return await self.answer_query.search_web( |
|
query=query |
|
) |
|
|