Un prototipo de investigación para explorar y organizar múltiples variaciones de escritura con modelos de lenguaje grandes. Lea más sobre el proyecto en este artículo de CHI2024.
Para acreditar este sistema, cite nuestro artículo CHI'24, "ABScribe: Exploración rápida y organización de múltiples variaciones de escritura en tareas de coescritura entre humanos e IA utilizando modelos de lenguaje grandes": Mohi Reza, Nathan Laundry, Ilya Musabirov, Peter Dushniku, Zhi Yuan "Michael" Yu, Kashish Mittal, Tovi Grossman, Michael Liut, Anastasia Kuzminykh y Joseph Jay Williams. 2024
@inproceedings { reza2024abscribe ,
title = { ABScribe: Rapid Exploration & Organization of Multiple Writing Variations in Human-AI Co-Writing Tasks using Large Language Models } ,
author = { Mohi Reza, Nathan Laundry, Ilya Musabirov, Peter Dushniku, Zhi Yuan "Michael" Yu, Kashish Mittal, Tovi Grossman, Michael Liut, Anastasia Kuzminykh, Joseph Jay Williams } ,
booktitle = { Proceedings of the 2024 CHI Conference on Human Factors in Computing Systems } ,
pages = { 1-18 } ,
organization = { Association for Computing Machinery } ,
doi = { https://doi.org/10.1145/3613904.3641899 } ,
year = { 2024 }
}
Explorar ideas alternativas reescribiendo el texto es parte integral del proceso de escritura. Los modelos de lenguajes grandes (LLM) de última generación pueden simplificar la generación de variaciones de escritura. Sin embargo, las interfaces actuales plantean desafíos para la consideración simultánea de múltiples variaciones: crear nuevas versiones sin sobrescribir el texto puede ser difícil, y pegarlas secuencialmente puede saturar los documentos, aumentar la carga de trabajo e interrumpir el flujo de los redactores. Para abordar esto, presentamos ABScribe, una interfaz que admite una exploración rápida, pero visualmente estructurada, de variaciones de escritura en tareas de coescritura entre humanos y IA. Con ABScribe, los usuarios pueden producir rápidamente múltiples variaciones utilizando indicaciones de LLM, que se convierten automáticamente en botones reutilizables. Las variaciones se almacenan de forma adyacente dentro de los segmentos de texto para realizar comparaciones rápidas en el lugar mediante interacciones al pasar el mouse en una barra de herramientas contextual. Nuestro estudio de usuarios con 12 escritores muestra que ABScribe reduce significativamente la carga de trabajo de las tareas (d = 1,20, p < 0,001), mejora las percepciones de los usuarios sobre el proceso de revisión (d = 2,41, p < 0,001) en comparación con un flujo de trabajo de referencia popular y proporciona información sobre cómo los escritores exploran variaciones utilizando LLM.
Para comenzar con ABScribe, visite ABScribe.ca o configúrelo localmente siguiendo las instrucciones en el archivo CONTRIBUTING.md.
El proyecto está organizado en los siguientes directorios:
/abscribe_backend
La aplicación backend proporciona un conjunto de herramientas para gestionar documentos, fragmentos y versiones. La aplicación permite a los usuarios crear y manipular documentos que contienen contenido de texto enriquecido. El backend está creado con Python y MongoDB, y aprovecha MongoEngine ODM para operaciones de bases de datos.
/abscribe_backend/models
El directorio de modelos contiene los siguientes modelos de datos utilizados en la aplicación:
Document
: metadatos del documento y una lista de fragmentos que contienen contenido.Chunk
: contenido real dentro del documento.Version
: las diferentes versiones del contenido dentro de un fragmento.Feedback
: Comentarios y opiniones sobre cada parte del documento.Recipe
: un conjunto de instrucciones para modificar el contenido de un documento. /abscribe_backend/services
El directorio de servicios contiene los siguientes servicios utilizados en la aplicación:
document_service.py
: proporciona operaciones CRUD para documentos.chunk_service.py
: proporciona operaciones CRUD para fragmentos dentro de un documento.version_service.py
: proporciona operaciones CRUD para versiones dentro de un fragmento.recipe_service.py
: proporciona operaciones CRUD para recetas.feedback_item_*_service.py
: proporciona operaciones CRUD para retroalimentación de los distintos componentes de un documento. /abscribe_backend/tests
El directorio de pruebas contiene el conjunto de pruebas para la aplicación backend.
/abscribe_backend/app.py
Contiene todas las rutas y puntos finales de API descritos en servicios para la aplicación.
/abscribe_frontend
La aplicación de interfaz proporciona una interfaz de edición ordenada impulsada por modelos de lenguaje grandes.
/abscribe_frontend/src/services
Funciones para interactuar con la API backend.
/abscribe_frontend/src/components
Componentes reutilizables para la aplicación frontend. Estos son los componentes que se utilizan actualmente en la aplicación:
PopupToolbar.jsx
: Componente de la barra de herramientas que facilita la interacción con el documento. Principales utilidades del editor de texto como formato, importación, etc.
Editor.jsx
: Componente de edición de texto enriquecido para crear y editar documentos.
VariationSidebar.jsx
: Componente de barra lateral para almacenar y gestionar variaciones de escritura.
AIModifiers.jsx
: componente de la barra lateral para gestionar y aplicar ajustes/recetas de LLM.
DocumentContainer.jsx
: la interfaz principal para la interacción del usuario. Combina los componentes Editor y ABToolbar.
Consulte el archivo de contribución para obtener pautas sobre cómo contribuir a este proyecto.
Este proyecto está bajo la licencia MIT. Consulte el archivo de LICENCIA para obtener más detalles.