la04 commited on
Commit
231e3ba
·
verified ·
1 Parent(s): 5c86a37

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -11
app.py CHANGED
@@ -1,6 +1,6 @@
1
  import gradio as gr
2
  import os
3
- from langchain.vectorstores import Chroma # Chroma als Vektordatenbank
4
  from langchain.document_loaders import PyPDFLoader
5
  from langchain.embeddings import HuggingFaceEmbeddings
6
  from langchain.chains import ConversationalRetrievalChain
@@ -20,8 +20,7 @@ def load_doc(list_file_path):
20
  return doc_splits
21
 
22
  def create_db(splits):
23
- embeddings = HuggingFaceEmbeddings()
24
- vectordb = Chroma.from_documents(splits, embeddings)
25
  return vectordb
26
 
27
  def initialize_llmchain(llm_model, temperature, max_tokens, top_k, vector_db):
@@ -30,7 +29,6 @@ def initialize_llmchain(llm_model, temperature, max_tokens, top_k, vector_db):
30
  model_kwargs={
31
  "temperature": temperature,
32
  "max_length": max_tokens,
33
- "top_k": top_k,
34
  }
35
  )
36
  memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
@@ -41,7 +39,6 @@ def initialize_llmchain(llm_model, temperature, max_tokens, top_k, vector_db):
41
  chain_type="stuff",
42
  memory=memory,
43
  return_source_documents=True,
44
- verbose=False
45
  )
46
  return qa_chain
47
 
@@ -51,10 +48,10 @@ def initialize_database(list_file_obj):
51
  vector_db = create_db(doc_splits)
52
  return vector_db, "Datenbank erfolgreich erstellt!"
53
 
54
- def initialize_LLM(llm_option, llm_temperature, max_tokens, top_k, vector_db):
55
  llm_name = list_llm[llm_option]
56
- qa_chain = initialize_llmchain(llm_name, llm_temperature, max_tokens, top_k, vector_db)
57
- return qa_chain, "LLM erfolgreich initialisiert! Chatbot ist bereit."
58
 
59
  def conversation(qa_chain, message, history):
60
  formatted_chat_history = [(f"User: {m}", f"Assistant: {r}") for m, r in history]
@@ -67,10 +64,10 @@ def demo():
67
  with gr.Blocks() as demo:
68
  vector_db = gr.State()
69
  qa_chain = gr.State()
70
- gr.HTML("<center><h1>RAG PDF Chatbot (Kostenlose Version)</h1></center>")
71
  with gr.Row():
72
  with gr.Column():
73
- document = gr.Files(height=300, file_count="multiple", file_types=[".pdf"], interactive=True)
74
  db_btn = gr.Button("Erstelle Vektordatenbank")
75
  db_progress = gr.Textbox(value="Nicht initialisiert", show_label=False)
76
  llm_btn = gr.Radio(["Flan-T5-Small", "MiniLM"], label="Verfügbare Modelle")
@@ -79,7 +76,7 @@ def demo():
79
  qachain_btn = gr.Button("Initialisiere QA-Chatbot")
80
 
81
  with gr.Column():
82
- chatbot = gr.Chatbot(height=400, type="messages")
83
  msg = gr.Textbox(placeholder="Frage stellen...")
84
  submit_btn = gr.Button("Absenden")
85
 
 
1
  import gradio as gr
2
  import os
3
+ from langchain.vectorstores import SimpleVectorStore # Direkt, ohne zusätzliche Abhängigkeiten
4
  from langchain.document_loaders import PyPDFLoader
5
  from langchain.embeddings import HuggingFaceEmbeddings
6
  from langchain.chains import ConversationalRetrievalChain
 
20
  return doc_splits
21
 
22
  def create_db(splits):
23
+ vectordb = SimpleVectorStore.from_documents(splits) # Speichern im Speicher
 
24
  return vectordb
25
 
26
  def initialize_llmchain(llm_model, temperature, max_tokens, top_k, vector_db):
 
29
  model_kwargs={
30
  "temperature": temperature,
31
  "max_length": max_tokens,
 
32
  }
33
  )
34
  memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
 
39
  chain_type="stuff",
40
  memory=memory,
41
  return_source_documents=True,
 
42
  )
43
  return qa_chain
44
 
 
48
  vector_db = create_db(doc_splits)
49
  return vector_db, "Datenbank erfolgreich erstellt!"
50
 
51
+ def initialize_LLM(llm_option, llm_temperature, max_tokens, vector_db):
52
  llm_name = list_llm[llm_option]
53
+ qa_chain = initialize_llmchain(llm_name, llm_temperature, max_tokens, 3, vector_db)
54
+ return qa_chain, "Chatbot ist bereit."
55
 
56
  def conversation(qa_chain, message, history):
57
  formatted_chat_history = [(f"User: {m}", f"Assistant: {r}") for m, r in history]
 
64
  with gr.Blocks() as demo:
65
  vector_db = gr.State()
66
  qa_chain = gr.State()
67
+ gr.HTML("<center><h1>PDF QA Chatbot (Kostenlose Version)</h1></center>")
68
  with gr.Row():
69
  with gr.Column():
70
+ document = gr.Files(file_types=[".pdf"], interactive=True)
71
  db_btn = gr.Button("Erstelle Vektordatenbank")
72
  db_progress = gr.Textbox(value="Nicht initialisiert", show_label=False)
73
  llm_btn = gr.Radio(["Flan-T5-Small", "MiniLM"], label="Verfügbare Modelle")
 
76
  qachain_btn = gr.Button("Initialisiere QA-Chatbot")
77
 
78
  with gr.Column():
79
+ chatbot = gr.Chatbot(height=400)
80
  msg = gr.Textbox(placeholder="Frage stellen...")
81
  submit_btn = gr.Button("Absenden")
82