Spaces:
Sleeping
Sleeping
import os | |
import openai | |
import streamlit as st | |
from langchain.agents import load_tools, initialize_agent | |
from langchain.llms import OpenAI | |
import time | |
from streamlit_option_menu import option_menu | |
def initialize_tools_and_agent(openai_api_key): | |
llm = OpenAI(temperature=0,openai_api_key=openai_api_key) | |
tools = load_tools(["llm-math"], llm=llm) | |
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True) | |
return agent | |
# Set Streamlit page configuration | |
st.set_page_config(page_title='Math ChatGPT4', | |
page_icon=":memo:", | |
layout='wide', | |
initial_sidebar_state='collapsed') | |
st.title('Mathematical Puzzles Solving Tool') | |
#st.header('Language Model App. for Mathematical Puzzle Solver') | |
# Set CSS properties for HTML components | |
st.markdown(""" | |
<style> | |
body { | |
color: #ff0; | |
background-color: #4f8bf9; | |
} | |
h1, h2 { | |
color: #000000; | |
} | |
</style> | |
""", unsafe_allow_html=True) | |
hide_style=''' | |
<style> | |
#MainMenu {visibility:hidden;} | |
footer {visibility:hidden;} | |
.css-hi6a2p {padding-top: 0rem;} | |
head {visibility:hidden;} | |
</style> | |
''' | |
with st.sidebar: | |
selected = option_menu("Main Menu", ["Home", 'Help'], | |
icons=['house', 'gear'], menu_icon="cast", default_index=0) | |
selected | |
hide_style=''' | |
<style> | |
#MainMenu {visibility:hidden;} | |
footer {visibility:hidden;} | |
.css-hi6a2p {padding-top: 0rem;} | |
head {visibility:hidden;} | |
</style> | |
''' | |
hide_streamlit_style = """ | |
<style> | |
div[data-testid="stToolbar"] { | |
visibility: hidden; | |
height: 0%; | |
position: fixed; | |
} | |
div[data-testid="stDecoration"] { | |
visibility: hidden; | |
height: 0%; | |
position: fixed; | |
} | |
div[data-testid="stStatusWidget"] { | |
visibility: hidden; | |
height: 0%; | |
position: fixed; | |
} | |
#MainMenu { | |
visibility: hidden; | |
height: 0%; | |
} | |
header { | |
visibility: hidden; | |
height: 0%; | |
} | |
footer { | |
visibility: hidden; | |
height: 0%; | |
} | |
</style> | |
""" | |
st.markdown(hide_streamlit_style, unsafe_allow_html=True) | |
st.markdown(""" | |
<style> | |
.footer { | |
position: fixed; | |
left: 0; | |
bottom: 0; | |
width: 100%; | |
background-color: #f8f9fa; | |
color: black; | |
text-align: center; | |
padding: 10px; | |
} | |
</style> | |
<div class="footer"> | |
<p>Copyright © 2023 AI-Books. All Rights Reserved.</p> | |
</div> | |
""", unsafe_allow_html=True) | |
if selected=="Help": | |
st.markdown(hide_style,unsafe_allow_html=True) | |
# st.title("Help") | |
# Import required libraries | |
import streamlit as st | |
# Set Streamlit page configuration | |
#st.set_page_config(page_title='Help - XLS Office Documents Analysis with ChatGPT4 NLP Model', | |
# page_icon=":memo:", | |
# layout='wide', | |
# initial_sidebar_state='collapsed') | |
import streamlit as st | |
# Set CSS properties for HTML components | |
st.markdown(""" | |
<style> | |
body { | |
color: #000; | |
background-color: #f0f0f0; | |
font-family: Arial, sans-serif; | |
} | |
h1, h2 { | |
color: #ff6600; | |
text-align: center; | |
} | |
</style> | |
""", unsafe_allow_html=True) | |
# Display application title | |
# st.markdown(""" | |
# <h1>ChatGPT-4 Bot: Puzzle Solving and Imagination Companion</h1> | |
# <h2>Your Partner for Puzzles and Creative Adventures</h2> | |
# """, unsafe_allow_html=True) | |
## Display authorship details | |
# st.markdown(""" | |
## Developed by [Your Name] | |
# * AI Enthusiast | |
# * Expert in AI-driven Conversations | |
# """, unsafe_allow_html=True) | |
# Display application introduction | |
st.markdown(""" | |
### Welcome to ChatGPT-4 Bot! | |
Introducing your versatile AI companion, ChatGPT-4 Bot. This interactive tool is designed to be your guide for solving mathematical puzzles . Whether you're a curious kid, a young learner, or simply looking to exercise your mind, ChatGPT-4 Bot is here to assist. | |
### Dive into Puzzle Challenges | |
Are math puzzles your thing? ChatGPT-4 Bot is equipped to help you tackle a variety of mathematical challenges. From solving equations to deciphering number patterns, this AI-powered tool is your partner in puzzle-solving. | |
### How to Interact | |
Puzzles Mode: Input math-related questions or challenges and receive step-by-step solutions. | |
### Who Can Benefit | |
- Students seeking assistance with math problems | |
- Curious minds interested in AI-driven conversations | |
### Get in Touch | |
If you have any inquiries or suggestions, don't hesitate to get in touch. Let's embark on a journey of exploration and learning together! | |
""", unsafe_allow_html=True) | |
#----------------- | |
hide_style=''' | |
<style> | |
#MainMenu {visibility:hidden;} | |
footer {visibility:hidden;} | |
.css-hi6a2p {padding-top: 0rem;} | |
head {visibility:hidden;} | |
</style> | |
''' | |
st.markdown(hide_style,unsafe_allow_html=True) | |
if selected=="Home": | |
openai_api_key = st.sidebar.text_input('OpenAI API Key', type="password") | |
question_examples = [ | |
"A store sells oranges in packs of 5 and apples in packs of 8. If John bought 7 packs of oranges and 4 packs of apples, how many fruits did he buy in total?", | |
"A box contains 24 red balls and 36 blue balls. If 30% of the red balls and 40% of the blue balls are removed, how many balls are left in the box?", | |
"A company has 800 employees. If 25% of the employees are managers and the rest are regular employees, how many regular employees are there in the company?", | |
"A classroom has a total of 35 students. If 40% of the students are boys, how many girls are there in the classroom?", | |
# Add more examples as needed | |
] | |
# Dropdown select box for question examples | |
selected_example = st.selectbox('Choose a question example:', question_examples) | |
# Pre-populate the question field with the selected example | |
# question = st.text_input('Enter your question:', value=selected_example) | |
math_question = st.text_area("selected example or write any puzzle and press enter:", value=selected_example) | |
if not openai_api_key or not openai_api_key.startswith('sk-'): | |
st.warning('Please enter your OpenAI API key!', icon='⚠️') | |
else: | |
if st.button('Solve'): | |
try: | |
agent = initialize_tools_and_agent(openai_api_key) | |
response = agent.run(math_question) | |
with st.spinner('Solving...'): | |
time.sleep(2) # Simulate processing time | |
st.success('Solved!') | |
st.markdown(f"**The Solution Is:**\n\n{response}") | |
if(response=="Agent stopped due to iteration limit or time limit."): | |
st.warning('Please enter your Puzzle!mathmatical tool', icon='⚠️') | |
except openai.error.OpenAIError as e: | |
#st.error(f"An error occurred: {e}") | |
st.warning('Please enter your puzzle! mathmatical tool', icon='⚠️') | |
except Exception as e: | |
#st.error(f"An unexpected error occurred: {e}") | |
st.warning('Please enter your puzzle!mathmatical tool', icon='⚠️') | |