IA_Study / app.py
Barto517's picture
Update app.py
c1f4f65 verified
raw
history blame
3.1 kB
import streamlit as st
import requests
from transformers import pipeline
from PIL import Image
import io
import pandas as pd
import plotly.express as px
# Configuración inicial
st.set_page_config(page_title="CriptoAnalizador IA", layout="wide")
# Título de la aplicación
st.title("🚀 CriptoAnalizador IA")
# Clave de API para Coinalyze
COINALYZE_API_KEY = "8429ca91-8726-45b4-a067-05cc778ea867"
COINALYZE_URL = "https://api.coinalyze.net/v1"
# Opciones de navegación
menu = st.sidebar.radio("Navegación", ["Chat", "Análisis de imágenes", "Criptomonedas"])
if menu == "Chat":
st.header("🤖 Chat Avanzado con IA")
user_input = st.text_input("Escribe tu mensaje:")
if user_input:
# Respuesta usando un modelo de lenguaje
model = pipeline("text-generation", model="gpt2")
response = model(user_input, max_length=100, num_return_sequences=1)
st.success(response[0]["generated_text"])
elif menu == "Análisis de imágenes":
st.header("📷 Análisis de Imágenes")
uploaded_file = st.file_uploader("Sube una imagen para analizar:")
if uploaded_file:
image = Image.open(uploaded_file)
st.image(image, caption="Imagen cargada", use_column_width=True)
# Extracción de texto
from transformers import TrOCRProcessor, VisionEncoderDecoderModel
processor = TrOCRProcessor.from_pretrained("microsoft/trocr-base-handwritten")
model = VisionEncoderDecoderModel.from_pretrained("microsoft/trocr-base-handwritten")
image_tensor = processor(images=image, return_tensors="pt").pixel_values
generated_ids = model.generate(image_tensor)
extracted_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
st.subheader("Texto extraído:")
st.write(extracted_text)
elif menu == "Criptomonedas":
st.header("📊 Análisis Técnico de Criptomonedas")
# Selección de criptomoneda
crypto = st.text_input("Ingresa el símbolo de la criptomoneda (Ejemplo: BTC, ETH):")
if crypto:
st.subheader(f"Análisis Técnico para {crypto.upper()}")
# Llamada a la API de Coinalyze
endpoint = f"{COINALYZE_URL}/cryptocurrencies/{crypto}/historical"
headers = {"Authorization": f"Bearer {COINALYZE_API_KEY}"}
response = requests.get(endpoint, headers=headers)
if response.status_code == 200:
data = response.json()
df = pd.DataFrame(data["prices"], columns=["timestamp", "price"])
# Convertir timestamp a fecha
df["timestamp"] = pd.to_datetime(df["timestamp"], unit="ms")
# Graficar precios
fig = px.line(df, x="timestamp", y="price", title=f"Precio de {crypto.upper()} a lo largo del tiempo")
st.plotly_chart(fig)
else:
st.error("No se pudieron obtener los datos. Verifica el símbolo o intenta más tarde.")
# Footer
st.sidebar.markdown("---")
st.sidebar.markdown("Creado con ❤️ por tu ChatBot")