Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -87,7 +87,6 @@ from langchain.document_loaders import DirectoryLoader, TextLoader
|
|
87 |
from langchain.embeddings import HuggingFaceEmbeddings
|
88 |
from langchain.indexes import VectorstoreIndexCreator
|
89 |
from langchain.indexes.vectorstore import VectorStoreIndexWrapper
|
90 |
-
from langchain.llms import HuggingFaceLLM
|
91 |
from langchain.text_splitter import CharacterTextSplitter
|
92 |
|
93 |
__import__('pysqlite3')
|
@@ -97,6 +96,7 @@ sys.modules['sqlite3'] = sys.modules.pop('pysqlite3')
|
|
97 |
from langchain.vectorstores import Chroma
|
98 |
import gradio as gr
|
99 |
from transformers import pipeline
|
|
|
100 |
|
101 |
docs = []
|
102 |
|
@@ -118,11 +118,23 @@ splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=10)
|
|
118 |
docs = splitter.split_documents(docs)
|
119 |
|
120 |
# Convert the document chunks to embedding and save them to the vector store
|
121 |
-
|
|
|
|
|
122 |
vectorstore.persist()
|
123 |
|
124 |
-
# Load the Hugging Face model
|
125 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
|
127 |
chain = ConversationalRetrievalChain.from_llm(
|
128 |
llm,
|
@@ -159,3 +171,4 @@ with gr.Blocks() as demo:
|
|
159 |
demo.launch(debug=True)
|
160 |
|
161 |
|
|
|
|
87 |
from langchain.embeddings import HuggingFaceEmbeddings
|
88 |
from langchain.indexes import VectorstoreIndexCreator
|
89 |
from langchain.indexes.vectorstore import VectorStoreIndexWrapper
|
|
|
90 |
from langchain.text_splitter import CharacterTextSplitter
|
91 |
|
92 |
__import__('pysqlite3')
|
|
|
96 |
from langchain.vectorstores import Chroma
|
97 |
import gradio as gr
|
98 |
from transformers import pipeline
|
99 |
+
from sentence_transformers import SentenceTransformer
|
100 |
|
101 |
docs = []
|
102 |
|
|
|
118 |
docs = splitter.split_documents(docs)
|
119 |
|
120 |
# Convert the document chunks to embedding and save them to the vector store
|
121 |
+
embedding_model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
|
122 |
+
embeddings = HuggingFaceEmbeddings(embedding_model=embedding_model)
|
123 |
+
vectorstore = Chroma.from_documents(docs, embedding=embeddings, persist_directory="./data")
|
124 |
vectorstore.persist()
|
125 |
|
126 |
+
# Load the Hugging Face model for text generation
|
127 |
+
generator = pipeline("text-generation", model="EleutherAI/gpt-neo-2.7B")
|
128 |
+
|
129 |
+
class HuggingFaceLLMWrapper:
|
130 |
+
def __init__(self, generator):
|
131 |
+
self.generator = generator
|
132 |
+
|
133 |
+
def __call__(self, prompt, max_length=512):
|
134 |
+
result = self.generator(prompt, max_length=max_length, num_return_sequences=1)
|
135 |
+
return result[0]['generated_text']
|
136 |
+
|
137 |
+
llm = HuggingFaceLLMWrapper(generator)
|
138 |
|
139 |
chain = ConversationalRetrievalChain.from_llm(
|
140 |
llm,
|
|
|
171 |
demo.launch(debug=True)
|
172 |
|
173 |
|
174 |
+
|