Spaces:
Running
Running
File size: 7,469 Bytes
93bff19 d8ff977 a857b87 1594cee c7715ea d8ff977 f3a5264 d8ff977 f3a5264 d8ff977 f3a5264 d8ff977 f3a5264 1594cee d8ff977 f3a5264 d8ff977 f3a5264 1594cee d8ff977 f3a5264 40881d9 3e053da 40881d9 a857b87 40881d9 a857b87 40881d9 a857b87 40881d9 3e053da a857b87 1594cee f12ce5a 7900d25 5d21a64 f12ce5a 1594cee f12ce5a 1594cee 8bdd97f f12ce5a 1ecacf3 7900d25 f12ce5a c92ab72 f12ce5a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 |
import streamlit as st
import os
import json
from PIL import Image
st.set_page_config(page_title="๐ง ๐โ๏ธRemixable AI๐จ๐๐จโ๐ซ", page_icon="๐", layout="wide")
glossary = {
"๐ Vaccinate": ["mRNA vaccines", "Nanoparticle delivery systems", "Universal flu vaccine"],
"๐ฉบ Diagnose": ["AI-driven diagnostic tools", "Wearable health monitors", "Liquid biopsies"],
"๐ฅ Hospital": ["Telemedicine", "Robot-assisted surgery", "Smart hospitals"],
"๐ Emergency": ["Point-of-care testing", "Drone delivery for medical supplies", "Mobile stroke units"],
"๐ Meds": ["Precision medicine", "Biologics for chronic diseases", "Pharmacogenomics"],
"๐ฉน Bandage": ["Smart bandages", "Biodegradable bandages", "Hydrogel bandages"],
"๐งฌ DNA": ["Gene editing (CRISPR-Cas9)", "Gene therapy for inherited diseases", "Synthetic biology"],
"๐ฌ Research": ["Big Data in healthcare", "3D bioprinting of tissues", "Nanotechnology in medicine"],
"๐ก๏ธ Temperature": ["Wearable temperature monitors", "Infrared thermography", "Microfluidic devices"],
"๐ Nutrition": ["Personalized nutrition", "Nutrigenomics", "Functional foods"],
}
# Directory to store scores
score_dir = "scores"
os.makedirs(score_dir, exist_ok=True)
# Function to generate a unique key for each button
def generate_key(label, header, idx):
return f"{header}_{label}_{idx}"
# Function to increment score and save it
def update_score(key, increment=1):
score_file = os.path.join(score_dir, f"{key}.json")
if os.path.exists(score_file):
with open(score_file, "r") as file:
score_data = json.load(file)
else:
score_data = {"clicks": 0, "score": 0}
score_data["clicks"] += 1
score_data["score"] += increment
with open(score_file, "w") as file:
json.dump(score_data, file)
return score_data["score"]
# Function to load score
def load_score(key):
score_file = os.path.join(score_dir, f"{key}.json")
if os.path.exists(score_file):
with open(score_file, "r") as file:
score_data = json.load(file)
return score_data["score"]
return 0
# Function to display the glossary for a selected area
def display_glossary(area):
st.subheader(f"Glossary for {area}")
terms = glossary[area]
for term in terms:
st.write(f"- {term}")
# Display headers and buttons with scores
def display_buttons_with_scores():
headers = ["Inputs", "Outputs", "Health", "Learning", "AI", "Writing"]
buttons = [
["๐ Text", "๐ Read", "๐ท Photo", "๐ผ๏ธ View", "๐๏ธ Record", "๐ง Listen", "๐ฅ Video", "๐น Capture"],
["๐ฌ Chat", "โ๏ธ Write", "๐จ Art", "๐ Create", "๐ต Music", "๐ถ Compose", "๐ผ Watch", "๐ฟ Movies"],
["๐ Vaccinate", "๐ฉบ Diagnose", "๐ฅ Hospital", "๐ Emergency", "๐ Meds", "๐ฉน Bandage", "๐งฌ DNA", "๐ฌ Research", "๐ก๏ธ Temperature", "๐ Nutrition"],
["๐ Study", "๐ง Brain", "๐ฉโ๐ Graduate", "๐ Measure", "๐ Search", "๐ Analyze", "๐ Plan", "๐๏ธ Write", "๐จโ๐ซ Teach", "๐งฉ Puzzle"],
["๐ค Robot", "๐พ Game", "๐ป Code", "๐งฎ Calculate", "๐ก Connect", "๐ Power", "๐น๏ธ Play", "๐ฅ๏ธ Display", "๐งโ๐ป Develop", "๐จโ๐ฌ Experiment"],
["โ๏ธ Author", "๐ Note", "๐๏ธ Pen", "๐๏ธ Sign", "๐ Library", "๐ Bookmark", "๐ Journal", "โ๏ธ Ink", "๐ Scroll"]
]
cols = st.columns(len(headers))
for idx, (col, header, buttons_list) in enumerate(zip(cols, headers, buttons)):
with col:
st.markdown(f"### {header}")
for button_idx, button_label in enumerate(buttons_list, start=1):
key = generate_key(button_label, header, button_idx)
score = load_score(key)
if st.button(f"{button_label} {score}", key=key):
new_score = update_score(key)
# Reload the page to reflect the updated score
st.experimental_rerun()
# Display buttons for each area
cols = st.columns(5)
for i, (area, terms) in enumerate(glossary.items()):
if cols[i % 5].button(area):
display_glossary(area)
# Main application logic
if __name__ == "__main__":
st.markdown('# Remixable!')
display_buttons_with_scores()
def fetch_wikipedia_summary(keyword):
# Placeholder function for fetching Wikipedia summaries
# In a real app, you might use requests to fetch from the Wikipedia API
return f"Summary for {keyword}. For more information, visit Wikipedia."
def create_search_url_youtube(keyword):
base_url = "https://www.youtube.com/results?search_query="
return base_url + keyword.replace(' ', '+')
def create_search_url_bing(keyword):
base_url = "https://www.bing.com/search?q="
return base_url + keyword.replace(' ', '+')
def create_search_url_wikipedia(keyword):
base_url = "https://www.wikipedia.org/search-redirect.php?family=wikipedia&language=en&search="
return base_url + keyword.replace(' ', '+')
def create_search_url_google(keyword):
base_url = "https://www.google.com/search?q="
return base_url + keyword.replace(' ', '+')
def display_images_and_wikipedia_summaries():
st.title('Gallery with Related Stories')
image_files = [f for f in os.listdir('.') if f.endswith('.png')]
if not image_files:
st.write("No PNG images found in the current directory.")
return
for image_file in image_files:
image = Image.open(image_file)
st.image(image, caption=image_file, use_column_width=True)
keyword = image_file.split('.')[0] # Assumes keyword is the file name without extension
# Display Wikipedia and Google search links
wikipedia_url = create_search_url_wikipedia(keyword)
google_url = create_search_url_google(keyword)
youtube_url = create_search_url_youtube(keyword)
bing_url = create_search_url_bing(keyword)
links_md = f"""
[Wikipedia]({wikipedia_url}) |
[Google]({google_url}) |
[YouTube]({youtube_url}) |
[Bing]({bing_url})
"""
st.markdown(links_md)
display_images_and_wikipedia_summaries()
st.markdown('# ๐ฉบ Remixable AI/UI/UX for Healers by Aaron Wacker')
def get_all_query_params(key):
return st.query_params().get(key, [])
def clear_query_params():
st.query_params()
st.markdown("### Query Parameters - These Deep Link Map to Remixable Methods")
st.write("Current Query Parameters:", st.query_params)
# Example: Using query parameters to navigate or trigger functionalities
if 'action' in st.query_params:
action = st.query_params()['action'][0] # Get the first (or only) 'action' parameter
if action == 'show_message':
st.success("Showing a message because 'action=show_message' was found in the URL.")
elif action == 'clear':
clear_query_params()
st.experimental_rerun()
# Handling repeated keys
if 'multi' in st.query_params:
multi_values = get_all_query_params('multi')
st.write("Values for 'multi':", multi_values)
# Manual entry for demonstration
st.write("Enter query parameters in the URL like this: ?action=show_message&multi=1&multi=2")
# Clear query parameters button
if st.button("Clear Query Parameters"):
clear_query_params()
st.experimental_rerun() |