File size: 3,099 Bytes
71acbaf
ca7840e
c1f4f65
ca7840e
c1f4f65
 
 
 
 
 
 
 
 
bc93fdd
c1f4f65
 
 
b8de2f4
c1f4f65
 
ca7840e
c1f4f65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ca7840e
c1f4f65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71acbaf
c1f4f65
 
 
b8de2f4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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")