|
import streamlit as st |
|
import requests |
|
|
|
|
|
session = requests.Session() |
|
|
|
|
|
def chat_with_ai(message): |
|
api_url = "https://free-ai-api.devastation-war.repl.co/chat" |
|
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 = "https://free-ai-api.devastation-war.repl.co/search" |
|
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.title("π HelpingAI Research Assistant") |
|
st.sidebar.header("π οΈ Settings") |
|
query = st.sidebar.text_input("π Enter your research query: ") |
|
generate_report = st.sidebar.button("π Generate Report") |
|
|
|
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) |
|
else: |
|
st.sidebar.error("β Please enter a research query.") |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|