>_005 : Generando facturas en segundos con IA

Pues si, vamos a darle una vuelta a cómo la inteligencia artificial nos puede usar como autónomos en la generación de facturas.

En este caso nos vamos a chatGPT y vamos a estrujar su potencial como intérprete de lenguaje para pasándole lo que pasa en nuestra empresa, nos genere un json con información sobre una futura factura a generar, y que posteriormente usaremos en nuestro plugin de facturación.


Prompt

Vamos a por el prompt. Tras varias pruebas, nos quedamos con el siguiente:

Actua como un gestor de facturas de una empresa que sólo hablas json, no devuelvas texto normal, y teniendo en cuenta que estos son los servicios que ofrecemos: [‘ . $productos . ‘]. Generame una factura para: [‘ . $tema . ‘]. Formato de salida: json con la siguiente estructura: [{«nombre» : «», «apellidos» : «», «items» : [{«nombre»:»», «cantidad»:»», «precio»:»»}]}]

Donde:

$productos nos permitirá tener información de nuestros productos, por ejemplo con su nombre y precio.

$tema será el input que le indicaremos, por ejemplo: «Juan Antonio se lleva una barandilla de terraza de 15 metros a 120€ el metro, un par de rejas pequeñas y una puerta de garaje de 700€»

Código fuente

Teniendo ya la estructura que queremos montar y el prompt, vamos a picar código 🧑🏻‍💻

Tenemos un formulario con un input donde escribiremos la información que queremos facturar, el input, que al enviarlo (si, en esta primera versión podemos tirar de una versión no ajax)

La llamada a chatGPT no tiene demasiado misterio, así que ponemos sólo la parte principal:

  $url = 'https://api.openai.com/v1/completions';
  $curl = curl_init();

  $productos = '{"reja pequeña" : "100", "reja grande" : "200", "Cerradura" : "35", }';
  $prompt = 'actua como un gestor de facturas de una empresa que sólo hablas json, no devuelvas texto normal, y teniendo en cuenta que estos son los servicios que ofrecemos: [' . $productos . ']. Generame una factura para: [' . $tema . ']. Formato de salida: json con la siguiente estructura: [{"nombre" : "", "apellidos" : "", "items" : [{"nombre":"", "cantidad":"", "precio":""}]}]';

  $fields = array(
      'model' => 'text-davinci-003',
      'prompt' => $prompt,
      'max_tokens' => 999,
      'temperature' => 0.7,
  );
  $json_string = json_encode($fields);
  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_POST, TRUE);
  curl_setopt($curl, CURLOPT_POSTFIELDS, $json_string);
  curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json', 'Authorization: Bearer sk-etuThSZ9UEs5Y96GUZWfT3BlbkFJPdjrFGb6JLn21Kxxxxxx'));
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true );
  $data = curl_exec($curl);
  curl_close($curl);

  $data = json_decode($data);

Ya tenemos la información en formato json:

{
  "nombre": "Juan",
  "apellidos": "Antonio",
  "items": [
    {
      "nombre": "Barandilla de terraza",
      "cantidad": "15",
      "precio": "120"
    },
    {
      "nombre": "Rejas pequeñas",
      "cantidad": "2",
      "precio": "100"
    },
    {
      "nombre": "Puerta de garaje",
      "cantidad": "1",
      "precio": "700"
    }
  ]
}

Que usaremos para «inyectar» en nuestro software de gestión.

Aquí un pequeño extracto de código PHP donde usamos este json para mostrarlo:

if ( isset($data->choices) ) {
    $receta = $data->choices[0]->text;

    $page .= '<h2>Factura en formato json para:</h2>';
    $page .= '<h3>' . $tema . '</h3>';
    $page .= '<pre><code>' . $receta . '</code></pre>';
    $page .= '<hr>';

    $datos_array = json_decode($receta, true);
    $items = $datos_array['items'];

    $client_name = $datos_array['nombre'];
    $client_surname = $datos_array['apellidos'];
    $items = $datos_array['items'];

  } else {
    $page .= "Algo no ha ido como debía y no me ha generado nada";
  }
}

Prototipo

@ablancodev

Prompt para generar facturas usando Inteligencia Artificial. #AI #chatGPT #facturas #automatizacion

♬ The Champion – Lux-Inspira

Imagina que

Imagina que le añadimos una capa inicial de voz a texto, por ejemplo con el servicio Speech to text de Azure.

Esto nos permitiría tener a nuestro «contable», al que simplemente contándole de viva voz lo que está pasando en nuestro negocio, nos vaya generando las facturas 🧞‍♂️