TechScout / app.py
Abhaykoul's picture
Update app.py
37ae59d verified
raw
history blame
2.5 kB
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()