Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added the example directory to LYZR #19

Merged
merged 4 commits into from
Mar 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions example/YouTubeChatbot/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# youtubechatbot111

App Link here :[Youtube Chatbot](https://youtubechatbot111-dphcjsrysxgqchabexhv2d.streamlit.app/)
This application is driven by Lyzr SDK's Chatbot functionality! Here, you can upload your YouTube links and ask questions to receive relevant and insightful responses. Whether you're a student seeking clarification or a curious learner eager to delve deeper into a particular subject, our YouTube Chatbot is here to facilitate your learning journey.
1 change: 1 addition & 0 deletions example/YouTubeChatbot/abc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

53 changes: 53 additions & 0 deletions example/YouTubeChatbot/app1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import streamlit as st
import os
from lyzr import ChatBot
import weaviate
import openai

# Set your OpenAI API key
openai.api_key = st.secrets["OPENAI_API_KEY"]

# Define the Weaviate vector store parameters
vector_store_params = {
"vector_store_type": "WeaviateVectorStore",
"url": "https://newytchatbot-tr5zy9ee.weaviate.network",
"api_key": "8C9HovD2PvtgREyGn77YGPyLnCSWB5vu8t7L",
"index_name": "Akshay" # First letter should be capital
}

# Alternatively, for a local Embedded Weaviate vector store
# vector_store_params = {
# "vector_store_type": "WeaviateVectorStore",
# "index_name": "IndexName" # First letter should be capital
# }

# Function to initialize the Chatbot with the provided video URL
def initialize_chatbot(video_url):
return ChatBot.youtube_chat(urls=[video_url], vector_store_params=vector_store_params)

# Main function to create the Streamlit app
def main():
st.title("YouTube Chatbot")

# Input field for entering the YouTube video URL
video_url = st.text_input("Enter YouTube Video URL:")

# Initialize the Chatbot if the video URL is provided
if video_url:
chatbot = initialize_chatbot(video_url)

# Input field for asking questions
question = st.text_input("Ask a question related to the video content:")

# Button to submit the question and get the response
if st.button("Ask"):
if question:
response = chatbot.chat(question)
st.write("Chatbot's Response:")
st.write(response.response)
else:
st.warning("Please enter a question.")

# Run the Streamlit app
if __name__ == "__main__":
main()
Binary file added example/YouTubeChatbot/requirements.txt
Binary file not shown.
120 changes: 120 additions & 0 deletions example/wikibot/Hello.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
import os
os.system("playwright install")
from PIL import Image
import streamlit as st
from lyzr import ChatBot
import nest_asyncio
#from typing import Union
import openai

os.environ["OPENAI_API_KEY"] = st.secrets["apikey"]

# Apply nest_asyncio
nest_asyncio.apply()

# Custom function to style the app
def style_app():
# You can put your CSS styles here
st.markdown("""
<style>
.app-header { visibility: hidden; }
.css-18e3th9 { padding-top: 0; padding-bottom: 0; }
.css-1d391kg { padding-top: 1rem; padding-right: 1rem; padding-bottom: 1rem; padding-left: 1rem; }
.button-group { display: flex; justify-content: space-between; }
.button { flex: 1; margin: 0 0.5rem; background-color: #4CAF50; color: white; border: none; padding: 15px 32px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; transition-duration: 0.4s; cursor: pointer; border-radius: 12px; }
.button:hover { background-color: #45a049; }
.button:active { background-color: #3e8e41; transform: translateY(2px); }
.input-text { padding: 10px; border-radius: 12px; border: 1px solid #ccc; width: 100%; box-sizing: border-box; margin-bottom: 10px; }
.input-text:focus { border-color: #4CAF50; }
</style>
""", unsafe_allow_html=True)

# Call the function to apply the styles
style_app()

# Load and display the logo
image = Image.open("lyzr-logo.png")
st.image(image, width=150)

# App title and introduction
st.title("WikiBot")
st.markdown("### Welcome to WikiBot! πŸ€–")
st.markdown("Interact with Wikipedia Through Chatbots (built using LYZR SDK)")

# Define function to initialize chatbot
def initialize_chatbot(url):
# Replace these parameters with your actual Weaviate Vector Store parameters
vector_store_params = {
"vector_store_type": "WeaviateVectorStore",
"url": "https://wikibot-zn4f2emj.weaviate.network",
"api_key": "JKkfz6V0kxYa3WX40FdyiFf2DDTM3GlAIyTT",
"index_name": "Akshay"
}
# Initialize the Webpage Chatbot with the provided URL
return ChatBot.webpage_chat(
url=url,
vector_store_params=vector_store_params
)

# Main function to run the Streamlit app
def main():
# User input for URL
url = st.text_input("Enter the URL of the webpage:")

# Check if URL is provided
if url:
# Initialize the chatbot with the provided URL
chatbot = initialize_chatbot(url)

# Pre-defined prompts
prompts = [
"What is the summary of this page?",
"Can you explain the history of this topic?",
"Who are the notable figures related to this topic?",
"What are the controversies surrounding this topic?"
]

# Display pre-defined prompts as buttons
col1, col2 = st.columns(2)
for i, prompt in enumerate(prompts):
if i % 2 == 0:
button = col1.button(prompt, key=f"button_{i}")
else:
button = col2.button(prompt, key=f"button_{i}")

# Check if button is clicked
if button:
# Chat with the chatbot
response = chatbot.chat(prompt)

# Display chatbot's response
st.write("Chatbot's Response:")
st.write(response.response)


# User's own question input field
user_question = st.text_input("Enter your own question:")

# Chat with the chatbot if user provides a question
if user_question:
response = chatbot.chat(user_question)

# Display chatbot's response
st.write("Chatbot's Response:")
st.write(response.response)

# Run the Streamlit app
if __name__ == "__main__":
main()

# Footer or any additional information
with st.expander("ℹ️ - About this App"):
st.markdown("""
WikiBot enables seamless interaction with Wikipedia through chatbots powered by the LYZR SDK. Effortlessly explore topics, utilize pre-defined prompts for summaries, and pose inquiries directly within your browser. For inquiries or assistance, reach out to Lyzr.
""")


st.link_button("Lyzr", url='https://www.lyzr.ai/', use_container_width = True)
st.link_button("Book a Demo", url='https://www.lyzr.ai/book-demo/', use_container_width = True)
st.link_button("Discord", url='https://discord.gg/nm7zSyEFA2', use_container_width = True)
st.link_button("Slack", url='https://join.slack.com/t/genaiforenterprise/shared_invite/zt-2a7fr38f7-_QDOY1W1WSlSiYNAEncLGw', use_container_width = True)
1 change: 1 addition & 0 deletions example/wikibot/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
WikiBot enables seamless interaction with Wikipedia through chatbots powered by the LYZR SDK. Effortlessly explore topics, utilize pre-defined prompts for summaries, and pose inquiries directly within your browser. For inquiries or assistance, reach out to Lyzr.
1 change: 1 addition & 0 deletions example/wikibot/abc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Binary file added example/wikibot/lyzr-logo-cut.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added example/wikibot/lyzr-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions example/wikibot/packages.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
libnss3
libnspr4
libatk1.0-0
libatk-bridge2.0-0
libcups2
libdrm2
libxkbcommon0
libxcomposite1
libxdamage1
libxfixes3
libxrandr2
libgbm1
libpango-1.0-0
libcairo2
libasound2
libatspi2.0-0
libwayland-client0
104 changes: 104 additions & 0 deletions example/wikibot/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
aiohttp==3.9.3
aiosignal==1.3.1
aiostream==0.5.2
altair==5.2.0
annotated-types==0.6.0
anyio==3.7.1
appdirs==1.4.4
asyncio==3.4.3
attrs==23.2.0
Authlib==1.3.0
beautifulsoup4==4.12.2
blinker==1.7.0
cachetools==5.3.3
certifi==2023.11.17
cffi==1.16.0
charset-normalizer==3.3.2
click==8.1.7
contourpy==1.2.0
cryptography==42.0.5
cycler==0.12.1
dataclasses-json==0.5.14
Deprecated==1.2.14
distro==1.9.0
filelock==3.13.1
fonttools==4.49.0
frozenlist==1.4.1
fsspec==2024.2.0
gitdb==4.0.11
GitPython==3.1.41
greenlet==3.0.3
h11==0.14.0
httpcore==1.0.4
httpx==0.27.0
huggingface-hub==0.21.4
idna==3.6
importlib_metadata==7.0.2
Jinja2==3.1.3
joblib==1.3.2
jsonpatch==1.33
jsonpointer==2.4
jsonschema==4.21.1
jsonschema-specifications==2023.12.1
kiwisolver==1.4.5
langchain==0.0.339
langsmith==0.0.92
litellm==1.2.0
llama-index==0.9.4
llmsherpa==0.1.4
lyzr==0.1.25
markdown-it-py==3.0.0
MarkupSafe==2.1.5
marshmallow==3.21.1
mdurl==0.1.2
multidict==6.0.5
mypy-extensions==1.0.0
nest-asyncio==1.6.0
nltk==3.8.1
numpy==1.26.4
openai==1.3.4
packaging==23.2
pandas==2.0.2
pillow==10.2.0
playwright==1.42.0
protobuf==4.25.3
pyarrow==15.0.1
pycparser==2.21
pydantic==2.6.4
pydantic_core==2.16.3
pydeck==0.8.1b0
pyee==11.0.1
Pygments==2.17.2
pyparsing==3.1.2
python-dateutil==2.9.0.post0
python-dotenv==1.0.1
pytz==2024.1
PyYAML==6.0.1
referencing==0.33.0
regex==2023.12.25
requests==2.31.0
rich==13.7.1
rpds-py==0.18.0
six==1.16.0
smmap==5.0.1
sniffio==1.3.1
soupsieve==2.5
SQLAlchemy==2.0.28
streamlit==1.32.2
tenacity==8.2.3
tiktoken==0.6.0
tokenizers==0.15.2
toml==0.10.2
toolz==0.12.1
tornado==6.4
tqdm==4.66.2
typing-inspect==0.9.0
typing_extensions==4.10.0
tzdata==2024.1
urllib3==1.26.18
validators==0.22.0
watchdog==4.0.0
weaviate-client==3.25.3
wrapt==1.16.0
yarl==1.9.4
zipp==3.18.1