Spaces:
Runtime error
Runtime error
import gradio as gr | |
import pandas as pd | |
import numpy as np | |
from scipy.fft import fft, fftfreq | |
# Core Analysis Functions | |
def detect_cycles(data): | |
N = len(data) | |
yf = fft(data) | |
xf = fftfreq(N, 1)[:N//2] | |
dominant_freq = xf[np.argmax(np.abs(yf[0:N//2]))] | |
return int(1/dominant_freq) | |
def analyze_data(url): | |
try: | |
df = pd.read_csv(url) | |
values = df.sum(numeric_only=True).diff().fillna(0).values | |
return { | |
"cycles": detect_cycles(values), | |
"trend": "β Increasing" if values[-1] > values[-30] else "β Decreasing" | |
} | |
except Exception as e: | |
return {"error": str(e)} | |
# Chatbot Logic | |
def respond(message, history): | |
if "analyze" in message.lower(): | |
url = message.split()[-1] | |
result = analyze_data(url) | |
if "error" in result: | |
return f"β Error: {result['error']}" | |
return f"""**Analysis Results:** | |
- π Dominant Cycle: {result['cycles']} days | |
- π 30-Day Trend: {result['trend']} | |
""" | |
elif any(w in message.lower() for w in ["hi", "hello", "help"]): | |
return """**Welcome to DeepSeek Analyst!** π€ | |
Send me a CSV URL to analyze time-series data. Example: | |
`analyze https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/data/time_series_covid19_confirmed_global.csv` | |
""" | |
return "I specialize in data analysis. Send me a CSV URL to get started!" | |
# Gradio Interface | |
gr.ChatInterface( | |
respond, | |
chatbot=gr.Chatbot(height=400), | |
textbox=gr.Textbox(placeholder="Paste CSV URL here...", scale=7), | |
title="DeepSeek Analysis Chatbot", | |
description="Upload or paste CSV URLs to detect cycles and trends", | |
examples=[[ | |
"analyze https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/data/time_series_covid19_confirmed_global.csv" | |
]], | |
theme="soft", | |
retry_btn=None, | |
undo_btn=None, | |
clear_btn="ποΈ Clear" | |
).launch() |