Spaces:
Runtime error
Runtime error
# from langchain import PromptTemplate | |
# from langchain import LLMChain | |
# from langchain.llms import CTransformers | |
# import gradio as gr | |
# B_INST, E_INST = "[INST]", "[/INST]" | |
# B_SYS, E_SYS = "<<SYS>>\n", "\n<</SYS>>\n\n" | |
# # DEFAULT_SYSTEM_PROMPT="\ | |
# # You are a helpful, respectful, and honest assistant designed to improve English language skills. Your name is Nemo\ | |
# # Always provide accurate and helpful responses to language improvement tasks, while ensuring safety and ethical standards. \ | |
# # Your answers should not include any harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. \ | |
# # Please ensure that your responses are socially unbiased, positive, and focused on enhancing language skills. \ | |
# # If a question does not make sense or is not factually coherent, explain why instead of answering something incorrect. \ | |
# # If you don't know the answer to a question, please don't share false information. \ | |
# # Your role is to guide users through various language exercises and challenges, helping them to practice and improve their English skills in a fun and engaging way. \ | |
# # Always encourage users to try different approaches and provide constructive feedback to help them progress." | |
# DEFAULT_SYSTEM_PROMPT="\ | |
# You are a helpful, respectful, and honest assistant designed to improve English language skills. Your name is Nemo\ | |
# If you don't know the answer to a question, please don't share false information. \ | |
# Your role is to guide users through various language exercises and challenges, helping them to practice and improve their English skills in a fun and engaging way. \ | |
# Always encourage users to try different approaches and provide constructive feedback to help them progress." | |
# instruction = "Have a good conversation: \n\n {text}" | |
# SYSTEM_PROMPT = B_SYS + DEFAULT_SYSTEM_PROMPT + E_SYS | |
# template = B_INST + SYSTEM_PROMPT + instruction + E_INST | |
# prompt = PromptTemplate(template=template, input_variables=["text"]) | |
# # llm = CTransformers(model="TheBloke/Llama-2-7B-Chat-GGUF", model_file="llama-2-7b-chat.Q3_K_S.gguf", | |
# llm = CTransformers(model="NousResearch/Llama-2-7b-chat-hf", | |
# model_type='llama', | |
# config={'max_new_tokens': 128, | |
# 'temperature': 0.01} | |
# ) | |
# LLM_Chain = LLMChain(prompt=prompt, llm=llm) | |
# def greet(prompt): | |
# return LLM_Chain.run(prompt) | |
# iface = gr.Interface(fn=greet, inputs="text", outputs="text") | |
# iface.launch() | |
########################3 | |
from langchain.chains import RetrievalQA, ConversationalRetrievalChain | |
from langchain.vectorstores import Chroma | |
from langchain.text_splitter import CharacterTextSplitter | |
from langchain.document_loaders import DirectoryLoader, TextLoader,PyPDFLoader | |
from transformers import pipeline, AutoModelForCausalLM | |
from langchain.llms import HuggingFacePipeline | |
from langchain.embeddings import HuggingFaceInstructEmbeddings | |
import gradio as gr | |
from InstructorEmbedding import INSTRUCTOR | |
import torch | |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
from transformers import AutoModelForSequenceClassification, AutoTokenizer | |
tokenizer = AutoTokenizer.from_pretrained("google/flan-t5-base") | |
model = AutoModelForSeq2SeqLM.from_pretrained("google/flan-t5-base") | |
pipe = pipeline( | |
"text2text-generation", | |
model=model, | |
tokenizer=tokenizer, | |
max_length=200, | |
temperature=0.8, | |
top_p=0.95, | |
repetition_penalty=1.15, | |
do_sample=True | |
) | |
local_llm = HuggingFacePipeline(pipeline=pipe) | |
loader = PyPDFLoader('conv.pdf') | |
# loader = TextLoader('info.txt') | |
document = loader.load() | |
text_spliter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0) | |
texts = text_spliter.split_documents(document) | |
embedding = HuggingFaceInstructEmbeddings() | |
docsearch = Chroma.from_documents(texts, embedding, persist_directory='db') | |
retriever = docsearch.as_retriever(search_kwargs={"k": 3}) | |
qa_chain = RetrievalQA.from_chain_type(llm=local_llm, | |
chain_type="stuff", | |
retriever=retriever, | |
return_source_documents=True) | |
def gradinterface(query,history): | |
result = qa_chain({'query': query}) | |
return result['result'] | |
demo = gr.ChatInterface(fn=gradinterface, title='OUR_OWN_BOT') | |
if __name__ == "__main__": | |
demo.launch(share=True) |