Este estudo explora como os desenvolvedores interagem com o ChatGPT em múltiplas interações, analisando 645 prompts de conversas reais de programação. Categoriza as mensagens dos desenvolvedores em sete funções—desde a introdução de tarefas até o refinamento de consultas e fornecimento de feedback—e utiliza um modelo de Markov para mapear o fluxo conversacional. Os resultados mostram que a maioria dos diálogos começa com a definição da tarefa, seguida por acompanhamentos iterativos ou refinamentos que melhoram as respostas do ChatGPT. Estas descobertas revelam como os desenvolvedores co-evoluem soluções com IA através de trocas em camadas, orientadas por feedback, em vez de consultas únicas.Este estudo explora como os desenvolvedores interagem com o ChatGPT em múltiplas interações, analisando 645 prompts de conversas reais de programação. Categoriza as mensagens dos desenvolvedores em sete funções—desde a introdução de tarefas até o refinamento de consultas e fornecimento de feedback—e utiliza um modelo de Markov para mapear o fluxo conversacional. Os resultados mostram que a maioria dos diálogos começa com a definição da tarefa, seguida por acompanhamentos iterativos ou refinamentos que melhoram as respostas do ChatGPT. Estas descobertas revelam como os desenvolvedores co-evoluem soluções com IA através de trocas em camadas, orientadas por feedback, em vez de consultas únicas.

Análise do Fluxo de Prompts de Programadores em Conversas do ChatGPT

2025/11/13 01:30

Resumo

1 Introdução

2 Coleta de Dados

3 RQ1: Que tipos de consultas de engenharia de software os desenvolvedores apresentam ao ChatGPT no prompt inicial?

4 RQ2: Como os desenvolvedores apresentam suas consultas ao ChatGPT em conversas de múltiplos turnos?

5 RQ3: Quais são as características do comportamento de compartilhamento?

6 Discussões

7 Ameaças à Validade

8 Trabalhos Relacionados

9 Conclusão e Trabalhos Futuros

Referências

\

RQ2: Como os desenvolvedores apresentam suas consultas ao ChatGPT em conversas de múltiplos turnos?

==Motivação:== Os resultados apresentados na Figura 3 e Figura 4 revelam que uma parte substancial em DevGPT-PRs (33,2%) e DevGPT-Issues (26,9%) abrange conversas de múltiplos turnos. Em conversas de turno único, os desenvolvedores fazem uma consulta relacionada a SE no prompt inicial e recebem uma resposta do ChatGPT, proporcionando uma troca clara e direta. A dinâmica das conversas de múltiplos turnos, no entanto, introduz complexidade. Essas interações vão além de uma simples consulta e resposta, envolvendo uma série de trocas que potencialmente refinam, expandem ou esclarecem a consulta inicial.

\ Esta comunicação em camadas levanta uma questão sobre as estratégias dos desenvolvedores para articular suas consultas em múltiplos turnos. Assim, introduzimos a RQ2, que estuda a natureza dos prompts dos desenvolvedores em conversas de múltiplos turnos. Para facilitar uma análise abrangente, introduzimos ainda duas sub-RQs:

RQ2.1: Quais são os papéis dos prompts de desenvolvedores em conversas de múltiplos turnos? Esta questão visa categorizar o papel estrutural de cada prompt na conversa de múltiplos turnos correspondente.

RQ2.2: Quais são os padrões de fluxo em conversas de múltiplos turnos? Com base na taxonomia proposta como resposta à RQ2.1, esta questão explora o padrão de transição frequente desses papéis identificados de prompts em conversas de múltiplos turnos. As respostas às sub-RQs acima fornecerão insights para os pesquisadores sobre a dinâmica e práticas dos desenvolvedores na utilização do ChatGPT através de múltiplas rodadas de interações.

\ 4.1 Abordagem

Na RQ2.1, consideramos prompts em todas as 189 conversas de múltiplos turnos, ou seja, 64 conversas de DevGPT-PRs e 125 de DevGPT-Issues. Seguindo um método semelhante ao RQ1, usamos codificação aberta para rotular manualmente 645 prompts (236 prompts de DevGPT-PRs e 409 prompts de DevGPT-Issues) em conversas de múltiplos turnos ao longo de três rodadas:

– Na primeira rodada, cinco coautores rotularam independentemente 20 conversas selecionadas aleatoriamente de ambos os conjuntos de dados DevGPT-PRs e DevGPT-Issues de múltiplos turnos, abrangendo 40 conversas e 123 prompts. Após discussão, desenvolvemos um livro de codificação consistindo em sete rótulos distintos.

– Na segunda rodada, com base no livro de codificação existente, dois anotadores rotularam independentemente outro conjunto de 20 conversas de cada um dos conjuntos de dados DevGPT-PRs e DevGPT-Issues de múltiplos turnos, um total de 144 prompts. Os dois anotadores alcançaram uma pontuação de concordância inter-avaliador de 0,89, medida pelo coeficiente kappa de Cohen, representando uma concordância quase perfeita (Landis e Koch, 1977). Os anotadores então discutiram e refinaram o livro de codificação.

\ – Finalmente, cada um dos dois anotadores da segunda rodada rotulou independentemente os dados restantes. Na RQ2.2, usamos um modelo de Markov (Gagniuc, 2017) para analisar os padrões de fluxo de conversação plotando um Gráfico de Transição de Markov. Um Gráfico de Transição de Markov é um gráfico direcionado que demonstra as transições probabilísticas

entre vários estados ou nós. No nosso caso, cada nó no gráfico representa uma categoria específica desenvolvida na RQ2.1, e as arestas direcionadas entre nós denotam a probabilidade de transição de uma taxonomia para outra com base nas conversas de múltiplos turnos que coletamos. Para extrair insights significativos do Gráfico de Transição de Markov, propomos as seguintes etapas de pós-processamento:

  1. Podamos o gráfico removendo transições com probabilidades inferiores a 0,05, garantindo um foco em relações estatisticamente significativas.

  2. Refinamos a estrutura do gráfico removendo nós sem arestas de entrada e saída, exceto os nós de início e fim. Esta etapa garante a simplificação, pois mantemos apenas componentes essenciais.

  3. Reorganizamos sistematicamente o Gráfico de Transição de Markov em um fluxograma para melhorar sua interpretabilidade, oferecendo uma representação mais fácil de entender dos padrões de fluxo.

    \ 4.2 Resultados

    4.2.1 RQ 2.1 Quais são os papéis dos prompts de desenvolvedores em conversas de múltiplos turnos? A Tabela 4 apresenta nossa taxonomia proposta para classificar prompts dentro de conversas de múltiplos turnos. Nossa análise revela que, tanto em pull requests quanto em issues, as conversas de múltiplos turnos contêm três tipos principais de prompts: aqueles que fazem perguntas de acompanhamento (M1), aqueles que introduzem a tarefa inicial (M2) e aqueles que são refinados a partir de um prompt anterior (M3). Um prompt de DevGPT-PRs e seis prompts de DevGPT-Issues foram categorizados como "Outros" devido à sua natureza de serem conversas casuais ou por falta de detalhes suficientes para determinar seus papéis.

    \ Abaixo, descrevemos cada categoria em mais detalhes.

    ==(M1) Acompanhamento iterativo:== Em 33% e 40% dos prompts em DevGPT-PRs e DevGPT-Issues de múltiplos turnos, os desenvolvedores postam consultas que se baseiam diretamente nas respostas anteriores do ChatGPT ou no contexto em andamento, como depuração e reparo de uma solução após a geração de código pelo ChatGPT. Tais acompanhamentos iterativos tipicamente emergem quando a tarefa inicial apresenta um desafio complexo que o ChatGPT pode não resolver completamente em uma única interação. Consequentemente, os desenvolvedores se envolvem em um prompt especificando uma solicitação de acompanhamento, permitindo que o ChatGPT incorpore feedback humano e melhore iterativamente a solução proposta.

    \ ==(M2) Revelar a tarefa inicial:== Descobrimos que uma fração semelhante, ou seja, 26% em DevGPT-PRs de múltiplos turnos e 29% em DevGPT-Issues de múltiplos turnos, de prompts serve para introduzir a tarefa inicial ao ChatGPT. Esta distribuição destaca que em conversas de múltiplos turnos, ao contrário de conversas de turno único, onde o único prompt é dedicado a delinear a tarefa principal, há uma quantidade significativa de prompts servindo a outros propósitos.

    \ ==(M3) Refinar prompt:== Além do acompanhamento iterativo (M1), os desenvolvedores também tendem a melhorar a solução proposta pelo ChatGPT fornecendo um prompt de solicitação refinado com contexto ou restrições adicionais. O objetivo é melhorar a qualidade da resposta para a mesma consulta postada no prompt anterior. Prompts Refinados representam 17% dos prompts em DevGPT-PRs de múltiplos turnos e 14% em DevGPT-Issues.

    \ ==(M4) Fornecimento de informações:== Em 8% e 6% dos prompts em DevGPT-PRs e DevGPT-Issues de múltiplos turnos, os desenvolvedores não postam nenhuma solicitação para o ChatGPT, mas sim, compartilham conhecimento ou contexto com o ChatGPT.

    \ ==(M5) Revelar uma nova tarefa== Observamos que 7% e 4% dos prompts em DevGPT-PRs e DevGPT-Issues de múltiplos turnos estão postando uma nova tarefa para o ChatGPT, que é distinta da(s) tarefa(s) abordada(s) nos prompts anteriores. Esta categoria representa uma clara diferença dos acompanhamentos iterativos (M1), pois a nova tarefa não se relaciona ou se baseia nas respostas anteriores do ChatGPT e visa um objetivo diferente. Por exemplo, um desenvolvedor inicialmente solicitou ao ChatGPT para gerar o SQL correspondente a um conjunto de consultas Django e, em um prompt subsequente, pediu o SQL para um conjunto de consultas diferente, mudando assim o foco da conversa para uma tarefa totalmente nova sem relevância anterior.

    \ ==(M6) Feedback negativo:== Dentro de conversas de múltiplos turnos, alguns (6% em DevGPT-PRs e 2% em DevGPT-Issues) prompts contêm apenas feedback negativo direcionado às respostas anteriores do ChatGPT, sem fornecer qualquer informação para o ChatGPT melhorar ou resolver ainda mais. Por exemplo, "Seu código está incorreto", "O mesmo erro persiste" e "...não funciona". Esta categoria sublinha instâncias onde os desenvolvedores procuram informar o ChatGPT de suas deficiências, sem buscar assistência ou esclarecimento adicional.

    \ (M7) Pedindo esclarecimento: 4% e 5% dos prompts em DevGPT-PRs e DevGPT-Issues de múltiplos turnos pedem ao ChatGPT para elaborar sua resposta. Esses pedidos de elaboração visam garantir a abrangência de uma solução, por exemplo, "Preciso fazer mais alguma coisa?". Eles também incluem verificação da capacidade do ChatGPT para lidar com tarefas específicas, ou consultas para verificar se certas condições foram consideradas na resposta. Além disso, os desenvolvedores podem perguntar por que algumas alternativas foram negligenciadas pelo ChatGPT, indicando um envolvimento mais profundo com as soluções propostas e um desejo de entender a lógica por trás da solução proposta pelo ChatGPT.

    4.2.2 RQ 2.2 Quais são os padrões de fluxo em conversas de múltiplos turnos?

    A Figura 5 apresenta o fluxograma resultante após aplicar as etapas de pós-processamento em um Gráfico de Transição de Markov baseado em conversas anotadas como resultado da RQ2.1. O fluxograma se aplica a conversas de múltiplos turnos tanto em DevGPT-PRs quanto em DevGPT-Issues. Como ilustrado na Figura 5, as conversas de múltiplos turnos tipicamente começam com a apresentação da tarefa inicial (M2) ou informações contextuais (M4).

    \ Nossa análise detalhada de acompanhamento revela que 81% das conversas de múltiplos turnos em DevGPT-PRs e 90% em DevGPT-Issues começam delineando a tarefa inicial. Por outro lado, cerca de 13% das conversas de múltiplos turnos em DevGPT-PRs e 3% em DevGPT-Issues introduzem a tarefa inicial no segundo prompt. Em casos extremos, a tarefa inicial é divulgada tão tarde quanto o sétimo turno, ou, em alguns casos, a tarefa inicial nunca é explicitamente apresentada—em vez disso, essas conversas apenas apresentam informações ao ChatGPT sem declarar diretamente a tarefa.

    \ Quanto ao fluxo completo, identificamos os seguintes padrões com base na Figura 5:

  4. Início → revelar a tarefa inicial → acompanhamento iterativo → fim

  5. Início → revelar a tarefa inicial → refinar prompt → (acompanhamento iterativo) → fim

  6. Início → revelar a tarefa inicial → revelar uma nova tarefa → fim

  7. Início → fornecimento de informações → revelar a tarefa inicial → … → fim

  8. Início → revelar a tarefa inicial → pedir esclarecimento → fim

  9. Início → revelar a tarefa inicial → feedback negativo → fim

    \ Os padrões de fluxo (1) a (3) mostram os fluxos de interação desenvolvedor-ChatGPT mais comuns em conversas de múltiplos turnos. A tarefa inicial é divulgada no prompt inicial, seguida por prompts visando melhorar as respostas do ChatGPT via acompanhamento iterativo, refinamentos de prompt, ou para revelar uma nova tarefa.

    O padrão (4) demonstra fluxos de interação iniciados por desenvolvedores fornecendo informações ao ChatGPT como primeiro passo. Em seguida, a tarefa inicial foi revelada, seguida por padrões semelhantes a (1) a (3). O padrão (5) refere-se a desenvolvedores pedindo esclarecimento do ChatGPT após revelar a tarefa inicial e receber uma resposta do ChatGPT.

    \ O padrão (6) representa um fluxo de interação no qual os desenvol

Isenção de responsabilidade: Os artigos republicados neste site são provenientes de plataformas públicas e são fornecidos apenas para fins informativos. Eles não refletem necessariamente a opinião da MEXC. Todos os direitos permanecem com os autores originais. Se você acredita que algum conteúdo infringe direitos de terceiros, entre em contato pelo e-mail service@support.mexc.com para solicitar a remoção. A MEXC não oferece garantias quanto à precisão, integridade ou atualidade das informações e não se responsabiliza por quaisquer ações tomadas com base no conteúdo fornecido. O conteúdo não constitui aconselhamento financeiro, jurídico ou profissional, nem deve ser considerado uma recomendação ou endosso por parte da MEXC.