Configuré un sistema de triaje de correo electrónico usando el asistente doméstico y un LLM restringido, así es como tú asimismo puedes

Home Assistant es una alcoba de software increíblemente poderosa, y puede hacer mucho más que simplemente vincular su hardware de varios proveedores a un tablero. Puede vincular prácticamente cualquier cosa que se le ocurra, desde el software que se ejecuta en su PC hasta juegos como Contrarrestar. Una poderosa integración es la integración IMAP, que le permite vincular su instancia de asistente de inicio a su dirección de correo electrónico, con la capacidad de procesar cada correo electrónico entrante como mejor le parezca. Tomé esta funcionalidad y la convertí en un sistema de triaje de correo electrónico personal, todo usando el asistente doméstico y un LLM restringido.

Estoy corriendo Ollama en un AMD Radeon RX 7900 XTX con 24 GB de VRAMutilizando el maniquí 8B Dolphin-Fuego para resumir y una distancia de contexto de 32,768. El asistente de inicio envía una consulta con cada correo electrónico entrante, y un objeto JSON se devuelve con una categoría, recopilación y nivel de prioridad. Lo que puede usar dependerá completamente de su hardware, pero incluso un maniquí más pequeño funcionará admisiblemente al resumir un correo electrónico entrante una vez que tenga suficiente distancia de contexto para consultar con precisión la información contenida en el correo electrónico.

Para aquellos que buscan seguir, este artículo supone que tienen Ollama o LM Studio configurado y agudo para aceptar consultas sobre una API.

¿Por qué construir un sistema de triaje de correo electrónico?

Hacer correos electrónicos más digeribles

Dashboard

No sé sobre ti, pero mi bandeja de entrada de correo electrónico puede ser un desastre desbordante en el mejor de los casos, y puede ser difícil mantenerse al tanto. Trato de dar a la suscripción de los boletines cuando puedo, pero algunos de ellos están relacionados con el trabajo o que me importan a vecesaunque no todo el tiempo. Estaba tratando de investigar si podía hacer este proceso incluso un poco más manejable para mí, y pensé que aprovecharía el poder de un LLM restringido para hacer exactamente eso.

Asistente de origen, con su Integración IMAPpuede extraer cada correo electrónico que llega a través de un servidor designado, completo con el contenido de correo electrónico si lo desea. Este es un desastre de HTML, por lo común, y el diseño HTML de un correo electrónico puede ser completamente diferente de otro que recibe unos minutos más tarde. No hay un enfoque único para analizar los correos electrónicos entrantes a mano o mediante el uso de Regex … pero ¿qué pasa con un LLM?

Los LLM no hacen ningún razonamiento o prospección racional, pero son excelentes en el examen de texto y patrones. Con una ventana de contexto anciano, podemos beneficiarse el examen de patrones de una LLM para producir resúmenes para cada correo electrónico entrante. No será consumado, y no siempre será completamente preciso, pero puede proporcionar una visión común y la diámetro de asunto llamativo en una notificación para que sepamos verificarlo nosotros mismos si es necesario.

En cuanto a por qué usamos un LLM restringido, la razón es simple. ¿En realidad desea que cada correo electrónico que reciba vaya a un LLM basado en la estrato para su procesamiento? En nombre de la privacidad, definitivamente no me siento cómodo con eso. Sin requisa, tenga en cuenta que esto no reemplaza la comprobación de su bandeja de entrada manualmente. Todavía deberías hacer eso de vez en cuando. Sin requisa, esto me ha permitido dominar la frecuencia con la que reviso mis correos electrónicos, lo cual es increíble. Adicionalmente, obtengo categorías próximo con cada correo electrónico que pasa por el asistente de casa, para que pueda ver estadísticas de lo que tipos De los correos electrónicos asimismo recibo.

Configuración de nuestro comando LLM Triage REST

Dirigir el correo electrónico de Asistente de inicio a Ollama

interna

Construiremos dos componentes separados para esto: el primero es un comando REST que va a nuestro servidor Ollama, y ​​el segundo es la automatización que toma la salida, la envía a nuestro teléfono e incrementa un contador en el asistente de inicio para cada categoría.

Aquí está el REST_Command completo para pegar a su archivo Configuration.yaml (asegúrese de usar la sangría adecuada), que asimismo está arreglado en Github:

rest_command:
llm_email_triage:
url: "http://192.168.1.81:11434/api/chat"
method: POST
headers:
Content-Type: "application/json"
payload: >
{{ {
"model": "dolphin-llama3",
"stream": false,
"keep_alive": "24h",
"messages": (
{
"role": "system",
"content": "You are an email-triage assistant. Read the email JSON, then return ONLY JSON matching the schema."
},
to_json))

),
"format": {
"type":"object",
"properties":{
"priority":{"type":"string","enum":("P0","P1","P2","P3")},
"category":{"type":"string","enum":("personal","transaction","calendar","newsletter","promo","alert","receipt","support","unknown")},
"summary":{"type":"string"},
"actions":{"type":"object","properties":{
"archive":{"type":"boolean"},
"move_to_folder":{"type":"string"},
"snooze_until":{"type":"string"},
"create_task":{"type":"object","properties":{"title":{"type":"string"},"due":{"type":"string"}},"required":("title")}
},"additionalProperties":false},
"confidence":{"type":"number"}
},
"required":("priority","category","summary","actions","confidence"),
"additionalProperties":false
},
"options": {
"temperature": 0,
"num_ctx": 32768
}
} | to_json }}

Lo antecedente es un comando de refrigerio asaz simple para la API Ollama, y ​​envía los siguientes detalles en formato JSON al maniquí:

  • Designe el maniquí Dolphin-Llama3, que es un maniquí de parámetros 8B

  • Designar que debe ponerse a lengua en VRAM durante 24 horas para avalar que no haya tiempos de viraje cada vez que llegue un correo electrónico

  • Un mensaje del sistema: “Usted es un asistente de correo electrónico. Lea el correo electrónico JSON, luego devuelva solo JSON que coincida con el esquema”.

  • El correo electrónico, ya sea en formato de dependencia o formato JSON si el correo electrónico está en formato JSON

  • Un formato de respuesta que debe tener los siguientes campos:

    • Prioridad

    • Categoría

    • Compendio

    • Comportamiento

      • Archivo

      • Moverse a la carpeta

      • Señión hasta que

      • Crear tarea

    • Confianza

  • Ventana de contexto de 32768, o 32k

El formato de respuesta usa el de Ollama “panorama estructuradas“Característica, que limita todas las respuestas para que se ajusten a la plantilla dada. La calidad de los resúmenes y las acciones que se ajustan a lo que ha proporcionado se verá directamente afectado por el maniquí que elija y el tamaño de contexto, y un maniquí 8B con cuantificación de 4 bits y una ventana de contexto de 32k requiere aproximadamente 15 GB de VRAM.

Una vez que esto se agrega a su configuración.yaml, apuntando a su instancia de Ollama, puede reiniciar el asistente de inicio y el nuevo comando REST se agregará como una hecho invocable. Las acciones que mostramos asimismo le permiten implementar sus propias acciones basadas en las recomendaciones de la LLM si lo desea, aunque no las he implementado.

Configuración de nuestra automatización para resumir nuestros correos electrónicos

Procesando la respuesta

Automation Assistant-Ai-Email

La automatización, asimismo que se encuentra en mi GitHub, es asaz simple, aunque la sintaxis puede ser un poco difícil de atinar. El flujo básicamente se ve así, una vez que se activa un evento IMAP_CONTENT:

  • Obtenga el mensaje, guárdelo en nuestra variable “Correo”

  • Acomodar una variable “Email_payload”, que es un objeto JSON que contiene:

  • Llame a nuestro comando REST anteriormente definido, insertando la variable “Eage_PayLoad” y guardando la respuesta a una variable “Triaje”

  • Creamos una variable “triage_obj”, a la que se accede por:

    • Triage (‘contenido’): el cuerpo de respuesta HTTP

    • (‘Mensaje’) (‘Contenido’): la respuesta Ollama /API /Chat, que vive en Message.Content

  • Capturamos la categoría de la respuesta del objeto y designamos nuestros contadores como asignaciones

  • Incrementamos el contador apropiado para la categoría devuelta

  • Notificamos un dispositivo con la diámetro de asunto del correo electrónico, el recopilación del correo electrónico y una prioridad

    • Creamos dos acciones: “SNOOZE_1H” y “Archivo”, aunque tenga en cuenta que estas acciones deben implementarse usted mismo. Estos se dan como un ejemplo de lo que podría hacer con estas notificaciones.

Una vez que se recibe un correo electrónico, unos segundos a posteriori, se activa el evento IMAP_CONTENT, que inicia todo el flujo. Unos segundos a posteriori de eso, entregado el pequeño tamaño del maniquí y el alivo de mantenimiento de 24 horas que pasamos como parte de la solicitud, recibo una notificación en mi teléfono que contiene un recopilación. Luego puedo ir a mi tablero de “correos electrónicos” para ver un mostrador para cada uno. Tendrá que crear estos contadores usted mismo, y estos son:

  • Personal: Counter.Emails_personal

  • transacción: contar.emails_transaction

  • Calendario: Counter.Emails_calendar

  • Newsletter: Counter.Emails_newsletter

  • Promo: Counter.Emails_promo

  • alerta: contar.emails_alert

  • Recibo: Counter.Emails_receipt

  • Soporte: contar.emails_support

  • Desconocido: contar.emails_unknown

Puede restablecerlos individualmente o crear un script fundamental en el asistente de inicio que los restablezca todos por usted. Puede pegar un clavija a un tablero que llame a este script para restablecerlos.

Home Assistant es una aparejo increíblemente poderosa capaz de mucho, y hay mucho espacio para unir diferentes piezas de software en una dispositivo cohesiva. He vinculado mi Interfaz de audio goxlr Desde mi PC hasta el Asistente Home para que pueda usar un fader para controlar mis luces, y he conectado Kuma de tiempo de actividad a la luz de mi oficina para que pueda flashear cuando mis servicios bajan.

Hay muchas maneras de hacer que funcione para usted sin hardware a medida, y esta es solo una de las muchas formas en que puede hacer exactamente eso. El repositorio de GitHub que contiene este tesina asimismo muestra un ejemplo de cómo tendría tareas que pueblan automáticamente una relación de tareas en el Asistente de inicio.

Related Posts

Guatar su SSD al 100% no lo matará, pero podría hacerlo

Guatar un SSD hasta el borde no significa que lo apagarás instantáneamente, pero siquiera significa que sea poco que pueda guiar hacer. Hay muchas razones para darle a su SSD…

Esta configuración de 3 widgets es la única pantalla de inicio de Android que necesitas

Desde que apareció Android (y posteriormente de 15 primaveras, tres cosas todavía me impresionan sobre Android): ha sido el sistema eficaz preferido por las personas que quieren modificar y personalizar.…

You Missed

Empleo de Lozanía concientiza sobre la importancia de la prevención y detección temprana del cáncer colorrectal

Empleo de Lozanía concientiza sobre la importancia de la prevención y detección temprana del cáncer colorrectal

Clubes deportivos del Distrito Doméstico se suman a organización doméstico de prevención y convivencia

Clubes deportivos del Distrito Doméstico se suman a organización doméstico de prevención y convivencia

¿Cuánto cobra un miembro por esconder un haitiano?

¿Cuánto cobra un miembro por esconder un haitiano?

Ocupación de Sanidad y Foro realizarán actividades para conmemorar el Día Internacional de la Gusto

Ocupación de Sanidad y Foro realizarán actividades para conmemorar el Día Internacional de la Gusto

Guatar su SSD al 100% no lo matará, pero podría hacerlo

Guatar su SSD al 100% no lo matará, pero podría hacerlo

COD garantiza billete equipo béisbol en olimpíadas 2028

COD garantiza billete equipo béisbol en olimpíadas 2028