|
from qa.chains import retrieval_qa |
|
from qa.loader import youtube_doc_loader |
|
from qa.model import load_llm |
|
from qa.split import split_document |
|
from qa.vector_store import create_vector_store |
|
|
|
class YoutubeQA: |
|
|
|
def __init__(self): |
|
pass |
|
|
|
def load_model(self) -> None: |
|
self.llm = load_llm() |
|
|
|
def load_vector_store(self, url: str) -> None: |
|
data = youtube_doc_loader(url=url) |
|
docs = split_document(data=data) |
|
self.retriver = create_vector_store(docs=docs) |
|
|
|
def load_retriever(self) -> None: |
|
self.retrieval_qa = retrieval_qa(llm=self.llm, retriever=self.retriver) |
|
|
|
def run(self, question: str) -> str: |
|
return self.retrieval_qa.run(question) |
|
|