luet commited on
Commit
7b1f6d1
·
1 Parent(s): ecfb771
Files changed (2) hide show
  1. app.py +51 -19
  2. models.json +4 -4
app.py CHANGED
@@ -22,57 +22,89 @@ def display_models():
22
  models = load_models()
23
  if not models:
24
  return "No models have been added yet."
25
- output = "### List of AI Models:\n\n"
26
- for idx, model in enumerate(models):
27
- output += f"**{idx + 1}. {model['name']}**\n"
28
- output += f"- **Description**: {model['description']}\n"
29
- output += f"- **Year**: {model['year']}\n"
30
- output += "\n"
 
 
 
 
31
  return output
32
 
33
  # Function to add a new model
34
- def add_model(name, description, year):
35
  models = load_models()
36
- models.append({"name": name, "description": description, "year": year})
 
 
 
 
 
 
 
37
  save_models(models)
38
  return "Model added successfully!", display_models()
39
 
40
  # Function to edit an existing model
41
- def edit_model(index, name, description, year):
42
  models = load_models()
43
  if index < 1 or index > len(models):
44
  return "Invalid index. Please provide a valid model number.", display_models()
45
- models[index - 1] = {"name": name, "description": description, "year": year}
 
 
 
 
 
 
 
46
  save_models(models)
47
  return "Model updated successfully!", display_models()
48
 
49
  # Gradio interface
50
  with gr.Blocks() as app:
51
- gr.Markdown("# AI Model Repository\n\nAdd, view, and edit AI models contributed by the community.")
52
 
53
- with gr.Tab("View Models"):
54
- view_button = gr.Button("Refresh List")
55
- view_output = gr.Markdown(display_models())
56
  view_button.click(display_models, outputs=view_output)
57
 
58
  with gr.Tab("Add Model"):
59
  with gr.Row():
60
  name_input = gr.Textbox(label="Model Name", placeholder="Enter model name")
61
- year_input = gr.Textbox(label="Publication Year", placeholder="Enter year of publication")
62
  description_input = gr.Textbox(label="Description", placeholder="Enter a short description")
 
 
 
63
  add_button = gr.Button("Add Model")
64
  add_output = gr.Markdown()
65
- add_button.click(add_model, inputs=[name_input, description_input, year_input], outputs=[add_output, view_output])
 
 
 
 
66
 
67
  with gr.Tab("Edit Model"):
68
  edit_index = gr.Number(label="Model Number", precision=0)
69
  with gr.Row():
70
  edit_name = gr.Textbox(label="New Model Name", placeholder="Enter new model name")
71
- edit_year = gr.Textbox(label="New Publication Year", placeholder="Enter new year of publication")
72
  edit_description = gr.Textbox(label="New Description", placeholder="Enter new description")
 
 
 
73
  edit_button = gr.Button("Edit Model")
74
  edit_output = gr.Markdown()
75
- edit_button.click(edit_model, inputs=[edit_index, edit_name, edit_description, edit_year], outputs=[edit_output, view_output])
 
 
 
 
76
 
77
  # Run the app
78
- app.launch()
 
22
  models = load_models()
23
  if not models:
24
  return "No models have been added yet."
25
+ models = sorted(models, key=lambda x: x['dateOfRelease']) # Sort by release date
26
+ output = "" # Prepare HTML output for timeline
27
+ for model in models:
28
+ output += "<div style='border: 1px solid #ccc; border-radius: 10px; padding: 10px; margin: 10px;'>"
29
+ output += f"<h3>{model['name']} ({model['dateOfRelease']})</h3>"
30
+ output += f"<p><strong>Description:</strong> {model['description']}</p>"
31
+ output += f"<p><strong>Developer:</strong> {model.get('developer', 'Unknown')}</p>"
32
+ output += f"<p><strong>Use Case:</strong> {model.get('use_case', 'General')}</p>"
33
+ output += f"<p><strong>Impact:</strong> {model.get('impact', 'Not specified')}</p>"
34
+ output += "</div>"
35
  return output
36
 
37
  # Function to add a new model
38
+ def add_model(name, description, dateOfRelease, developer, use_case, impact):
39
  models = load_models()
40
+ models.append({
41
+ "name": name,
42
+ "description": description,
43
+ "dateOfRelease": dateOfRelease,
44
+ "developer": developer,
45
+ "use_case": use_case,
46
+ "impact": impact
47
+ })
48
  save_models(models)
49
  return "Model added successfully!", display_models()
50
 
51
  # Function to edit an existing model
52
+ def edit_model(index, name, description, dateOfRelease, developer, use_case, impact):
53
  models = load_models()
54
  if index < 1 or index > len(models):
55
  return "Invalid index. Please provide a valid model number.", display_models()
56
+ models[index - 1] = {
57
+ "name": name,
58
+ "description": description,
59
+ "dateOfRelease": dateOfRelease,
60
+ "developer": developer,
61
+ "use_case": use_case,
62
+ "impact": impact
63
+ }
64
  save_models(models)
65
  return "Model updated successfully!", display_models()
66
 
67
  # Gradio interface
68
  with gr.Blocks() as app:
69
+ gr.Markdown("# AI Timeline\n\nVisualize the development of AI models through an interactive timeline.")
70
 
71
+ with gr.Tab("View Timeline"):
72
+ view_button = gr.Button("Refresh Timeline")
73
+ view_output = gr.HTML(display_models())
74
  view_button.click(display_models, outputs=view_output)
75
 
76
  with gr.Tab("Add Model"):
77
  with gr.Row():
78
  name_input = gr.Textbox(label="Model Name", placeholder="Enter model name")
79
+ year_input = gr.Textbox(label="Publication Date", placeholder="Enter date of publication (YYYY-MM-DD)")
80
  description_input = gr.Textbox(label="Description", placeholder="Enter a short description")
81
+ developer_input = gr.Textbox(label="Developer", placeholder="Enter the developer or organization")
82
+ use_case_input = gr.Textbox(label="Use Case", placeholder="Enter the primary use case")
83
+ impact_input = gr.Textbox(label="Impact", placeholder="Enter the model's impact")
84
  add_button = gr.Button("Add Model")
85
  add_output = gr.Markdown()
86
+ add_button.click(
87
+ add_model,
88
+ inputs=[name_input, description_input, year_input, developer_input, use_case_input, impact_input],
89
+ outputs=[add_output, view_output]
90
+ )
91
 
92
  with gr.Tab("Edit Model"):
93
  edit_index = gr.Number(label="Model Number", precision=0)
94
  with gr.Row():
95
  edit_name = gr.Textbox(label="New Model Name", placeholder="Enter new model name")
96
+ edit_year = gr.Textbox(label="New Publication Date", placeholder="Enter new date of publication (YYYY-MM-DD)")
97
  edit_description = gr.Textbox(label="New Description", placeholder="Enter new description")
98
+ edit_developer = gr.Textbox(label="New Developer", placeholder="Enter new developer or organization")
99
+ edit_use_case = gr.Textbox(label="New Use Case", placeholder="Enter new primary use case")
100
+ edit_impact = gr.Textbox(label="New Impact", placeholder="Enter new impact")
101
  edit_button = gr.Button("Edit Model")
102
  edit_output = gr.Markdown()
103
+ edit_button.click(
104
+ edit_model,
105
+ inputs=[edit_index, edit_name, edit_description, edit_year, edit_developer, edit_use_case, edit_impact],
106
+ outputs=[edit_output, view_output]
107
+ )
108
 
109
  # Run the app
110
+ app.launch()
models.json CHANGED
@@ -2,21 +2,21 @@
2
  {
3
  "name": "GPT-3",
4
  "description": "A language model capable of generating human-like text.",
5
- "year": "2020"
6
  },
7
  {
8
  "name": "BERT",
9
  "description": "A model for natural language understanding tasks like question answering and sentiment analysis.",
10
- "year": "2018"
11
  },
12
  {
13
  "name": "DALL·E",
14
  "description": "A model for generating images from textual descriptions.",
15
- "year": "2021"
16
  },
17
  {
18
  "name": "ResNet",
19
  "description": "A deep convolutional network for image recognition tasks.",
20
- "year": "2015"
21
  }
22
  ]
 
2
  {
3
  "name": "GPT-3",
4
  "description": "A language model capable of generating human-like text.",
5
+ "dateOfRelease": "2020"
6
  },
7
  {
8
  "name": "BERT",
9
  "description": "A model for natural language understanding tasks like question answering and sentiment analysis.",
10
+ "dateOfRelease": "2018"
11
  },
12
  {
13
  "name": "DALL·E",
14
  "description": "A model for generating images from textual descriptions.",
15
+ "dateOfRelease": "2021"
16
  },
17
  {
18
  "name": "ResNet",
19
  "description": "A deep convolutional network for image recognition tasks.",
20
+ "dateOfRelease": "2015"
21
  }
22
  ]