|
import os |
|
import streamlit as st |
|
import requests |
|
|
|
|
|
session = requests.Session() |
|
|
|
|
|
def chat_with_ai(message): |
|
api_url = os.getenv("CHAT_API_URL") |
|
payload = {"message": message} |
|
|
|
try: |
|
with session.post(api_url, json=payload) as response: |
|
if response.status_code == 200: |
|
return response.json().get('response') |
|
else: |
|
return {"error": "Failed to get a response from the AI API. π"} |
|
except requests.RequestException as e: |
|
return {"error": f"Error: {e}"} |
|
|
|
|
|
def web_search(query): |
|
url = os.getenv("SEARCH_API_URL") |
|
payload = {"query": query} |
|
response = requests.post(url, json=payload) |
|
|
|
if response.status_code == 200: |
|
return response.json() |
|
else: |
|
return {"error": f"Error: {response.status_code}"} |
|
|
|
|
|
def main(): |
|
st.set_page_config(page_title='HelpingAI Research Assistant', page_icon=":mag:") |
|
st.title("π HelpingAI Research Assistant") |
|
st.sidebar.header("π οΈ Settings") |
|
query = st.sidebar.text_input("π Enter your research query: ") |
|
generate_report = st.sidebar.button("π Generate Report") |
|
|
|
st.sidebar.markdown("---") |
|
st.sidebar.header("π Recent Reports") |
|
recent_reports = st.sidebar.empty() |
|
|
|
st.sidebar.markdown("---") |
|
st.sidebar.header("βΉοΈ About this App") |
|
st.sidebar.info("This app uses chat and web search APIs by HelpingAI. The founder of HelpingAI is Abhay Koul. The web search API used in this app is publicly available and its name is Webscout API. For any inquiries or assistance, please contact the developer: Telegram: @OEvortex, Email: helpingai5@gmail.com.") |
|
|
|
st.sidebar.markdown("---") |
|
st.sidebar.header("π How to Get Webscout API") |
|
st.sidebar.info(""" |
|
1. Sign up for a RapidAPI account if you haven't already. |
|
2. Subscribe to the "webscout-api" on the RapidAPI marketplace to acquire your API key. |
|
3. Choose the pricing tier that best fits your usage needs and budget. |
|
4. Integrate the API into your applications using the provided endpoints. |
|
""") |
|
|
|
st.sidebar.markdown("---") |
|
st.sidebar.markdown("Β© 2023 HelpingAI. All rights reserved.") |
|
|
|
if generate_report: |
|
if query: |
|
with st.spinner('π Searching...'): |
|
|
|
search_results = web_search(query) |
|
|
|
|
|
prompt = f"Generate a research report based on the following information: {search_results}. If the search results are insufficient, answer the user's question using the information available." |
|
with st.spinner('π Generating report...'): |
|
report = chat_with_ai(prompt) |
|
|
|
|
|
st.write(report) |
|
|
|
|
|
recent_reports.text(query) |
|
else: |
|
st.sidebar.error("β Please enter a research query.") |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|