Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
@@ -22,28 +22,27 @@ template = """Use the following pieces of context to answer the question at the
|
|
22 |
|
23 |
QA_CHAIN_PROMPT = PromptTemplate(input_variables = ["context", "question"], template = template)
|
24 |
|
25 |
-
|
26 |
-
|
27 |
-
qa_chain = None
|
28 |
|
29 |
def invoke(openai_api_key, youtube_url, prompt):
|
30 |
openai.api_key = openai_api_key
|
31 |
global qa_chain
|
32 |
-
if (os.path.isdir(
|
33 |
print(1)
|
34 |
-
youtube_dir = "docs/youtube/"
|
35 |
-
loader = GenericLoader(YoutubeAudioLoader([youtube_url],
|
36 |
docs = loader.load()
|
37 |
text_splitter = RecursiveCharacterTextSplitter(chunk_size = 1500, chunk_overlap = 150)
|
38 |
splits = text_splitter.split_documents(docs)
|
39 |
-
chroma_dir = "docs/chroma/"
|
40 |
-
vectordb = Chroma.from_documents(documents = splits, embedding = OpenAIEmbeddings(), persist_directory =
|
41 |
llm = ChatOpenAI(model_name = "gpt-4", temperature = 0)
|
42 |
qa_chain = RetrievalQA.from_chain_type(llm, retriever = vectordb.as_retriever(), return_source_documents = True, chain_type_kwargs = {"prompt": QA_CHAIN_PROMPT})
|
43 |
print(2)
|
44 |
result = qa_chain({"query": prompt})
|
45 |
-
shutil.rmtree(
|
46 |
-
#shutil.rmtree(
|
47 |
return result["result"]
|
48 |
|
49 |
description = """The app demonstrates how to use a <strong>Large Language Model</strong> (LLM) with <strong>Retrieval Augmented Generation</strong> (RAG) on external data.
|
|
|
22 |
|
23 |
QA_CHAIN_PROMPT = PromptTemplate(input_variables = ["context", "question"], template = template)
|
24 |
|
25 |
+
YOUTUBE_DIR = "docs/youtube/"
|
26 |
+
CHROMA_DIR = "docs/chroma/"
|
|
|
27 |
|
28 |
def invoke(openai_api_key, youtube_url, prompt):
|
29 |
openai.api_key = openai_api_key
|
30 |
global qa_chain
|
31 |
+
if (os.path.isdir(CHROMA_DIR) == False):
|
32 |
print(1)
|
33 |
+
#youtube_dir = "docs/youtube/"
|
34 |
+
loader = GenericLoader(YoutubeAudioLoader([youtube_url], YOUTUBE_DIR), OpenAIWhisperParser())
|
35 |
docs = loader.load()
|
36 |
text_splitter = RecursiveCharacterTextSplitter(chunk_size = 1500, chunk_overlap = 150)
|
37 |
splits = text_splitter.split_documents(docs)
|
38 |
+
#chroma_dir = "docs/chroma/"
|
39 |
+
vectordb = Chroma.from_documents(documents = splits, embedding = OpenAIEmbeddings(), persist_directory = CHROMA_DIR)
|
40 |
llm = ChatOpenAI(model_name = "gpt-4", temperature = 0)
|
41 |
qa_chain = RetrievalQA.from_chain_type(llm, retriever = vectordb.as_retriever(), return_source_documents = True, chain_type_kwargs = {"prompt": QA_CHAIN_PROMPT})
|
42 |
print(2)
|
43 |
result = qa_chain({"query": prompt})
|
44 |
+
#shutil.rmtree(YOUTUBE_DIR)
|
45 |
+
#shutil.rmtree(CHROMA_DIR)
|
46 |
return result["result"]
|
47 |
|
48 |
description = """The app demonstrates how to use a <strong>Large Language Model</strong> (LLM) with <strong>Retrieval Augmented Generation</strong> (RAG) on external data.
|