|
|
import streamlit as st |
|
|
from app.models.upload import upload_model_to_hf |
|
|
from app.models.fetch import fetch_models |
|
|
from app.reviews.reviews import add_review, get_reviews |
|
|
|
|
|
|
|
|
st.title("AI Agent App Store") |
|
|
|
|
|
|
|
|
with st.sidebar: |
|
|
st.header("Upload Your AI Agent") |
|
|
model_name = st.text_input("Model Name") |
|
|
model_description = st.text_area("Description") |
|
|
model_tags = st.text_input("Tags (comma-separated)") |
|
|
model_file = st.file_uploader("Upload Model Files") |
|
|
if st.button("Upload"): |
|
|
if model_name and model_description and model_file: |
|
|
upload_model_to_hf(model_name, model_description, model_tags, model_file) |
|
|
st.success("Model uploaded successfully!") |
|
|
else: |
|
|
st.error("Please fill all fields.") |
|
|
|
|
|
|
|
|
st.header("Browse AI Agents") |
|
|
search_query = st.text_input("Search for AI Agents") |
|
|
models = fetch_models(search_query) |
|
|
for model in models: |
|
|
st.subheader(model.id) |
|
|
st.write(model.tags) |
|
|
st.write(model.description) |
|
|
if st.button(f"Download {model.id}"): |
|
|
st.write(f"Downloading {model.id}...") |
|
|
|
|
|
|
|
|
st.subheader("Reviews") |
|
|
reviews = get_reviews(model.id) |
|
|
for review in reviews: |
|
|
st.write(f"Rating: {review[2]}/5") |
|
|
st.write(f"Review: {review[3]}") |
|
|
with st.expander("Add a Review"): |
|
|
user_id = st.text_input("Your Name") |
|
|
rating = st.slider("Rating", 1, 5) |
|
|
review_text = st.text_area("Your Review") |
|
|
if st.button("Submit Review"): |
|
|
add_review(model.id, user_id, rating, review_text) |
|
|
st.success("Review submitted!") |