|
import os |
|
import streamlit as st |
|
from llama_index.core import VectorStoreIndex,SimpleDirectoryReader,ServiceContext,download_loader |
|
from llama_index.embeddings import HuggingFaceEmbedding |
|
from llama_index.llms import Gemini, HuggingFaceInferenceAPI, OpenAI |
|
|
|
|
|
def main(): |
|
st.title("Webpage Querier by Rahul Bhoyar") |
|
|
|
with st.sidebar: |
|
st.subheader("Customize Settings") |
|
loader = download_loader("BeautifulSoupWebReader")() |
|
hf_token = st.text_input("Enter your Hugging Face token:") |
|
llm = HuggingFaceInferenceAPI(model_name="HuggingFaceH4/zephyr-7b-alpha", token=hf_token) |
|
|
|
|
|
st.markdown("Query your Web page data with using this chatbot") |
|
|
|
|
|
url = st.text_input("Enter the URL of the web page:") |
|
|
|
|
|
embed_model_uae = HuggingFaceEmbedding(model_name="WhereIsAI/UAE-Large-V1") |
|
service_context = ServiceContext.from_defaults(llm=llm, chunk_size=800, chunk_overlap=20, embed_model=embed_model_uae) |
|
|
|
|
|
if url: |
|
documents = loader.load_data(urls=[url]) |
|
st.success("Documents loaded successfully!") |
|
with st.spinner('Creating Vector Embeddings...'): |
|
|
|
index = VectorStoreIndex.from_documents(documents, service_context=service_context, show_progress=True) |
|
|
|
|
|
index.storage_context.persist() |
|
|
|
|
|
query_engine = index.as_query_engine() |
|
|
|
|
|
query = st.text_input("Ask a question:") |
|
if query: |
|
|
|
response = query_engine.query(query) |
|
|
|
|
|
st.markdown(f"**Response:** {response}") |
|
else: |
|
st.warning("Please enter a valid URL.") |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|