Criando um aplicativo a partir da linguagem natural… Aqui está o nosso Takeaway
A OpenAI lançou recentemente seu Codex Javascript Sandbox, que transforma linguagem natural em código. Estávamos curiosos sobre as limitações da IA generativa de última geração e decidimos tentar criar um aplicativo. Se quiser, você pode tentar por si mesmo no Codex Sandbox da OpenAi.
Para começar, precisávamos de um problema do mundo real... mas que problema? Começamos a pensar nos desafios que uma força de trabalho remota induzida pela pandemia trouxe para as empresas e, principalmente, para sua cadeia de valor.
Um dos maiores desafios para nós foi a adaptação à nova norma de comunicação. Apenas alguns anos atrás, costumávamos nos reunir em uma sala de reuniões e desenhar ideias em um quadro branco. Não saíamos da sala até que a sessão de brainstorming terminasse. Hoje, tudo isso acontece por meio de aplicativos como Zoom, Slack, Miro e nossos queridos Jira boards.
Precisávamos restringir ainda mais nosso problema, então conversamos com um ex-representante de vendas que era nossos olhos e ouvidos no mercado. Começamos a relatar nossos desafios trabalhando juntos e lembramos vividamente que é extremamente difícil traduzir uma visão de produto de uma chamada de zoom de 30 minutos para especificações técnicas para engenheiros. Muitas vezes, o diferencial entre as especificações e a terra prometida parecia algo assim:

Pensamos e se pudéssemos tornar o produto final claro antes mesmo de transformarmos Figma e XD em wireframe? E se pudéssemos capacitar as pessoas que dominam o mercado a mostrar aos engenheiros o produto de que precisam para ter sucesso? (e se pudéssemos fazer com que nossos clientes nos mostrassem o que eles queriam?)
Declaração do problema: Ao se adaptar a um novo modo de trabalho remoto, a magnitude da falta de comunicação aumenta a cada salto. Em outras palavras, quanto mais pessoas envolvidas na compreensão e comunicação de um produto desejado, mais distante fica o produto final da terra prometida.
Hipótese: Se mudarmos a redação das especificações de um produto para o início do ciclo de vida do produto (durante a concepção), o resultado de um produto estará mais alinhado com a visão inicial.
Com nosso problema e hipótese prontos para testar, abrimos o Sandbox do OpenAI e começamos a dramatização. Assumimos que um cliente queria criar um aplicativo que pudesse imitar um navegador da Web, de modo que:
- Se os usuários digitarem um endereço da web, eles verão uma versão em miniatura do site no aplicativo.
- O aplicativo deve ter uma aparência tradicional de aplicativo SaaS (ou seja, UI/UX)
Nós essencialmente salvamos:
- 1 dia de wireframes
- 1 dia de validação do projeto
- 1 dia de redesenho do design
- 1 dia escrevendo especificações técnicas
- e 2 dias perseguindo horários
Embora o ambiente sandbox não permitisse conexões com sites externos, a capacidade de produzir código funcional era impressionante.
Aqui estão os nossos 5 principais tópicos.
- O códice da OpenAI foi projetado para seguir instruções explícitas e diretas. Ao fornecer especificações em linguagem natural, os elementos que você está tentando criar devem ser descritos entre si e no mesmo comando. Caso contrário, qualquer elemento adicional que você criar será independente do que foi codificado. Por exemplo, se você deseja criar um aplicativo com uma barra de navegação superior e esquerda e um contêiner contendo elementos adicionais, deve especificar sua posição relativa entre si no mesmo comando.
- Não há desfazer, apenas modificações. O Codex é excelente para criar trechos de código que podem ser ctrl+c/v em sua base de código, mas se você espera confiar apenas nessa solução, é melhor ter suas especificações técnicas claras como o dia. Tentar modificar um conjunto complexo de relacionamentos e interações é difícil de desfazer e, às vezes, pode fazer com que a IA entre em um loop infinito (referência circular?). Certifique-se de limitar as chamadas ou ter um botão de interrupção, ou ficará chocado com sua conta.
- 101 habilidade de codificação é necessária. Você precisa de alguma familiaridade com o pensamento de design de um engenheiro, mas não precisa necessariamente ser capaz de resolver um problema Leetcode para usar o Codex. Isso basicamente reduz a curva de aprendizado para criar um aplicativo e elimina a necessidade de aprender a gramática e a sintaxe de um novo idioma.
- O estilo é extremamente fácil. Em vez de ter que saber CSS para calcular pixels ou saber a diferença entre um flexbox e um elemento flutuante, você pode apenas descrever a posição em relação a outros elementos. Se desejar, você também pode alterar o estilo de qualquer elemento individual tão prescritivo quanto desejar - lembre-se de dar a ele um nome exclusivo.
- Iterações mais rápidas nas interações. Uma das coisas mais difíceis de traduzir para os engenheiros são as interações e os resultados esperados. Estragar isso pode colocar seus sprints em risco e atrasar o lançamento do produto. É um investimento demorado desde a criação dos elementos front-end até a criação do comportamento esperado no back-end. É por isso que as maquetes de fidelidade total são extremamente valiosas para quebrar a falta de comunicação, mas também uma das etapas que consomem mais recursos e tempo em uma cadeia de valor do produto. O Codex é ótimo para ajudá-lo a iterar nas interações até obter um UX semelhante ao da Apple.
À medida que a PNL começa a mudar de adotantes iniciais para a maioria inicial do mercado, ela deve superar o abismo. Isso só será possível com mais casos de uso do mundo real que forem adotados. Todos nós já vimos o que o hype faz com um mercado. Não vamos repetir a história.