kishorefafa commited on
Commit
7795113
·
verified ·
1 Parent(s): 2f70fa3

remove colap

Browse files
Files changed (1) hide show
  1. app.py +11 -22
app.py CHANGED
@@ -1,16 +1,14 @@
1
- # Import necessary libraries
2
  import torch
3
  from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, pipeline
4
  import gradio as gr
5
- from google.colab import drive
6
  import chromadb
7
- from langchain.llms import HuggingFacePipeline
8
  from langchain.document_loaders import PyPDFDirectoryLoader
9
  from langchain.text_splitter import RecursiveCharacterTextSplitter
10
  from langchain.embeddings import HuggingFaceEmbeddings
11
  from langchain.vectorstores import Chroma
12
  from langchain.chains import ConversationalRetrievalChain
13
  from langchain.memory import ConversationBufferMemory
 
14
 
15
  # Download the model from HuggingFace
16
  model_name = "anakin87/zephyr-7b-alpha-sharded"
@@ -30,23 +28,18 @@ model = AutoModelForCausalLM.from_pretrained(
30
  tokenizer = AutoTokenizer.from_pretrained(model_name)
31
  tokenizer.bos_token_id = 1 # Set beginning of sentence token id
32
 
33
- # Mount Google Drive and specify folder path
34
- drive.mount('/content/drive')
35
- folder_path = '/content/drive/MyDrive/TestcaseReport/'
 
36
 
37
- # Load the documents from Google Drive
38
- loader = PyPDFDirectoryLoader(folder_path)
39
- documents = loader.load()
40
 
41
  # Split the documents into small chunks
42
  text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100)
43
  all_splits = text_splitter.split_documents(documents)
44
 
45
- # Specify embedding model
46
- embedding_model_name = "sentence-transformers/all-mpnet-base-v2"
47
- model_kwargs = {"device": "cpu"} # Using CPU since GPU is not available
48
- embeddings = HuggingFaceEmbeddings(model_name=embedding_model_name, model_kwargs=model_kwargs)
49
-
50
  # Embed document chunks
51
  vectordb = Chroma.from_documents(documents=all_splits, embedding=embeddings, persist_directory="chroma_db")
52
 
@@ -54,7 +47,7 @@ vectordb = Chroma.from_documents(documents=all_splits, embedding=embeddings, per
54
  retriever = vectordb.as_retriever()
55
 
56
  # Build HuggingFace pipeline for using zephyr-7b-alpha
57
- hf_pipeline = pipeline(
58
  "text-generation",
59
  model=model,
60
  tokenizer=tokenizer,
@@ -69,7 +62,7 @@ hf_pipeline = pipeline(
69
  )
70
 
71
  # Specify the llm
72
- llm = HuggingFacePipeline(pipeline=hf_pipeline)
73
 
74
  # Define the create_conversation function
75
  def create_conversation(query: str, chat_history: list) -> tuple:
@@ -90,7 +83,7 @@ def create_conversation(query: str, chat_history: list) -> tuple:
90
  return '', chat_history
91
 
92
  except Exception as e:
93
- chat_history.append((query, str(e)))
94
  return '', chat_history
95
 
96
  # Define the Gradio UI
@@ -99,11 +92,7 @@ with gr.Blocks() as demo:
99
  msg = gr.Textbox()
100
  clear = gr.ClearButton([msg, chatbot])
101
 
102
- def submit_message(text):
103
- _, chat_history = create_conversation(text, [])
104
- chatbot.update(chat_history)
105
-
106
- msg.submit(submit_message, [msg], [msg])
107
 
108
  # Launch the Gradio demo
109
  demo.launch()
 
 
1
  import torch
2
  from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, pipeline
3
  import gradio as gr
 
4
  import chromadb
 
5
  from langchain.document_loaders import PyPDFDirectoryLoader
6
  from langchain.text_splitter import RecursiveCharacterTextSplitter
7
  from langchain.embeddings import HuggingFaceEmbeddings
8
  from langchain.vectorstores import Chroma
9
  from langchain.chains import ConversationalRetrievalChain
10
  from langchain.memory import ConversationBufferMemory
11
+ from langchain_huggingface import HuggingFacePipeline
12
 
13
  # Download the model from HuggingFace
14
  model_name = "anakin87/zephyr-7b-alpha-sharded"
 
28
  tokenizer = AutoTokenizer.from_pretrained(model_name)
29
  tokenizer.bos_token_id = 1 # Set beginning of sentence token id
30
 
31
+ # Specify embedding model
32
+ embedding_model_name = "sentence-transformers/all-mpnet-base-v2"
33
+ model_kwargs = {"device": "cpu"} # Using CPU since GPU is not available
34
+ embeddings = HuggingFaceEmbeddings(model_name=embedding_model_name, model_kwargs=model_kwargs)
35
 
36
+ # Load the documents (replace this with your document loading logic)
37
+ documents = ["Sample document text 1", "Sample document text 2"]
 
38
 
39
  # Split the documents into small chunks
40
  text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100)
41
  all_splits = text_splitter.split_documents(documents)
42
 
 
 
 
 
 
43
  # Embed document chunks
44
  vectordb = Chroma.from_documents(documents=all_splits, embedding=embeddings, persist_directory="chroma_db")
45
 
 
47
  retriever = vectordb.as_retriever()
48
 
49
  # Build HuggingFace pipeline for using zephyr-7b-alpha
50
+ pipeline = pipeline(
51
  "text-generation",
52
  model=model,
53
  tokenizer=tokenizer,
 
62
  )
63
 
64
  # Specify the llm
65
+ llm = HuggingFacePipeline(pipeline=pipeline)
66
 
67
  # Define the create_conversation function
68
  def create_conversation(query: str, chat_history: list) -> tuple:
 
83
  return '', chat_history
84
 
85
  except Exception as e:
86
+ chat_history.append((query, e))
87
  return '', chat_history
88
 
89
  # Define the Gradio UI
 
92
  msg = gr.Textbox()
93
  clear = gr.ClearButton([msg, chatbot])
94
 
95
+ msg.submit(create_conversation, [msg, chatbot], [msg, chatbot])
 
 
 
 
96
 
97
  # Launch the Gradio demo
98
  demo.launch()