Ir al contenido principal

Entradas

Prompt Engineering, o cómo hablar con una IA.

  En la era de la inteligencia artificial, el prompt engineering se ha convertido en una habilidad crucial para interactuar eficazmente con modelos de lenguaje como GPT-4. Se trata de diseñar y formular instrucciones claras y efectivas (prompts) para obtener respuestas útiles y precisas de estos modelos generativos. ¿Qué es el Prompt Engineering? El prompt engineering persigue crear instrucciones detalladas y específicas para modelos de lenguaje con el fin de guiar sus respuestas de manera más efectiva. A medida que los modelos de IA se vuelven más sofisticados, la necesidad de proporcionar instrucciones precisas se vuelve esencial para: Obtener Respuestas Precisas : Prompts bien diseñados ayudan a obtener respuestas más precisas y relevantes de los modelos de IA. Mejorar la eficiencia en la Comunicación : Minimiza la necesidad de múltiples iteraciones para obtener la información deseada. Personalización : Permite adaptar las respuestas de la IA a contextos y necesidades específi...
Entradas recientes

Scripts en NMAP

Cuando pensamos en NMAP, pensamos en el escaneo de puertos de un host objetivo al que estamos relizando una prueba de intrusión, pero gracias a las posibilidades que nos ofrecen su Scripting Engine , NMAP es mucho más que eso. Antes de continuar, un aviso: algunas de posibilidades que nos ofrecen los scripts de NMAP son bastante intrusivas, por lo que recomiendo hacerlas contra hosts propios, máquinas virtuales como las de Metasploitable, o contrato de pentesting mediante. Para este artículo voy a usar las máquinas de Metasploitable3 . No voy a entrar en los detalles sobre el uso básico de NMAP, ya que hay miles de tutoriales en Internet que hablan sobre ello. Lo cierto es que NMAP tiene algunas opciones que permiten obtener información extra, además de qué puertos están abiertos y cuales no. Por ejemplo, la opción -sV trata de obtener el servicio concreto, e incluso la versión del servicio que está corriendo en cada puerto. Otro ejemplo es la opción -O, que intenta averiguar el ...

Detección de caras con OpenCV

En visión artificial, una de las tareas básicas es el reconocimiento de objetos, ya que es muy interesante disponer de algún modo de discriminar entre clases de objetos. Por ejemplo, un coche autónomo ha de ser capaz de reconocer a otros coches y distinguirlo de un peatón. Otra utilidad más mundana y que seguro conoces, es el reconocimiento de caras que hace tu móvil cuando vas a hacer una foto. En este artículos vamos a ver cómo reconocer caras usando OpenCV. Ojo, cuando hablo de reconocer caras, me refiero a distinguir una cara de cualquier otra cosa, no de distinguir entre caras para, por ejemplo, reconocer a quién pertenece esa cara. Ese es otro problema diferente del que os hablaré en otro momento. Como quiero abordar el problema desde un punto de vista práctico, vamos a usar la librería OpenCV con Python. Como imagen de ejemplo vamos a tomar la siguiente. Nuestra misión es detectar las caras que hay en esta imagen, así que fije el rumbo señor Sulu. import cv2 from matplo...

Cómo leer el sensor de temperatura de la Raspberry Pi Pico

Leyendo las especificaciones de la Raspberry Pi Pico me llamó la atención que venía equipada con un sensor de temperatura en el propio chip, así que me puse a buscar información. En este artículo os quiero mostrar cómo acceder a él y de camino cómo utilizar el conversor analógico/digital (ADC). El siguiente esquema muestra cómo está conectado el ADC a los GPIO y al sensor de temperatura interno. Es decir, tenemos un multiplexor de cuatro entradas que permite seleccionar la señal de entrada para el ADC. En nuestro caso, la que nos interesa es la 4, que es la fuente de tensión proveniente del sensor. Para seleccionar la entrada en el multiplexor usamos la siguiente función. adc_select_input(4); Para hacernos una idea, en la página 574 del datasheet del RP4020 nos dice que esta tensión es de 0.706V a 27 grados centígrados. La fórmula para aproximar la temperatura con respecto a esta tensión es T = 27 - (ADC_voltage - 0.706)/0.001721 También hay que poner a 1 el registro...

Primeros pasos con Raspberry Pi Pico

Hace pocos días la fundación Raspberry Pi sacaba al mercado una curiosa plaquita llamada Raspberry Pi Pico. Curiosa porque se separa de lo que venían haciendo. Es decir, nos encontramos ante una placa al estilo del Arduino nano, pero comandada por el microcontrolador RP4020, basado en el ARM Cortex M0+ de doble núcleo, que ha sido también diseñado por ellos. En la placa de desarrollo nos ofrecen 26 GPIOs con soporte para SPI, I2C, ADC, UART y PWM. Acompañado de una completísima documentación y un entorno de desarrollo basado en Visual Studio Code. Y lo que es mejor, sólo por 4 dólares. La instalación del entorno de desarrollo oficial es muy sencilla y viene bien explicada en la documentación. Aunque si, como yo, prefieres la línea de comando, en este artículo os explicaré como poner en marcha un proyecto para este microcontrolador y programarlo con vuestro editor favorito. En este caso, para equipos con Debian y derivados. Antes de nada necesitaremos instalar el toolchain para...

Manejo de grafos con NetworkX en Python

El aprendizaje computacional es un área de investigación que en los últimos años ha tenido un auge importante, sobre todo gracias al aprendizaje profundo (Deep Learning). Pero no todo son redes neuronales. Paralelamente a estas técnicas, más bien basadas en el aprendizaje de patrones, también hay un auge de otras técnicas, digamos, más basadas en el aprendizaje simbólico. Si echamos la vista algunos años atrás, podemos considerar que quizá, la promesa de la web semántica como gran base de conocimiento ha fracasado, pero no es tan así. Ha ido transmutándose y evolucionando hacia bases de conocimiento basadas en ontologías a partir de las cuales es posible obtener nuevo conocimiento. Es lo que llamamos razonamiento automático y empresas como Google ya lo utilizan para ofrecerte información adicional sobre tus búsquedas. Ellos lo llaman Grafos de Conocimiento o Knowledge Graphs . Gracias a estos grafos de conocimiento, Google puede ofrecerte información adicional sobre tu búsqueda, ad...

Regresión polinómica para Machine Learning

La regresión lineal es una herramienta extremadamente potente para realizar análisis de datos y construir modelos de Machine Learning capaces de hacer inferencias sobre datos nuevos. Sin embargo, esto es sólo cierto para datos que tienen un comportamiento lineal, lo que no siempre ocurre. Vamos a trabajar con un dataset sencillo, pero cuyos datos no son lineales: https://www.kaggle.com/akram24/position-salaries Este dataset contiene los salarios según el nivel del empleado en dentro de una empresa. Tras descargarlo de Kaggle y descomprimir el fichero tenemos un archivo CSV que podemos cargar con Pandas . import pandas as pd datos = pd.read_csv('Position_Salaries.csv') print (datos) Position Level Salary 0 Business Analyst 1 45000 1 Junior Consultant 2 50000 2 Senior Consultant 3 60000 3 Manager 4 80000 4 Country Manager 5 110000 5 Region Manager 6 150000 6 Partner 7 2...