Spaces:
Runtime error
Attempt 2 - Interactive Story Kit
Sorry you really got off track there. Come back to rewriting this with me.. RemixableAIForScienceFictionAndFantasyStoryTelling
I need your help with a guide.
I'm creating a role playing game based on Transhuman Space where encyclopedic datasets explain all the Core Technologies, the Nations, the Memes, the Institutions, the Organizations, the War, the Military, the Outlaws, and the Terrorists Where Characters and Technology even SpaceCraft Design created within the role playing game as an intricately detailed work of science fiction told through markdown outlines and tables with each including the ability to define and probe concepts that are evolving in the year 2024 which is the year of the AI singularity.
For each line and cell even title in the classification tables tell the top ten list of those areas. Always in every line use appropriate emojis for each and use the same for labels in streamlit buttons for a ui that works with streamlit components and is following patterns in the streamlit python app below.
Transition it From _______ to Transhuman Space based on defining the concepts I mention with you as the Science Fiction Writer presenting creative writing genius with literary wit and a wild use of emojis for Science Fiction writing and Fantasy writing.
title: RemixableAIForScienceFictionAndFantasyStoryTelling
emoji:
colorFrom: red
colorTo: gray
sdk: streamlit
sdk_version: 1.30.0
app_file: app.py
pinned: false
license: mit
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()