Spaces:
Sleeping
Sleeping
luet
commited on
Commit
·
cb8f33f
1
Parent(s):
ee4435a
dza
Browse files- app.py +52 -4
- models.json +0 -15
app.py
CHANGED
|
@@ -41,22 +41,38 @@ def display_models(developer=None, use_case=None, year_range=None):
|
|
| 41 |
start_year, end_year = year_range
|
| 42 |
models = [m for m in models if start_year <= int(m['dateOfRelease'][:4]) <= end_year]
|
| 43 |
|
| 44 |
-
models = sorted(models, key=lambda x: x['dateOfRelease']) # Sort by release date
|
| 45 |
-
|
|
|
|
|
|
|
| 46 |
|
| 47 |
output = "<div style='display: flex; flex-direction: column; align-items: flex-start; gap: 20px;'>"
|
| 48 |
-
for model in models:
|
| 49 |
time_gap = model.get('time_difference', 0) * 2 # Scale time gap for visualization
|
| 50 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
output += f"<h3 style='color: #2d89ef;'>{model['name']} ({model['dateOfRelease']})</h3>"
|
| 52 |
output += f"<p><strong>Description:</strong> {model['description']}</p>"
|
| 53 |
output += f"<p><strong>Developer:</strong> {model.get('developer', 'Unknown')}</p>"
|
| 54 |
output += f"<p><strong>Use Case:</strong> {model.get('use_case', 'General')}</p>"
|
| 55 |
output += f"<p><strong>Impact:</strong> {model.get('impact', 'Not specified')}</p>"
|
| 56 |
output += "</div>"
|
|
|
|
|
|
|
| 57 |
output += "</div>"
|
| 58 |
return output
|
| 59 |
|
|
|
|
| 60 |
# Function to add a new model
|
| 61 |
def add_model(name, description, dateOfRelease, developer, use_case, impact):
|
| 62 |
models = load_models()
|
|
@@ -87,6 +103,10 @@ def edit_model(index, name, description, dateOfRelease, developer, use_case, imp
|
|
| 87 |
save_models(models)
|
| 88 |
return "Model updated successfully!", display_models()
|
| 89 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 90 |
# Gradio interface
|
| 91 |
with gr.Blocks(css="""
|
| 92 |
body {
|
|
@@ -116,8 +136,36 @@ with gr.Blocks(css="""
|
|
| 116 |
color: white; /* White text */
|
| 117 |
border: 1px solid #555; /* Lighter border */
|
| 118 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
""") as app:
|
| 120 |
gr.Markdown("# AI Timeline\n\nVisualize the development of AI models through an interactive timeline.")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 121 |
|
| 122 |
with gr.Tab("View Timeline"):
|
| 123 |
with gr.Row():
|
|
|
|
| 41 |
start_year, end_year = year_range
|
| 42 |
models = [m for m in models if start_year <= int(m['dateOfRelease'][:4]) <= end_year]
|
| 43 |
|
| 44 |
+
models = sorted(models, key=lambda x: x['dateOfRelease'], reverse=True) # Sort by release date
|
| 45 |
+
|
| 46 |
+
# Calculate time differences before using them
|
| 47 |
+
models = calculate_time_difference(models) # Ensure time differences are calculated here
|
| 48 |
|
| 49 |
output = "<div style='display: flex; flex-direction: column; align-items: flex-start; gap: 20px;'>"
|
| 50 |
+
for i, model in enumerate(models):
|
| 51 |
time_gap = model.get('time_difference', 0) * 2 # Scale time gap for visualization
|
| 52 |
+
|
| 53 |
+
if i < len(models) - 1: # To show time difference text only between cards, not after the last one
|
| 54 |
+
# Safely access the time difference and display it
|
| 55 |
+
time_diff = model.get('time_difference', None)
|
| 56 |
+
if time_diff is not None:
|
| 57 |
+
time_diff_text = f"<div style='color: #ccc; font-style: italic;'>"
|
| 58 |
+
time_diff_text += f"{time_diff} days between releases</div>"
|
| 59 |
+
output += time_diff_text
|
| 60 |
+
|
| 61 |
+
# Add the model card with the time gap applied between models
|
| 62 |
+
# output += f"<div class='ai-card' style='margin-top: {time_gap}px;'>"
|
| 63 |
+
output += f"<div class='ai-card'>"
|
| 64 |
output += f"<h3 style='color: #2d89ef;'>{model['name']} ({model['dateOfRelease']})</h3>"
|
| 65 |
output += f"<p><strong>Description:</strong> {model['description']}</p>"
|
| 66 |
output += f"<p><strong>Developer:</strong> {model.get('developer', 'Unknown')}</p>"
|
| 67 |
output += f"<p><strong>Use Case:</strong> {model.get('use_case', 'General')}</p>"
|
| 68 |
output += f"<p><strong>Impact:</strong> {model.get('impact', 'Not specified')}</p>"
|
| 69 |
output += "</div>"
|
| 70 |
+
|
| 71 |
+
|
| 72 |
output += "</div>"
|
| 73 |
return output
|
| 74 |
|
| 75 |
+
|
| 76 |
# Function to add a new model
|
| 77 |
def add_model(name, description, dateOfRelease, developer, use_case, impact):
|
| 78 |
models = load_models()
|
|
|
|
| 103 |
save_models(models)
|
| 104 |
return "Model updated successfully!", display_models()
|
| 105 |
|
| 106 |
+
# Get the current month
|
| 107 |
+
def get_current_month():
|
| 108 |
+
return datetime.now().strftime("%B %Y")
|
| 109 |
+
|
| 110 |
# Gradio interface
|
| 111 |
with gr.Blocks(css="""
|
| 112 |
body {
|
|
|
|
| 136 |
color: white; /* White text */
|
| 137 |
border: 1px solid #555; /* Lighter border */
|
| 138 |
}
|
| 139 |
+
|
| 140 |
+
/* Styling for the AI cards */
|
| 141 |
+
.ai-card {
|
| 142 |
+
background-color: #2b2b2b; /* Dark background for cards */
|
| 143 |
+
color: white; /* White text on cards */
|
| 144 |
+
border-radius: 10px;
|
| 145 |
+
padding: 15px;
|
| 146 |
+
margin: 10px 0;
|
| 147 |
+
border: 1px solid #444; /* Lighter border for card separation */
|
| 148 |
+
box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.5); /* Shadow effect */
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
.ai-card h3 {
|
| 152 |
+
color: #2d89ef; /* Blue color for card titles */
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
.ai-card p {
|
| 156 |
+
color: #ccc; /* Lighter text color for card description */
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
+
.ai-card strong {
|
| 160 |
+
color: #bbb; /* Lighter color for strong text */
|
| 161 |
+
}
|
| 162 |
+
|
| 163 |
""") as app:
|
| 164 |
gr.Markdown("# AI Timeline\n\nVisualize the development of AI models through an interactive timeline.")
|
| 165 |
+
current_month = get_current_month() # Get the current month
|
| 166 |
+
|
| 167 |
+
# Display current month in the interface
|
| 168 |
+
gr.Markdown(f"## Current Month: {current_month}")
|
| 169 |
|
| 170 |
with gr.Tab("View Timeline"):
|
| 171 |
with gr.Row():
|
models.json
CHANGED
|
@@ -134,13 +134,6 @@
|
|
| 134 |
"developer": "Google AI",
|
| 135 |
"use_case": "Assisting developers with code generation from diverse inputs.",
|
| 136 |
"impact": "Improved coding efficiency by leveraging multimodal AI capabilities."
|
| 137 |
-
},{
|
| 138 |
-
"name": "GPT-4",
|
| 139 |
-
"description": "A large language model developed by OpenAI, capable of understanding and generating human-like text.",
|
| 140 |
-
"dateOfRelease": "2023-03-14",
|
| 141 |
-
"developer": "OpenAI",
|
| 142 |
-
"use_case": "Natural language understanding and generation",
|
| 143 |
-
"impact": "Advanced the capabilities of AI in understanding and generating human language."
|
| 144 |
},
|
| 145 |
{
|
| 146 |
"name": "DALL·E 2",
|
|
@@ -150,14 +143,6 @@
|
|
| 150 |
"use_case": "Text-to-image generation",
|
| 151 |
"impact": "Enabled the creation of detailed images from textual prompts, bridging language and visual art."
|
| 152 |
},
|
| 153 |
-
{
|
| 154 |
-
"name": "Stable Diffusion",
|
| 155 |
-
"description": "An open-source text-to-image model that generates detailed images based on textual input.",
|
| 156 |
-
"dateOfRelease": "2022-08-22",
|
| 157 |
-
"developer": "Stability AI",
|
| 158 |
-
"use_case": "Text-to-image generation",
|
| 159 |
-
"impact": "Provided accessible tools for image generation, fostering innovation in digital art and design."
|
| 160 |
-
},
|
| 161 |
{
|
| 162 |
"name": "Gemini 1.0 Ultra",
|
| 163 |
"description": "A multimodal AI model capable of handling text, images, audio, video, and code.",
|
|
|
|
| 134 |
"developer": "Google AI",
|
| 135 |
"use_case": "Assisting developers with code generation from diverse inputs.",
|
| 136 |
"impact": "Improved coding efficiency by leveraging multimodal AI capabilities."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 137 |
},
|
| 138 |
{
|
| 139 |
"name": "DALL·E 2",
|
|
|
|
| 143 |
"use_case": "Text-to-image generation",
|
| 144 |
"impact": "Enabled the creation of detailed images from textual prompts, bridging language and visual art."
|
| 145 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 146 |
{
|
| 147 |
"name": "Gemini 1.0 Ultra",
|
| 148 |
"description": "A multimodal AI model capable of handling text, images, audio, video, and code.",
|