Knowledge Source: como configurar bases de conhecimento e ter respostas mais assertivas da IA

Capa do artigo sobre Knowledge Source: como configurar bases de conhecimento e ter respostas mais assertivas da IA. Na imagem, temos um um homem negro que é desenvolvedor de software ouvindo música no fone de ouvido programando em um laptop no escritório de uma empresa de TI.
Conheça a Knowledge Source, as fontes de conhecimento da StackSpot AI, que oferecem o contexto necessário para soluções mais assertivas.

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!

Consuma inovação,
comece a transformação

Assine nosso boletim informativo para se manter atualizado sobre as práticas recomendadas mais recentes para aproveitar a tecnologia para gerar impacto nos negócios

Related posts