Macro de LLMs locales en LibreOffice

Python GenAI Ofimática HomeLab

Veamos como crear una macro en LibreOffice Calc que utilice Python (a través de PyUNO) para enviar un prompt a un modelo LLM local en Ollama.

José R Sosa https://josersosa.github.io/personalweb/
2025-05-29

Referencias:

Requisitos previos

  1. LibreOffice con PyUNO instalado:
  2. Ollama instalado y en ejecución:
    • Descarga e instala Ollama .
    • Ejecuta ollama serve para iniciar el servidor local.
    • Asegúrate de que el modelo deseado esté instalado: ollama pull <modelo>.
  3. Librería requests:
    • Instala requests en Python (para hacer solicitudes HTTP):
    pip install requests

Código de la macro en Python (PyUNO)

  1. Abre LibreOffice Calc y ve a Herramientas > Macros > Organizar macros > Python.
  2. Crea un nuevo módulo y añade el siguiente código:
import requests
import json

def ollama_generate(model, prompt):
    url = "http://localhost:11434/api/generate"
    data = {
        "model": model,
        "prompt": prompt,
        "stream": False
    }
    headers = {"Content-Type": "application/json"}
    response = requests.post(url, data=json.dumps(data), headers=headers)
    if response.status_code == 200:
        result = response.json().get("response", "No se encontró respuesta")
        return result
    else:
        return f"Error en Ollama: {response.status_code}"

def macro_ollama(model, prompt):
    result = ollama_generate(model, prompt)
    current_cell = ThisComponent.CurrentController.ActiveCell
    current_cell.setValue(result)

¿Dónde se guardan las macros?

No hay una forma incorporada de editar scripts de Python, por lo que debe usar su propio editor de texto. Hay 3 lugares donde puedes poner tu código.

En la carpeta de Perfil de Usuario (USER), las macros están solo disponibles para el Usuario

GNU/Linux

/home/USER/.config/libreoffice/4/user/Scripts/python

Windows

%APPDATA%\LibreOffice\4\user\Scripts\python

macOS

~/Library/Application Support/LibreOffice/4/user/Scripts/python/

En la carpeta del programa, las macros están disponibles para todos los usuarios

GNU/Linux

/usr/lib/libreoffice/share/Scripts/python/

Cómo usar la macro

  1. Asigna la macro a una celda:
    • En una celda, escribe la fórmula:
    =macro_ollama("llama3", "¿Qué es la inteligencia artificial?")
    • Reemplaza "llama3" con el nombre del modelo de Ollama y el prompt según tus necesidades.
  2. Resultado:
    • El resultado se mostrará en la celda donde se llamó la macro.

Notas importantes

Corrections

If you see mistakes or want to suggest changes, please create an issue on the source repository.

Citation

For attribution, please cite this work as

Sosa (2025, May 29). Blog de José R Sosa: Macro de LLMs locales en LibreOffice. Retrieved from https://josersosa.github.io/personalweb/posts/2026-02-01-macro-de-llms-locales-en-libreoffice/

BibTeX citation

@misc{sosa2025macro,
  author = {Sosa, José R},
  title = {Blog de José R Sosa: Macro de LLMs locales en LibreOffice},
  url = {https://josersosa.github.io/personalweb/posts/2026-02-01-macro-de-llms-locales-en-libreoffice/},
  year = {2025}
}