File size: 3,008 Bytes
341b0e8
 
db2d027
f437f2a
30b8a93
f437f2a
6085a4e
fe4f2dd
f437f2a
 
1d55d4a
73e234f
f437f2a
eb40503
f437f2a
30b8a93
f437f2a
6bf42b4
51c6493
f437f2a
 
 
f40cccc
 
d76d2e1
 
 
f40cccc
57eb6aa
d76d2e1
57eb6aa
 
d76d2e1
57eb6aa
 
 
 
1e0339f
e69e635
 
48a5b37
 
c0b0ef7
57eb6aa
 
5f04ae4
d76d2e1
11a5cb0
57eb6aa
afa4eb1
 
 
 
57eb6aa
afa4eb1
11a5cb0
1b3dd55
a58bb60
d76d2e1
c283f58
 
 
d76d2e1
a58bb60
6642581
d76d2e1
aff4a30
e1a9a3c
d76d2e1
7c866d5
5f04ae4
d76d2e1
57eb6aa
aff4a30
57eb6aa
 
 
 
1b3dd55
 
5f04ae4
d76d2e1
 
 
b374ad5
46451bb
d34b70c
d76d2e1
4445973
b374ad5
d34b70c
5f04ae4
69b416b
5f04ae4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
from datasets import load_dataset
dataset = load_dataset("Namitg02/Test")
print(dataset)

from langchain.docstore.document import Document as LangchainDocument
from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(chunk_size=100, chunk_overlap=15,separators=["\n\n", "\n", " ", ""])
docs = splitter.create_documents(str(dataset))


from langchain_community.embeddings import HuggingFaceEmbeddings
embedding_model = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")

from langchain_community.vectorstores import Chroma
persist_directory = 'docs/chroma/'

vectordb = Chroma.from_documents(
    documents=docs,
    embedding=embedding_model,
    persist_directory=persist_directory
)



retriever = vectordb.as_retriever(
    search_type="similarity", search_kwargs={"k": 2}
)


from langchain.prompts import PromptTemplate
from langchain.chains import ConversationalRetrievalChain
from langchain.memory import ConversationBufferMemory

memory = ConversationBufferMemory(
    memory_key="chat_history",
    return_messages=True
)

from transformers import pipeline
from langchain_community.llms.huggingface_pipeline import HuggingFacePipeline
from langchain_core.messages import SystemMessage
from langchain_core.prompts import HumanMessagePromptTemplate
from langchain_core.prompts import ChatPromptTemplate
from langchain.prompts import PromptTemplate

print("check1")
question = "How can I reverse Diabetes?"


#template = """Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer. Use three sentences maximum. Keep the answer as concise as possible. Always say "thanks for asking!" at the end of the answer. 
#{context}
#Question: {question}
#Helpful Answer:"""

#QA_CHAIN_PROMPT = PromptTemplate(input_variables=["context", "question"],template=template)

from transformers import AutoTokenizer
from transformers import AutoModelForCausalLM

llm_model = "microsoft/Phi-3-mini-4k-instruct"
tokenizer = AutoTokenizer.from_pretrained(llm_model,trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(llm_model,trust_remote_code=True)
pipe = pipeline(model = llm_model, tokenizer = tokenizer, task = "text-generation", temperature=0.2)

# "microsoft/Phi-3-mini-4k-instruct"
question = "How can I reverse diabetes?"
docs1 = retriever.get_relevant_documents(question)
print(docs1[0].page_content)
printdocs1[0]['generated_text'][-1]

print("check2")


#question = "How can I reverse diabetes?"
result = qa({"question": question})
print("result")
#result['answer']

#"question-answering", "conversational"

print("check3")
chain = pipe(question = question,context = "Use the following information to answer the question- docs1[0].page_content.") 


print("check3A")
print(chain)[0]['generated_text'][-1]
print("check3B")

import gradio as gr
ragdemo = gr.Interface.from_pipeline(chain)

print("check4")
ragdemo.launch()
print("check5")