Spaces:
Build error
Build error
| import os | |
| import streamlit as st | |
| from langchain_community.agents import AgentType, initialize_agent | |
| from langchain_community import HuggingFaceHub | |
| from langchain_community.tools import Tool, DuckDuckGoSearchRun | |
| from datetime import datetime | |
| # Set the page title and icon | |
| st.set_page_config( | |
| page_title="AI Driven Search", | |
| page_icon="π", | |
| layout="wide", # Wide layout for additional space | |
| ) | |
| # Custom CSS style for the title block | |
| st.markdown( | |
| """ | |
| <style> | |
| .title-block { | |
| background-color: #3498db; | |
| color: #ffffff; | |
| padding: 20px; | |
| border-radius: 10px; | |
| margin-bottom: 20px; | |
| } | |
| .subtitle { | |
| color: #2c3e50; | |
| } | |
| </style> | |
| """, | |
| unsafe_allow_html=True, | |
| ) | |
| # Title block with custom styling | |
| st.markdown('<div class="title-block">', unsafe_allow_html=True) | |
| st.title("π AI powered Search Engine") | |
| st.markdown("### Find what you're looking for with the power of AI!") | |
| st.markdown("</div>", unsafe_allow_html=True) | |
| # Subtitle and description with custom styling | |
| st.markdown('<div class="subtitle">', unsafe_allow_html=True) | |
| st.subheader("How it works:") | |
| st.write( | |
| "Our search engine is powered by DuckDuck Go search and uses language models " | |
| "that understand your queries and provide accurate results. " | |
| ) | |
| st.markdown("</div>", unsafe_allow_html=True) | |
| # Example search input | |
| with st.form(key="form"): | |
| user_input = st.text_input("Ask your question") | |
| submit_clicked = st.form_submit_button("Enter your search") | |
| if submit_clicked: | |
| # Define a new tool that returns the current datetime | |
| datetime_tool = Tool( | |
| name="Datetime", | |
| func=lambda x: datetime.now().isoformat(), | |
| description="Returns the current datetime", | |
| ) | |
| search = DuckDuckGoSearchRun() | |
| search_tool = Tool( | |
| name="search", | |
| func=search, | |
| description="search over the internet using this tool" | |
| ) | |
| hub_llm = HuggingFaceHub( | |
| repo_id='mistralai/Mixtral-8x7B-Instruct-v0.1', | |
| huggingfacehub_api_token=os.environ.get('HF_TOKEN', None) | |
| ) | |
| agent_chain = initialize_agent( | |
| [search_tool, datetime_tool], | |
| hub_llm, | |
| agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, | |
| verbose=True, | |
| handle_parsing_errors=True, | |
| ) | |
| result = agent_chain.run(user_input) | |
| st.success(result) | |
| # Footer with custom styling | |
| st.markdown( | |
| '<p style="text-align:center; color:#7f8c8d;">Built with β€οΈ by Abhishek | <a href="https://github.com/your_username/your_repo" style="color:#3498db;">GitHub Repo</a></p>', | |
| unsafe_allow_html=True, | |
| ) | |