portlae / src /pipeline /pipeline.py
puzan789's picture
aAded
2214088
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
)