A StackSpot AI surgiu para ajudar nas tarefas repetitivas e melhorar, cada vez mais, a performance dos times. O uso de alguns recursos da ferramenta, como a Knowledge Source, são essenciais para times que buscam otimizar suas práticas, garantindo qualidade de seus produtos, padrões de escritas de códigos, documentação, testes, e outras atividades corriqueiras.
Por isso, neste artigo vamos explorar boas práticas no uso das Knowledge Sources, adotando estratégias que tornarão a inteligência artificial mais assertiva nas respostas oferecidas por Quick Commands e Agentes de IA.
O que é Knowledge Source?
A Knowledge Source é um recurso da StackSpot AI que funciona como uma fonte de conhecimento que pode ser moldada de acordo com os padrões e práticas de desenvolvimento e criação de documentação do time que a utiliza.
A criação de uma base de conhecimento com os padrões do time, faz com que a IA seja hipercontextualizada, tendo o conhecimento dos padrões utilizados pela empresa e gerando respostas com base neles.
A Knowledge Source é um recurso essencial para centralizar e compartilhar conhecimento para a StackSpot AI, promovendo eficiência e qualidade no desenvolvimento de software.
Para saber mais sobre a Knowledge Source e como criar uma base de conhecimento, acesse a documentação oficial da StackSpot AI. O foco deste artigo será em como podemos usar esse recurso de forma mais eficaz e aproveitar melhor a StackSpot AI.
Vamos usar exemplos de um projeto Angular e a criação de teste automatizado com Cypress, mas o padrão de construção de base de conhecimento serve para qualquer outro tipo de conhecimento.
Criando uma Knowledge Source
Ao incorporar uma Knowledge Source, é comum inserir códigos prontos sem comentários, ou então copiar uma documentação pronta. Embora essa abordagem possa gerar bons resultados com a IA, buscamos respostas cada vez mais precisas e relevantes.
Uma boa prática para incorporar a Knowledge Source é criar um documento, preferencialmente no formato Markdown, seguindo este padrão:
- Título: faça referência clara ao conteúdo do documento.
- Descrição: logo após o título, inclua uma breve descrição do que será abordado.
- Seções: divida o conteúdo em pequenas seções, cada uma com um subtítulo que descreva o que será tratado.
Exemplo de documento
Confira um exemplo de um documento com conhecimento sobre testes automatizados usando Cypress e que exemplifica o padrão da equipe para o mapeamento de elementos HTML para que a IA tenha esse conhecimento e traga respostas seguindo o padrão:
# Squad Starwars: como mapear elementos HTML em cypress
## Introdução
Esse documento mostra como a squad Starwars realiza o mapeamento dos objetos do HTML pelo do xpath para ser usado no cypress para testes automatizados usando o padrão "page objects".
## Exemplo tela de buscas
const buscaPage = {
btnVoltar: () =>
cy.xpath("//span[@aria-hidden='true'][contains(.,'seta_esquerda')]"),
titleH1: () =>
cy.xpath(
"//main/section/h1[contains(.,'Titulo da pagina de busca')]"
),
lupaIcon: () =>
cy.xpath("//span[@aria-hidden='true'][contains(.,'busca_outline')]"),
}
No exemplo, criamos um único documento para demonstrar como buscar elementos HTML usando o XPath. Nele, utilizamos palavras-chave como o nome da squad, “Starwars”, e a tecnologia utilizada, “Cypress”. Outras palavras-chave que também podem ser exploradas são “mapeamento” e “page objects”.
A seguir, confira outro exemplo de documento em Markdown para base de conhecimento:
# Base de Conhecimento de uso do jest pela squad Starwars
## Introdução
Este documento descreve a forma como a squad Starwars faz uso do jest para criação de mocks, uso de spyOn e uso de jest.fn
### Exemplo de como usar o spyOn do jest para funções e validar a chamada no expect do teste unitário
import { ModelDependencia } from '@dependencia/sdk';
const spyfunc = jest.spyOn(ModelDependencia, 'func').mockReturnValue(of({}))
expect(spyfunc).toHaveBeenCalled()
No exemplo acima, foi detalhado como o Jest é utilizado em testes unitários, sempre usando palavras-chave para direcionar melhor a IA.
Uma outra vantagem de usar a Knowledge Source é permitir que a IA tenha conhecimento do código do projeto. Por exemplo, se a squad tem como padrão implementar um arquivo com os mocks para testes unitários, reutilizando-os, basta criar um documento com exemplos de como importar e usar esses mocks nos testes.
Assim, ao gerar os testes unitários, a IA não vai criar novos mocks, mas usar os imports e aplicar conforme foi ensinado.
Novo exemplo
Vamos conferir o seguinte exemplo:
# Base de Conhecimento da squad Starwars para criação e uso de mocks em testes unitários
## Introdução
Este documento descreve o padrão para criar mocks de services e como os mocks são usados nos testes unitários gerados pela squad Starwars
## Exemplo de como criar um service mock
export const usuarioServiceMock = {
gerarDadosUsuario: jest.fn().mockReturnValue({}),
criarNovoUsuario: jest.fn().mockReturnValue({}),
};
## Exemplo de como usar os mocks nos testes unitários de componente Angular
import * as mocks from '../../../shared/mocks/mocks';
TestBed.configureTestingModule({
schemas: [NO_ERRORS_SCHEMA],
declarations: [UsuarioComponent],
providers: [
{ provide: UsuarioService, useValue: mocks.usuarioServiceMock },
],
});
Ao criar a base de conhecimento de acordo com o exemplo acima, quando você solicitar à IA que gere testes unitários de componentes que consomem o UsuarioService ou algum outro serviço, a IA não irá criar novos mocks. Em vez disso, ela usa os imports dos mocks já existentes mantendo o padrão de testes unitários adotado pela squad.
Contextualizando a Knowledge Source
Uma outra boa prática para o uso das bases de conhecimento é torná-las mais contextualizadas. Por exemplo, é recomendável criar bases de conhecimento separadas para diferentes áreas, como:
- Testes unitários de front-end;
- Padrões de desenvolvimento de componentes de front-end;
- Testes unitários de back-end;
- Testes automatizados com Cypress;
- Escrita de user stories.
Ao separar as bases de conhecimentos dessa forma, é possível melhorar a contextualização da IA, resultando em respostas mais assertivas e alinhadas com a necessidade de cada time.
Outras boas práticas
Para Knowledge Sources de qualidade e fácil compreensão, confira aspectos importantes para serem atendidos durante a criação e manutenção do conteúdo:
- Tenha certeza que a Knowledge Source é relevante e atualizada;
- Revise-a e atualize-a com regularidade;
- Organize o conteúdo de forma lógica;
- Escreva de forma direta e clara;
- Evite jargões e termos técnicos desnecessários;
- Inclua exemplos práticos e casos de uso;
- Solicite feedback das pessoas usuárias e realize melhorias contínuas.
Lembre-se ao criar ou manter uma Knowledge Source: pessoas de diferentes senioridades e áreas terão acesso ao conteúdo, portanto escreva para todas as pessoas compreenderem.
Consumindo a Knowledge Source
Até agora, exemplificamos como deixar as Knowledge Sources ainda mais hipercontextualizadas, o que falta agora é fazer com que a IA retorne esse conhecimento de forma mais assertiva.
Voltando ao primeiro exemplo, ao criar o prompt que gere o mapeamento de objetos em um HTML, basta usar as palavras-chave inseridas na base de conhecimento. Confira o exemplo:
- Opção 1: Você é uma pessoa QA da squad Starwars. Faça o mapeamento dos objetos HTML utilizando Cypress.
- Opção 2: Mapear elementos HTML utilizando Cypress de acordo com o padrão da squad Starwars.
Dessa forma, a IA irá buscar as palavras-chave na Knowledge Source e gerar uma resposta mais precisa, evitando conteúdos de outras fontes já treinadas na IA.
No segundo exemplo, sobre a criação de testes unitários com Jest, podemos criar prompts da seguinte forma:
- Opção 1. Você é um desenvolvedor da squad Starwars, gere testes unitários para o código abaixo utilizando jest.
- Opção 2. Gere testes unitários para o seguinte componente utilizando jest e seguindo os padrões da squad Starwars
Ao adicionarmos essas palavras-chave, “forçamos” a IA a buscar resultados mais específicos na base de conhecimento.
Para facilitar ainda mais o uso da base de conhecimento, você pode utilizar Agentes e Quick Commands. Basta configurar os prompts com as palavras-chave inseridas anteriormente na base de conhecimento. Isso reduz o trabalho da pessoa usuária de escrever os prompts, já que tudo estará pré-configurado no Agente ou Quick Command.
Conclusão
O uso eficaz de Knowledge Sources da StackSpot AI pode transformar significativamente a maneira como os times de desenvolvimento de software trabalham. Ao criar uma Knowledge Source bem estruturada e contextualizada, a StackSpot AI consegue fornecer respostas mais precisas e alinhadas com os padrões e práticas da equipe.
A adoção de boas práticas na criação de documentos com títulos claros, descrições objetivas e seções bem definidas, facilita a organização e o acesso às informações. Além disso, separar as bases de conhecimento por contextos específicos, como testes unitários de front-end, desenvolvimento de componentes, testes automatizados, entre outros, aumenta a contextualização da IA, resultando em respostas mais assertivas.
Para consumir essas Knowledge Sources de forma eficiente, é essencial utilizar palavras-chave nos prompts, Agentes e Quick Commands, direcionando a IA a buscar informações específicas na base de conhecimento.
Assim, a StackSpot AI se torna uma ferramenta poderosa para otimizar processos, garantir a qualidade do código e promover a reutilização de componentes, contribuindo para o sucesso e a eficiência no desenvolvimento de software.
Gostou das dicas? Como você organiza as suas Knowledge Sources? Conte nos comentários!