Jagukumar commited on
Commit
c90c5d2
·
verified ·
1 Parent(s): 99a283a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +90 -90
app.py CHANGED
@@ -1,90 +1,90 @@
1
- from langchain_community.embeddings import OpenAIEmbeddings
2
- from langchain_community.vectorstores import Pinecone
3
- from langchain_text_splitters import CharacterTextSplitter
4
- from langchain_openai import OpenAIEmbeddings
5
- from langchain_community.document_loaders import HuggingFaceDatasetLoader
6
- from langchain_pinecone import PineconeVectorStore
7
- from pinecone import Pinecone, ServerlessSpec
8
- from langchain_pinecone import PineconeVectorStore
9
- from langchain_openai import ChatOpenAI
10
- from langchain_core.output_parsers import StrOutputParser
11
- from langchain import hub
12
- from langchain_core.runnables import RunnablePassthrough
13
- import os
14
- import gradio as gr
15
-
16
- from dotenv import load_dotenv
17
- load_dotenv()
18
-
19
-
20
- dataset_name = "Pijush2023/Yale_Psychilogy"
21
- page_content_column = 'Biography'
22
- loader = HuggingFaceDatasetLoader(dataset_name, page_content_column)
23
- data = loader.load()
24
-
25
- text_splitter = CharacterTextSplitter(chunk_size=300, chunk_overlap=50)
26
- documents = text_splitter.split_documents(data)
27
-
28
-
29
- embeddings=OpenAIEmbeddings(api_key=os.environ['OPENAI_API_KEY'])
30
- # Instantiate chat model
31
- chat_model= ChatOpenAI(api_key=os.environ['OPENAI_API_KEY'], temperature=0.5, model='gpt-3.5-turbo-0125')
32
-
33
- # pip install pinecone-client
34
- pc = Pinecone(api_key=os.environ['PINECONE_API_KEY'])
35
-
36
- index_name = "medical"
37
-
38
- if index_name not in pc.list_indexes().names():
39
- pc.create_index(
40
- name=index_name,
41
- dimension=1536,
42
- metric='cosine',
43
- spec=ServerlessSpec(
44
- cloud='aws',
45
- region='us-east-1'
46
- )
47
- )
48
-
49
- vectorstore = PineconeVectorStore(index_name=index_name, embedding=embeddings)
50
- vectorstore.add_documents(documents)
51
-
52
- query = "who is the best doctor for depression?"
53
- vectorstore.similarity_search(query,k=1)
54
-
55
- retriever = vectorstore.as_retriever(search_kwargs={'k':1})
56
- docs = retriever.invoke("who is the best doctors for depression ?")
57
-
58
- prompt=hub.pull("rlm/rag-prompt")
59
-
60
- rag_chain=(
61
- {"context":retriever , "question" : RunnablePassthrough()}
62
- | prompt
63
- | chat_model
64
- | StrOutputParser()
65
- )
66
-
67
- query="depression"
68
- rag_chain.invoke(query)
69
-
70
- def generate_answer(message, history):
71
- return rag_chain.invoke(message)
72
-
73
- # Set up chat bot interface
74
- answer_bot = gr.ChatInterface(
75
- generate_answer,
76
- chatbot=gr.Chatbot(height=300),
77
- textbox=gr.Textbox(placeholder="Ask me a question about Doctor on Psychiatry", container=False, scale=7),
78
- title="Psychiatry Doctor Chat-Bot",
79
- description="This is a chat bot related to top School in United States about Psychiatry",
80
- theme="soft",
81
- examples=["depression", "Mental-Stress", "Bipolar Disorder", "Eating Disorders" , "etc....."],
82
- cache_examples=False,
83
- retry_btn=None,
84
- undo_btn=None,
85
- clear_btn=None,
86
- submit_btn="Ask"
87
- )
88
-
89
- answer_bot.launch()
90
-
 
1
+ from langchain_community.embeddings import OpenAIEmbeddings
2
+ from langchain_community.vectorstores import Pinecone
3
+ from langchain_text_splitters import CharacterTextSplitter
4
+ from langchain_openai import OpenAIEmbeddings
5
+ from langchain_community.document_loaders import HuggingFaceDatasetLoader
6
+ from langchain_pinecone import PineconeVectorStore
7
+ from pinecone import Pinecone, ServerlessSpec
8
+ from langchain_pinecone import PineconeVectorStore
9
+ from langchain_openai import ChatOpenAI
10
+ from langchain_core.output_parsers import StrOutputParser
11
+ from langchain import hub
12
+ from langchain_core.runnables import RunnablePassthrough
13
+ import os
14
+ import gradio as gr
15
+
16
+ from dotenv import load_dotenv
17
+ load_dotenv()
18
+
19
+
20
+ dataset_name = "Pijush2023/Yale_Psychilogy"
21
+ page_content_column = 'Biography'
22
+ loader = HuggingFaceDatasetLoader(dataset_name, page_content_column)
23
+ data = loader.load()
24
+
25
+ text_splitter = CharacterTextSplitter(chunk_size=300, chunk_overlap=50)
26
+ documents = text_splitter.split_documents(data)
27
+
28
+
29
+ embeddings=OpenAIEmbeddings(api_key=os.environ['OPENAI_API_KEY'])
30
+ # Instantiate chat model
31
+ chat_model= ChatOpenAI(api_key=os.environ['OPENAI_API_KEY'], temperature=0.5, model='gpt-3.5-turbo-0125')
32
+
33
+ # pip install pinecone-client
34
+ pc = Pinecone(api_key=os.environ['PINECONE_API_KEY'])
35
+
36
+ index_name = "medical"
37
+
38
+ if index_name not in pc.list_indexes().names():
39
+ pc.create_index(
40
+ name=index_name,
41
+ dimension=1536,
42
+ metric='cosine',
43
+ spec=ServerlessSpec(
44
+ cloud='aws',
45
+ region='us-east-1'
46
+ )
47
+ )
48
+
49
+ vectorstore = PineconeVectorStore(index_name=index_name, embedding=embeddings)
50
+ vectorstore.add_documents(documents)
51
+
52
+ query = "who is the best doctor for depression?"
53
+ vectorstore.similarity_search(query,k=1)
54
+
55
+ retriever = vectorstore.as_retriever(search_kwargs={'k':1})
56
+ docs = retriever.invoke("who is the best doctors for depression ?")
57
+
58
+ prompt=hub.pull("rlm/rag-prompt")
59
+
60
+ rag_chain=(
61
+ {"context":retriever , "question" : RunnablePassthrough()}
62
+ | prompt
63
+ | chat_model
64
+ | StrOutputParser()
65
+ )
66
+
67
+ query="depression"
68
+ rag_chain.invoke(query)
69
+
70
+ def generate_answer(message, history):
71
+ return rag_chain.invoke(message)
72
+
73
+ # Set up chat bot interface
74
+ answer_bot = gr.ChatInterface(
75
+ generate_answer,
76
+ chatbot=gr.Chatbot(height=300),
77
+ textbox=gr.Textbox(placeholder="Ask me a question about Doctor on Psychiatry", container=False, scale=7),
78
+ title="Psychiatry Doctor Chat-Bot",
79
+ description="This is a chat bot related to top School in United States about Psychiatry",
80
+ theme="soft",
81
+ examples=["depression", "Mental-Stress", "Bipolar Disorder", "Eating Disorders" , "etc....."],
82
+ cache_examples=False,
83
+ retry_btn=None,
84
+ undo_btn=None,
85
+ clear_btn=None,
86
+ submit_btn="Ask"
87
+ )
88
+
89
+ answer_bot.launch(share=True)
90
+