durgeshshisode1988 commited on
Commit
809caea
1 Parent(s): 6db6d9d
Files changed (5) hide show
  1. .env +4 -0
  2. app.py +63 -0
  3. error_codes.pdf +0 -0
  4. llama3.py +81 -0
  5. requirements.txt +21 -0
.env ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ OPENAI_API_KEY="sk-proj-Z0wca03PTJSq5bwRQlfAT3BlbkFJnqzpRC38JXdo1Fc0NyF0"
2
+ LANGCHAI_API_KEY="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"
3
+ LANGCHAIN_PROJECT="Tutorial_3"
4
+ GROQ_API_KEY="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"
app.py ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import os
3
+ from langchain_groq import ChatGroq
4
+ from langchain_community.document_loaders import WebBaseLoader
5
+ from langchain_community.embeddings import OllamaEmbeddings
6
+ from langchain.text_splitter import RecursiveCharacterTextSplitter
7
+ from langchain.chains.combine_documents import create_stuff_documents_chain
8
+ from langchain_core.prompts import ChatPromptTemplate
9
+ from langchain.chains import create_retrieval_chain
10
+ from langchain_community.vectorstores import FAISS
11
+ import time
12
+
13
+ from dotenv import load_dotenv
14
+
15
+ load_dotenv()
16
+
17
+ ## Load Groq API Key
18
+ groq_api_key = os.environ['GROQ_API_KEY']
19
+
20
+ if "vector" not in st.session_state:
21
+ st.session_state.embeddings=OllamaEmbeddings()
22
+ st.session_state.loader=WebBaseLoader("https://docs.smith.langchain.com/")
23
+ st.session_state.docs=st.session_state.loader.load()
24
+
25
+ st.session_state.text_splitter=RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
26
+ st.session_state.final_documents=st.session_state.text_splitter.split_documents(st.session_state.docs[:50])
27
+ st.session_state.vectors=FAISS.from_documents(st.session_state.final_documents, st.session_state.embeddings)
28
+
29
+
30
+ st.title("Chatgroq Demo")
31
+ llm=ChatGroq(groq_api_key=groq_api_key,
32
+ model="gemma-7b-it")
33
+
34
+ prompt = ChatPromptTemplate.from_template(
35
+ """
36
+ Answer the question based on the provided context only.
37
+ Please provide the most accurate response based on the question.
38
+ <context>
39
+ {context}
40
+ <context>
41
+ Question: {input}
42
+ """
43
+ )
44
+
45
+
46
+ document_chain = create_stuff_documents_chain(llm, prompt)
47
+ retriver = st.session_state.vectors.as_retriever()
48
+ retriver_chain = create_retrieval_chain(retriver, document_chain)
49
+
50
+ prompt=st.text_input("Input your prompt here")
51
+
52
+ if prompt:
53
+ start=time.process_time()
54
+ response = retriver_chain.invoke({"input": prompt})
55
+ print("Response time :",time.process_time() - start)
56
+ st.write(response['answer'])
57
+
58
+ # With a Streamlit expander
59
+ with st.expander("Document Similarity Search"):
60
+ # Find the relevant chunks
61
+ for i, doc in enumerate(response["context"]):
62
+ st.write(doc.page_content)
63
+ st.write("------------------------------------")
error_codes.pdf ADDED
Binary file (120 kB). View file
 
llama3.py ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import os
3
+ from langchain_groq import ChatGroq
4
+ from langchain_openai import OpenAIEmbeddings
5
+ from langchain.text_splitter import RecursiveCharacterTextSplitter
6
+ from langchain.chains.combine_documents import create_stuff_documents_chain
7
+ from langchain_core.prompts import ChatPromptTemplate
8
+ from langchain.chains import create_retrieval_chain
9
+ from langchain_community.vectorstores import FAISS
10
+
11
+ from langchain_community.document_loaders import PyPDFDirectoryLoader
12
+
13
+ from dotenv import load_dotenv
14
+
15
+ load_dotenv()
16
+
17
+ ## load the GroqAPI Key
18
+ os.environ['OPENAI_API_KEY']=os.getenv("OPENAI_API_KEY")
19
+ groq_api_key = os.getenv('GROQ_API_KEY')
20
+
21
+ st.title("ChatBot Demo for Error Codes")
22
+
23
+ llm=ChatGroq(groq_api_key=groq_api_key,
24
+ model="Llama3-8b-8192")
25
+
26
+
27
+ prompt = ChatPromptTemplate.from_template(
28
+ """
29
+ Answer the question based on the provided context only.
30
+ Please provide the most accurate response based on the question.
31
+ <context>
32
+ {context}
33
+ <context>
34
+ Question: {input}
35
+ """
36
+ )
37
+
38
+
39
+ def vector_embedding():
40
+
41
+ if "vectors" not in st.session_state:
42
+
43
+ st.session_state.embeddings = OpenAIEmbeddings()
44
+ st.session_state.loader = PyPDFDirectoryLoader("./data")
45
+ st.session_state.docs = st.session_state.loader.load()
46
+ st.session_state.text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
47
+ st.session_state.final_documents = st.session_state.text_splitter.split_documents(st.session_state.docs[:20])
48
+ st.session_state.vectors = FAISS.from_documents(st.session_state.final_documents, st.session_state.embeddings )
49
+
50
+
51
+
52
+
53
+
54
+ prompt1=st.text_input("Enter your question from Documents")
55
+
56
+ if st.button("Documents Embedding"):
57
+ vector_embedding()
58
+ st.write("VectorStore DB is ready")
59
+
60
+ import time
61
+
62
+
63
+
64
+
65
+ if prompt1:
66
+ start = time.process_time()
67
+ document_chain = create_stuff_documents_chain(llm, prompt)
68
+ retriever = st.session_state.vectors.as_retriever()
69
+ retrieval_chain = create_retrieval_chain(retriever, document_chain)
70
+ response = retrieval_chain.invoke({'input': prompt1})
71
+ print("Response time : ", time.process_time() - start)
72
+ st.write(response['answer'])
73
+
74
+ # With a Streamlit expander
75
+ with st.expander("Document Similarity Search"):
76
+ # Find the relevant chunks
77
+ for i, doc in enumerate(response["context"]):
78
+ st.write(doc.page_content)
79
+ st.write("------------------------------------")
80
+
81
+
requirements.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ langchain_openai
2
+ langchain_core
3
+ python-dotenv
4
+ streamlit
5
+ langchain_community
6
+ langserve
7
+ fastapi
8
+ uvicorn
9
+ langchain-openai
10
+ sse_starlette
11
+ bs4
12
+ pypdf
13
+ chromadb
14
+ ollama
15
+ faiss-cpu
16
+ arxiv
17
+ wikipedia
18
+ beautifulsoup4
19
+ langchainhub
20
+ groq
21
+ langchain-groq