Um protótipo de pesquisa para explorar e organizar múltiplas variações de escrita com grandes modelos de linguagem. Leia mais sobre o projeto neste artigo CHI2024.
Para dar crédito a este sistema, cite nosso artigo 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 e 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 ideias alternativas reescrevendo o texto é parte integrante do processo de escrita. Grandes modelos de linguagem (LLMs) de última geração podem simplificar a geração de variações de escrita. No entanto, as interfaces atuais apresentam desafios para a consideração simultânea de múltiplas variações: criar novas versões sem substituir o texto pode ser difícil, e colá-las sequencialmente pode sobrecarregar os documentos, aumentando a carga de trabalho e interrompendo o fluxo dos redatores. Para resolver isso, apresentamos o ABScribe, uma interface que suporta a exploração rápida, mas visualmente estruturada, de variações de escrita em tarefas de co-escrita humana-IA. Com o ABScribe, os usuários podem produzir rapidamente diversas variações usando prompts LLM, que são convertidos automaticamente em botões reutilizáveis. As variações são armazenadas adjacentemente em segmentos de texto para comparações rápidas no local usando interações do mouse em uma barra de ferramentas de contexto. Nosso estudo de usuários com 12 redatores mostra que o ABScribe reduz significativamente a carga de trabalho da tarefa (d = 1,20, p < 0,001), melhora a percepção do usuário sobre o processo de revisão (d = 2,41, p < 0,001) em comparação com um fluxo de trabalho de linha de base popular e fornece insights sobre como os escritores exploram variações usando LLMs.
Para começar a usar o ABScribe, visite ABScribe.ca ou configure localmente seguindo as instruções no arquivo CONTRIBUTING.md.
O projeto está organizado nos seguintes diretórios:
/abscribe_backend
O aplicativo backend fornece um conjunto de ferramentas para gerenciar documentos, partes e versões. O aplicativo permite aos usuários criar e manipular documentos que contenham conteúdo rich text. O backend é construído usando Python e MongoDB e aproveita o MongoEngine ODM para operações de banco de dados.
/abscribe_backend/models
O diretório models contém os seguintes modelos de dados usados no aplicativo:
Document
: metadados do documento e uma lista de partes contendo conteúdo.Chunk
: conteúdo real do documento.Version
: as diferentes versões do conteúdo em um bloco.Feedback
: Comentários e feedback sobre cada parte do documento.Recipe
: um conjunto de instruções para modificar o conteúdo de um documento. /abscribe_backend/services
O diretório de serviços contém os seguintes serviços usados no aplicativo:
document_service.py
: fornece operações CRUD para documentos.chunk_service.py
: fornece operações CRUD para partes de um documento.version_service.py
: fornece operações CRUD para versões dentro de um bloco.recipe_service.py
: fornece operações CRUD para receitas.feedback_item_*_service.py
: Fornece operações CRUD para feedback dos vários componentes de um documento. /abscribe_backend/tests
O diretório de testes contém o conjunto de testes para o aplicativo backend
/abscribe_backend/app.py
Contém todas as rotas e pontos de extremidade de API descritos nos serviços do aplicativo.
/abscribe_frontend
O aplicativo front-end fornece uma interface de edição descomplicada, desenvolvida por Large Language Models.
/abscribe_frontend/src/services
Funções para interagir com a API backend.
/abscribe_frontend/src/components
Componentes reutilizáveis para o aplicativo frontend. Estes são os componentes usados atualmente no aplicativo:
PopupToolbar.jsx
: componente da barra de ferramentas que facilita a interação com o documento. Principais utilitários de edição de texto, como formatação, importação, etc.
Editor.jsx
: componente de editor de rich text para criação e edição de documentos.
VariationSidebar.jsx
: componente da barra lateral para armazenar e gerenciar variações de escrita.
AIModifiers.jsx
: componente da barra lateral para gerenciar e aplicar ajustes/receitas LLM.
DocumentContainer.jsx
: a interface principal para interação do usuário. Combina os componentes Editor e ABToolbar.
Consulte o arquivo de contribuição para obter orientações sobre como contribuir para este projeto.
Este projeto está licenciado sob a licença MIT. Consulte o arquivo LICENSE para obter detalhes.