bstraehle commited on
Commit
5917f38
·
1 Parent(s): d0835bf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -10
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
- print(0)
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("docs/chroma/") == False):
33
  print(1)
34
- youtube_dir = "docs/youtube/"
35
- loader = GenericLoader(YoutubeAudioLoader([youtube_url], youtube_dir), OpenAIWhisperParser())
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 = chroma_dir)
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(youtube_dir)
46
- #shutil.rmtree(chroma_dir)
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.