url-loader / app.py
Jagadish Krishnamoorthy
Add doc loader
d76d7a2 unverified
raw
history blame
1.67 kB
import streamlit as st
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_community.document_loaders import WebBaseLoader
default_url = "https://rocm.docs.amd.com/en/latest/what-is-rocm.html"
st.title("URL Loader")
url = st.text_input("Provide URL ", default_url)
if "url_dict" not in st.session_state:
st.session_state.url_dict = {}
if url not in st.session_state.url_dict:
loader = WebBaseLoader(url)
st.session_state.url_dict[url] = loader.load()
llm = ChatOpenAI(temperature=0.1)
prompt = ChatPromptTemplate.from_template("""
Answer the user's question:
Context: {context}
Question : {input}
""")
chain = prompt | llm
# Initialize chat history
if "messages" not in st.session_state:
st.session_state.messages = []
# Display chat messages from history on app rerun
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
# React to user input
if prompt := st.chat_input("Ask Question to the URL provided"):
# Display user message in chat message container
st.chat_message("user").markdown(prompt)
# Add user message to chat history
st.session_state.messages.append({"role": "user", "content": prompt})
response = chain.invoke({
"context" : [st.session_state.url_dict[url]],
"input" : prompt
})
# Display assistant response in chat message container
with st.chat_message("assistant"):
st.markdown(response.content)
# Add assistant response to chat history
st.session_state.messages.append({"role": "assistant", "content": response.content})