import os import streamlit as st import requests # Create a session for reusing connections session = requests.Session() # Function to interact with the AI def chat_with_ai(message, user_input): api_url = os.getenv("CHAT_API_URL") # Vortex 3b models API payload = {"message": message, "user_input": user_input} try: with session.post(api_url, json=payload) as response: if response.status_code == 200: return response.json().get('response') # Access 'response' key else: st.error("Failed to get a response from the AI API. 😞") except requests.RequestException as e: st.error(f"Error: {e}") # Function to perform web search def web_search(keywords): url = os.getenv("SEARCH_API_URL") # Webscout API payload = {"keywords": keywords} # Change query to keywords response = requests.post(url, json=payload) if response.status_code == 200: return response.json() else: st.error(f"Error: {response.status_code}") # Main function def main(): st.set_page_config(page_title='TechScout Research Assistant', page_icon=":mag:") st.title("🔍 TechScout Research Assistant") st.sidebar.header("🛠️ Settings") query = st.sidebar.text_input("🔎 Enter your research query: ") generate_report = st.sidebar.button("📝 Generate Report") output = st.empty() if generate_report: if query: with st.spinner('🔄 Searching...'): # Perform web search search_results = web_search(query) # Pass the search results to the AI for generating a report prompt = f"Generate a detailed research report based on the following information: {search_results}. The user's query was: '{query}'. Please include an overview, key findings, and any relevant details in the report. 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, query) # Display the report if isinstance(report, dict) and 'error' in report: st.error(report['error']) else: output.text_area("Generated Report", report, height=200, max_chars=None, key=None) else: st.sidebar.error("❗ Please enter a research query.") if __name__ == "__main__": main()