Spaces:
Runtime error
Runtime error
| from langchain.document_loaders import DirectoryLoader | |
| from langchain.text_splitter import RecursiveCharacterTextSplitter | |
| from langchain.embeddings import SentenceTransformerEmbeddings | |
| from langchain.vectorstores import Chroma | |
| from langchain_community.llms.huggingface_pipeline import HuggingFacePipeline | |
| from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline | |
| from langchain.chains.question_answering import load_qa_chain | |
| import gradio as gr | |
| import torch | |
| from huggingface_hub import login | |
| import os | |
| directory = 'pets' | |
| HF_TOKEN = os.getenv("HF_TOKEN") | |
| login(token = HF_TOKEN) | |
| def load_docs(directory): | |
| loader = DirectoryLoader(directory) | |
| documents = loader.load() | |
| return documents | |
| def split_docs(documents,chunk_size=1000,chunk_overlap=20): | |
| text_splitter = RecursiveCharacterTextSplitter(chunk_size=chunk_size, chunk_overlap=chunk_overlap) | |
| docs = text_splitter.split_documents(documents) | |
| return docs | |
| documents = load_docs(directory) | |
| docs = split_docs(documents) | |
| embeddings = SentenceTransformerEmbeddings(model_name="thenlper/gte-large") | |
| db = Chroma.from_documents(docs, embeddings) | |
| model_id = "google/gemma-1.1-2b-it" | |
| tokenizer = AutoTokenizer.from_pretrained(model_id) | |
| model = AutoModelForCausalLM.from_pretrained(model_id,torch_dtype=torch.bfloat16) | |
| pipe = pipeline("text-generation", model=model, tokenizer=tokenizer, max_new_tokens=100) | |
| hf = HuggingFacePipeline(pipeline=pipe) | |
| chain = load_qa_chain(hf, chain_type="stuff",verbose=True) | |
| def output(query, history): | |
| matching_docs = db.similarity_search(query) | |
| answer = chain.run(input_documents=matching_docs, question=query) | |
| idx = answer.find("Answer") | |
| return answer[idx:] | |
| gr.ChatInterface(output).launch() |