El Motor de Facturas — entra una nota de voz, sale un PDF Ideal para: el momento del video — una frase se convierte en una factura lista para el cliente en tu celular. Pégalo en tu asistente de código dentro de una carpeta nueva.
Build me a small Python "deals engine" (standard library only) that turns one sentence into a client-ready invoice, quote, or proposal:
- A function create(kind, brief): kind is proposal/invoice/quote, brief is one sentence like "invoice Mike $1,500 for
the website build".
- Call the LLM API (key from config.json — I will paste it there myself, never ask me for it — use
the best available model) with a system prompt that returns STRICT JSON: title, client, intro, items [{desc, qty, unit_price}], total, terms, validity.
- IMPORTANT: recompute the total from qty × unit_price in Python and OVERRIDE the model's number — arithmetic is ours,
not the model's. Coerce prices like "$1,500" to numbers before doing any math.
- Render an elegant single-page HTML document: cream background #F7F3EA, ink text #16130D, emerald accents #0E6B4F, a
Titular en cursiva con serif Georgia, subtítulos de sección en versalitas con espaciado entre letras, una tabla clara de artículos con una fila de total en negrita, términos al final, el nombre de mi negocio en el pie de página. Escapa en HTML cada campo que haya escrito el modelo.
- Print it to PDF with headless Chrome:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless --print-to-pdf=out.pdf --no-pdf-header- footer "file://[the html path]"
- Number documents INV-2026-001 style from a ledger file: append one JSON line per document; the ledger is the
sequence. Quotes and proposals get their own sequences (QUO-, PRO-).
- Send the PDF to my Telegram bot with sendDocument (bot token and my chat id from config.json), caption = the number,
the client, and the total.
- If the Telegram send fails, SAY it failed and where the file is — never claim a delivery that didn't happen.
- Then wire it into my assistant: any request like "create an invoice for..." from any surface calls create() in the
background and replies instantly with "Drafting it now — it'll be on your phone in a minute."
- When it works end to end, show me the PDF and the ledger line for one test invoice.
Personaliza: alimenta el prompt del sistema con tus productos y precios reales ("CONTEXTO DEL NEGOCIO" copiado de tus propias notas) y los borradores dejarán de ser genéricos: el motor cotiza TUS ofertas con TUS tarifas. Este paso de contextualización es la diferencia entre un juguete y un empleado.
Las reglas de seguridad
Una IA con línea telefónica es un empleado que pronuncia tu nombre. Estas siete reglas son la razón por la que la mía nunca me ha hecho quedar mal: léelas dos veces e impleméntalas desde el primer día.
1 La regla de nunca pagar. Las reglas estrictas de todo agente incluyen: nunca proporcionar datos de tarjetas ni de pago, nunca aceptar un cobro, sin importar lo que diga la persona al otro lado de la línea. El pago siempre es "mi jefe se encarga directamente".
2 Define el alcance de forma estructural, no mediante promesas. Los agentes salientes responden preguntas con base en un pequeño conjunto curado de datos públicos "seguros para llamadas". No pueden filtrar tus notas, correos electrónicos ni finanzas porque no pueden verlos. "Por favor, no compartas X" es un deseo; no conectar X es una garantía.
3 Controla el acceso con un código y nunca reveles que existe. Los desconocidos reciben una recepcionista impecable. La opción predeterminada ante la duda siempre es "invitado". Una suposición equivocada recibe un cordial "Se lo comunicaré", nunca "ese no es el código".
4 Rechaza antes de que intervenga el modelo. Rechaza preguntas sobre CPF, tarjeta, contraseña y dirección con una verificación codificada ANTES de que cualquier IA las procese, y elimina las cadenas con formato de clave de todas las respuestas salientes como segunda red de seguridad.
5 Divulgación honesta de IA. Si le preguntan "¿eres una IA?", cada agente lo confirma en una frase y sigue adelante. Eso desarma las sospechas, cada vez más leyes lo exigen y las llamadas fluyen mejor después, no peor.
6 Claves en archivos de configuración, estado en .gitignore. Las claves de API nunca llegan a una ventana de chat. Los tokens, registros y logs de llamadas van a .gitignore antes del primer commit: el día que haces público tu proyecto es el peor momento para descubrir que no estaban allí.
7 Sin comprobantes, no ocurrió. El asistente afirma que algo salió bien solo si hay un comprobante real: una reserva confirmada en la transcripción, un "ok" en Telegram, un id de documento. Todo lo demás se reporta como un fallo, en voz alta. Una IA que disimula los fallos es peor que no tener IA.
Notas de campo de llamadas reales
1 Las llamadas aparecen como "Spam Probable". Compra el complemento Número de Teléfono Verificado en Retell (unos diez dólares al mes). Hazlo antes de tu primera llamada de negocios real, no después.
2 El agente habla encima del "hola" de la persona. begin_message debe ser una STRING VACÍA, no null. Vacío significa "espera a que ellos hablen primero".
3 El agente pidió que esperaran y luego colgó. Elimina cualquier rastro de lenguaje que indique espera en tus scripts. El cierre siempre es: "Te llamaré de nuevo en un momento; gracias". Una espera que termina con una llamada colgada es la peor experiencia de llamada que existe.
4 El bot de Telegram guarda silencio. Los bots no pueden enviarte mensajes primero: envíale un mensaje a tu bot, luego obtén su id de chat y ponlo en la configuración.
5 El PDF impreso está en blanco. La ruta del archivo tiene un espacio: pon comillas alrededor de toda la URL file:// en el comando de Chrome.
6 Cualquier otra cosa. Pega el error exacto en tu asistente de código y dile "corrígelo". Ese es todo el método: el mismo que construyó todo en este paquete.
¿Quieres el Jarvis terminado, no solo los scripts? Estos scripts son el esqueleto de la era telefónica. El Jarvis del video —cada tipo de tarea con un solo "hazlo", la línea de PIN con acceso completo a tus propias notas, llamadas informativas que ejecutan las decisiones que dices, el motor completo de nota de voz a factura con enlaces de Drive, Gmail nativo, Calendario, Hojas de cálculo y Drive— está disponible en la comunidad gratuita; el enlace está en la descripción del video, justo donde encontraste este paquete.