Spaces:
Sleeping
Sleeping
import streamlit as st | |
import plotly.graph_objs as go | |
from main import CryptoCrew | |
import asyncio | |
st.title("Crypto Analyst") | |
crypto = st.text_input("Enter the cryptocurrency you want to analyze:") | |
if st.button("Analyze"): | |
with st.spinner("Analyzing... This may take a few minutes."): | |
crypto_crew = CryptoCrew(crypto) | |
result = asyncio.run(crypto_crew.run_async()) | |
# Display summary | |
st.subheader("Analysis Summary") | |
st.write(result["summary"]) | |
# Visualize sentiment | |
st.subheader("Sentiment Analysis") | |
sentiment_data = result["sentiment"] | |
sentiment_categories = list(sentiment_data.keys()) | |
sentiment_values = [1 if v == "Positive" else (-1 if v == "Negative" else 0) for v in sentiment_data.values()] | |
colors = ['red' if v < 0 else 'green' if v > 0 else 'gray' for v in sentiment_values] | |
fig = go.Figure(data=[go.Bar( | |
x=sentiment_categories, | |
y=sentiment_values, | |
marker_color=colors | |
)]) | |
fig.update_layout( | |
title="Sentiment Analysis", | |
xaxis_title="Category", | |
yaxis_title="Sentiment (Negative to Positive)", | |
yaxis=dict(tickvals=[-1, 0, 1], ticktext=["Negative", "Neutral", "Positive"]) | |
) | |
st.plotly_chart(fig) |