RandomDuprix / app.py
PhoenixBomb's picture
Update app.py
63ef33f verified
import streamlit as st
from googleapiclient.discovery import build
# Create a Streamlit app
st.title("AI Symptom Checker")
st.write("Please enter your symptoms:")
# Create a text input field
symptoms_input = st.text_input("Symptoms:", value="", max_chars=500)
# Create a button to trigger the API call
submit_button = st.button("Check Symptoms")
# Define the Google Gemini API call function
def call_gemini_api(symptoms, api_key):
client = build('gemini', 'v1', developerKey=api_key)
request = {
'query': symptoms,
'languageCode': 'en-US',
'maxResults': 10
}
response = client.health().symptomChecker().query(body=request).execute()
results = response.get('results', [])
return results
# Define the response processing function
def process_response(results):
top_results = results[:3]
response_list = []
for result in top_results:
condition_name = result.get('condition', {}).get('name')
probability = result.get('probability')
response_string = f"**{condition_name}**: {probability:.2f}%"
response_list.append(response_string)
return response_list
# Define the main function to call the API and process the response
def check_symptoms(symptoms, api_key):
results = call_gemini_api(symptoms, api_key)
response_list = process_response(results)
return response_list
# Get the API key from the secrets file
api_key = st.secrets["GEMINI_API_KEY"]
# Call the main function when the button is clicked
if submit_button:
symptoms = symptoms_input
response_list = check_symptoms(symptoms, api_key)
st.write("Possible conditions:")
for response in response_list:
st.write(response)