from langchain_google_genai import ChatGoogleGenerativeAI
from langchain_cohere import ChatCohere
from langchain_core.messages import HumanMessage
from my_models import GEMINI_FLASH
from my_keys import GEMINI_API_KEY, COHERE_API_KEY
from my_helper import encode_image
from langchain_core.prompts import ChatPromptTemplate, PromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_core.globals import set_debug
set_debug(True)
llm = ChatCohere(
cohere_api_key= COHERE_API_KEY
)
respuesta = llm.invoke([HumanMessage(content="Cuales canales colombianos de youtube me recomiendas para saber mas sobre telefonos inteligentes'?")])
print(f"Cohere: ", respuesta.content)
llm = ChatGoogleGenerativeAI(
api_key = GEMINI_API_KEY,
model = GEMINI_FLASH
)
respuesta = llm.invoke("Cuales canales colombianos de youtube me recomiendas para saber mas sobre telefonos inteligentes'?")
print(f"Gemini: ", respuesta.text)
imagen = encode_image("datos/ejemplo_grafico.jpg")
pregunta = "Describe la imagen: "
template_analisis = ChatPromptTemplate.from_messages(
[
(
"system",
"""
Asume que eres analista de imagenes. Tu principal tarea consiste en :
analizar una imagen para extraer as informaciones mas relevantes de manera objetiva.
# FORMATO DE SALIDA
Descripción de la imagen: Tu descripción de la imagen aqui.
Etiquetas: Una lista con 3 palabras-clave separadas con comas.
"""
),
(
"user",
[
{
"type":"texto", "text": "Describe la imagen: "
},
{
"type": "image_url",
"image_url": "data:image/jpeg;base64,{imagen_informada}"
}
]
)
]
)
cadena_analisis = template_analisis | llm | StrOutputParser()
respuesta_analisis = cadena_analisis.invoke({"imagen_informada": imagen})
print(respuesta_analisis)
llm_cohere = ChatCohere(cohere_api_key= COHERE_API_KEY)
template_respuesta = PromptTemplate(
template="""
Genera un resumen, utilizando un lenguaje claro y objetivo, enfocado en el publico colombiano.
La idea es que la comunicación del resultado sea lo mas sencilla posible, priorizando los registros para consultas posteriores.
#RESULTADO DE LA IMAGEN
{respuesta_analisis_imagen}
""",
input_variables=["respuesta_analisis_imagen"]
)
cadena_resumen = template_respuesta | llm_cohere | StrOutputParser()
cadena_compuesta = (cadena_analisis | cadena_resumen)
respuesta = cadena_compuesta.invoke({"imagen_informada": imagen})
R/{
"output": "Resumen del Gráfico: Adopción de Teléfonos Inteligentes en Colombia (2010-2020) \n\nEl gráfico muestra el aumento en el porcentaje de la población colombiana que utiliza teléfonos inteligentes entre 2010 y 2020. En 2010, solo el 15% de la población tenía un smartphone. Para 2020, este porcentaje creció de manera constante hasta alcanzar el 90%. La línea amarilla en el gráfico refleja un crecimiento sostenido durante la década, indicando una mayor adopción de esta tecnología en el país. \n\nDatos clave: \n- 2010: 15% \n- 2020: 90% \n\nEste registro es útil para consultas futuras sobre la evolución tecnológica en Colombia. \n\nEtiquetas: Gráfico, Tecnología, Estadísticas."
}