Spaces:
Sleeping
Sleeping
aasherkamal216
commited on
Update app.py
Browse files
app.py
CHANGED
|
@@ -4,7 +4,7 @@ from langchain_groq import ChatGroq
|
|
| 4 |
from langchain_community.utilities import ArxivAPIWrapper, WikipediaAPIWrapper
|
| 5 |
from langchain_community.tools import ArxivQueryRun, WikipediaQueryRun, DuckDuckGoSearchRun
|
| 6 |
from langchain.agents import initialize_agent, AgentType
|
| 7 |
-
from
|
| 8 |
dotenv.load_dotenv()
|
| 9 |
|
| 10 |
## Wikipedia Tool
|
|
@@ -21,7 +21,15 @@ st.set_page_config(page_icon=":mag:", page_title="Tools & Agent")
|
|
| 21 |
st.title(":green[Langchain] Search Agent")
|
| 22 |
|
| 23 |
with st.sidebar:
|
| 24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
|
| 26 |
if "messages" not in st.session_state:
|
| 27 |
st.session_state["messages"] = [
|
|
@@ -41,10 +49,13 @@ if api_key:
|
|
| 41 |
|
| 42 |
search_agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
|
| 43 |
agent_executor_kwargs={"handle_parsing_errors": True})
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
|
|
|
|
|
|
|
|
|
| 49 |
else:
|
| 50 |
-
st.info("Please enter your API
|
|
|
|
| 4 |
from langchain_community.utilities import ArxivAPIWrapper, WikipediaAPIWrapper
|
| 5 |
from langchain_community.tools import ArxivQueryRun, WikipediaQueryRun, DuckDuckGoSearchRun
|
| 6 |
from langchain.agents import initialize_agent, AgentType
|
| 7 |
+
from langchain_community.callbacks.streamlit import StreamlitCallbackHandler
|
| 8 |
dotenv.load_dotenv()
|
| 9 |
|
| 10 |
## Wikipedia Tool
|
|
|
|
| 21 |
st.title(":green[Langchain] Search Agent")
|
| 22 |
|
| 23 |
with st.sidebar:
|
| 24 |
+
with st.popover("Add Groq API Key", use_container_width=True):
|
| 25 |
+
api_key = st.text_input("Get Your Groq API Key [Here](https://console.groq.com/keys)", type="password")
|
| 26 |
+
st.divider()
|
| 27 |
+
st.markdown("<h1 style='text-align: center; font-size: 30px;'>About the App✨</h1>", unsafe_allow_html=True)
|
| 28 |
+
st.write("""Hi there! This is a langchain search agent app. First, you have to
|
| 29 |
+
introduce your Groq API key. Then type your question and hit Enter,
|
| 30 |
+
the assistant will step by step retrieve the information relevant to
|
| 31 |
+
your question from Wikipedia, Arxiv and DuckDuckGo Search and then it'll
|
| 32 |
+
answer your question based on that information.""")
|
| 33 |
|
| 34 |
if "messages" not in st.session_state:
|
| 35 |
st.session_state["messages"] = [
|
|
|
|
| 49 |
|
| 50 |
search_agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
|
| 51 |
agent_executor_kwargs={"handle_parsing_errors": True})
|
| 52 |
+
try:
|
| 53 |
+
with st.chat_message("assistant"):
|
| 54 |
+
st_callback = StreamlitCallbackHandler(st.container(), expand_new_thoughts=True)
|
| 55 |
+
response = search_agent.run(st.session_state.messages, callbacks=[st_callback])
|
| 56 |
+
st.write(response)
|
| 57 |
+
st.session_state.messages.append({"role": "assistant", "content": response})
|
| 58 |
+
except Exception as e:
|
| 59 |
+
st.error(f"An error occurred: {e}")
|
| 60 |
else:
|
| 61 |
+
st.info("Please enter your Groq API key in the sidebar to proceed.")
|