Un prototype de recherche pour explorer et organiser plusieurs variantes d'écriture avec de grands modèles de langage. En savoir plus sur le projet dans cet article CHI2024.
Pour créditer ce système, veuillez citer notre article CHI'24, "ABScribe: Rapid Exploration & Organization of Multiple Writing Variations in Human-AI Co-Writing Tasks using Large Language Models" : Mohi Reza, Nathan Laundry, Ilya Musabirov, Peter Dushniku, Zhi Yuan "Michael" Yu, Kashish Mittal, Tovi Grossman, Michael Liut, Anastasia Kuzminykh et 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 }
}
Explorer des idées alternatives en réécrivant le texte fait partie intégrante du processus d'écriture. Les grands modèles de langage (LLM) de pointe peuvent simplifier la génération de variantes d'écriture. Cependant, les interfaces actuelles posent des défis pour la prise en compte simultanée de plusieurs variantes : créer de nouvelles versions sans écraser le texte peut être difficile, et les coller séquentiellement peut encombrer les documents, augmentant la charge de travail et perturbant le flux des rédacteurs. Pour résoudre ce problème, nous présentons ABScribe, une interface qui prend en charge une exploration rapide, mais visuellement structurée, des variations d'écriture dans les tâches de co-écriture homme-IA. Avec ABScribe, les utilisateurs peuvent produire rapidement plusieurs variantes à l'aide des invites LLM, qui sont automatiquement converties en boutons réutilisables. Les variations sont stockées de manière adjacente dans des segments de texte pour des comparaisons rapides sur place à l'aide d'interactions de survol de la souris sur une barre d'outils contextuelle. Notre étude utilisateur auprès de 12 rédacteurs montre qu'ABScribe réduit considérablement la charge de travail des tâches (d = 1,20, p < 0,001), améliore la perception des utilisateurs du processus de révision (d = 2,41, p < 0,001) par rapport à un flux de travail de base populaire et fournit un aperçu de comment les écrivains explorent les variations à l'aide des LLM.
Pour démarrer avec ABScribe, visitez ABScribe.ca ou configurez localement en suivant les instructions du fichier CONTRIBUTING.md.
Le projet est organisé dans les répertoires suivants :
/abscribe_backend
L'application backend fournit un ensemble d'outils pour gérer les documents, les morceaux et les versions. L'application permet aux utilisateurs de créer et de manipuler des documents contenant du contenu textuel riche. Le backend est construit à l'aide de Python et MongoDB et exploite l'ODM MongoEngine pour les opérations de base de données.
/abscribe_backend/models
Le répertoire models contient les modèles de données suivants utilisés dans l'application :
Document
: métadonnées du document et liste de morceaux contenant du contenu.Chunk
: contenu réel dans le document.Version
: Les différentes versions du contenu au sein d'un morceau.Feedback
: Commentaires et retours sur chaque partie du document.Recipe
: Un ensemble d'instructions pour modifier le contenu d'un document. /abscribe_backend/services
Le répertoire des services contient les services suivants utilisés dans l'application :
document_service.py
: Fournit des opérations CRUD pour les documents.chunk_service.py
: fournit des opérations CRUD pour les morceaux d'un document.version_service.py
: fournit des opérations CRUD pour les versions au sein d'un morceau.recipe_service.py
: Fournit des opérations CRUD pour les recettes.feedback_item_*_service.py
: Fournit des opérations CRUD pour commenter les différents composants d'un document. /abscribe_backend/tests
Le répertoire tests contient la suite de tests pour l'application backend
/abscribe_backend/app.py
Contient toutes les routes et points de terminaison d’API décrits dans les services de l’application.
/abscribe_frontend
L'application frontale fournit une interface d'édition sans encombrement optimisée par de grands modèles linguistiques.
/abscribe_frontend/src/services
Fonctions pour interagir avec l'API backend.
/abscribe_frontend/src/components
Composants réutilisables pour l'application frontend. Voici les composants actuellement utilisés dans l'application :
PopupToolbar.jsx
: Composant de barre d'outils facilitant l'interaction avec le document. Principaux utilitaires d'édition de texte tels que le formatage, l'importation, etc.
Editor.jsx
: Composant d'éditeur de texte enrichi pour créer et éditer des documents.
VariationSidebar.jsx
: Composant de barre latérale pour stocker et gérer les variantes d'écriture.
AIModifiers.jsx
: composant de la barre latérale pour gérer et appliquer les ajustements/recettes LLM.
DocumentContainer.jsx
: L'interface principale pour l'interaction utilisateur. Combine les composants Editor et ABToolbar.
Veuillez consulter le fichier de contribution pour connaître les directives sur la manière de contribuer à ce projet.
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.