Skip to content

odabrab/llm-tester

Repository files navigation

README para o código de LLM Tester

A GenAI service testing mobile application based on React Native.

O controle de versões deste projeto é realizado com o sistema Git, que utiliza uma estratégia distribuída de repositórios. O primeiro repositório público a receber as entregas fica no serviço GitHub, precisamente em [2].

O IDE a implementar o arcabouço React Native usado neste projeto é público, e utiliza o serviço Expo Snack. Enquanto é considerado um protótipo de sala de aula, os códigos-fontes podem ser encontrados em [1].

SUMÁRIO

1) INTRODUçÃO

2) REACT NATIVE

3) REQUISITOS E PRINCIPAIS COMPONENTES

  3.1) CACHING E PERSISTÊNCIA

    3.1.1) LOCALMENTE

    3.1.2) REMOTAMENTE

4) ESTRUTURA DO PROJETO LLM TESTER

  4.1) O DIRETÓRIO /ASSETS/

  4.2) O DIRETÓRIO /COMPONENTS/

    4.2.1) O FICHEIRO /COMPONENTS/STYLES.JS

  4.3) O DIRETÓRIO /.PERSISTENCE/

    4.3.1) O FICHEIRO /.PERSISTENCE/LOG.CSV

5) OBSERVAÇÕES

REFERÊNCIAS

1) INTRODUçÃO

Vislumbres do primeiro quarto do século XXI revelam claras tendências tecnológicas, e novas preocupações acompanham as referidas tendências. O LLM Tester é uma aplicação para computadores móveis e portáteis capaz de testar serviços de inteligência artificial gerativa ou generativa, i.e., serviços LLM.

PROJETO LLM TESTER

A DISCIPLINA ARA0089

A disciplina "ARA0089 Programação para dispositivos móveis em Android" é ministrada em formato sala de aula invertida, conforme determina a sua ementa.

As turmas da disciplina foram divididas em equipes de cinco alunos no máximo, lideranças foram definidas, e a partir de então, as referidas equipes passaram a trabalhar no desenvolvimento de uma aplicação que atendesse aos requisitos funcionais e não-funcionais mínimos do enunciado.

Uma vez que a ementa determina a utilização do arcabouço React Native, a principal linguagem de programação utilizada é a JavaScript, juntamente à extensão JavaScript Syntax eXtension (JSX), que agrega a sintaxe XML à referida linguagem de programação.

CODING DOJO

O professor utiliza o laboratório para orientar as equipes, e para produzir interações entre elas. Assim, algumas aulas ocorrem como o chamado "coding dojo", um modelo de programação coletiva no qual o código é projetado para que todos os presentes possam auxiliar em sua depuração e/ou em seu aprimoramento.

A engenharia de software do projeto lança mão do notório arcabouço Scrum, que por sua vez compõe o conjunto de sistemáticas chamado "desenvolvimento ágil de software".

A APLICAçÃO

A aplicação está disponível para Android e iOS.

2) REACT NATIVE

Arcabouço mantido pela organização chamada Meta, que permite a criação de aplicativos para Android e iOS a partir de uma base única, escrita predominantemente em JavaScript e JSX.

O projeto utiliza uma implementação do React Native chamada Snack.

DEPENDÊNCIAS

A presente seção trata das dependências listadas pelo ficheiro package.json.

TECNOLOGIAS E TÉCNICAS HABILITADORAS

JAVASCRIPT

JSX

JSON

XML

SCRUM

A INTERFACE SNACK

Utiliza-se o IDE Expo Snack para prototipagem. Ele permite que o resultado do código seja automaticamente mostrado no painel à direita, que funciona como se fosse a tela de um dispositivo móvel. É possível emular equipamentos com Android e com iOS. Caso seja desejável visualizar telas em smartphones reais e/ou outros dispositivos, utiliza-se o código QR.

Não se esqueça de salvar as suas edições caso escolha usar o Expo Snack. Elas nem sempre são salvas automaticamente.

O URL de um Snack pode ser compartilhado para que outras pessoas vejam o projeto facilmente. Note que todos os projetos criados no Snack são acessíveis publicamente através do URL do projeto, e.g., o Projeto RH em Ação [1]. Isso é bem útil para mostrar o código a alguém, e facilita bastante a vida do professor.

O próprio Snack tem o seu código aberto, disponível em seu repositório do GitHub.

Caso queira testar ou mostrar o aplicativo em funcionamento num dispositivo móvel de verdade, use o QR code disponível em "My Device", que fica sobre a telinha do dispositivo virtual.

Caso você já tenha um editor de texto ou IDE de sua preferência, faça o download do seu projeto, e use o expo cli).

Adicionalmente, o Expo oferece um fórum para dúvidas gerais e específicas.

3) REQUISITOS E PRINCIPAIS COMPONENTES

O protótipo para o arcabouço React Native se encontra adaptado às restrições do IDE web chamado Expo Snack.

A biblioteca react-native-fs figura como uma opção para a criação de ficheiros, entretanto se mostrou problemática no IDE Snack.

3.1) CACHING E PERSISTÊNCIA

Dados da aplicação são salvos localmente e remotamente. Eles são organizados em três tipos de tabelas: um tipo para tabelas de contas, um tipo para tabelas de consultas, e um tipo para tabelas de registros ou logs.

Tabelas de registros ou logs servem para auxíliar a própria atividade do desenvolvimento da aplicação.

3.1.1) LOCALMENTE

O armazenamento local de dados depende da plataforma.

Caso a plataforma seja Android ou iOS, o armazenamento local pode utilizar os componentes AsyncStorage e Cache, que amenizam problemas do usuário nas situações em que as consultas a bancos de dados remotos forem impossíveis. Isso significa que o Cache melhora a experiência do usuário. O referido componente copia para o sistema operacional local alguns dados que normalmente exigiriam consultas a serviços remotos.

3.1.2) REMOTAMENTE

Dada a urgência de uso, a implementação padrão irá provisoriamente utilizar planilhas online como bancos de dados.

4) ESTRUTURA DO PROJETO LLM TESTER

Diretórios e ficheiros com códigos-fontes. O ficheiro principal é o App.js.

4.1) O DIRETÓRIO /ASSETS/

Abriga conteúdo visual e audiovisual.

4.2) O DIRETÓRIO /COMPONENTS/

Abriga os ficheiros locais de biblioteca, chamados de componentes.

4.2.1) O FICHEIRO /COMPONENTS/STYLES.JS

Os estilos ficam concentrados no ficheiro /components/Styles.js.

4.3) O DIRETÓRIO /.PERSISTENCE/

Abriga dados, e.g., etc.

4.3.1) O FICHEIRO /.PERSISTENCE/LOG.CSV

Persiste registros.

5) OBSERVAÇÕES

Quanto à viabilidade da utilização de planilhas online como bancos de dados para situações urgentes.

REFERÊNCIAS

[1] BARBADO JUNIOR, Marcio et al. LLM Tester prototype. 2024. 650 Industries. Disponível em: https://snack.expo.dev/@marcio.barbado/llm-tester-prototype, acessado em 30 de Setembro de 2024.

[2] BARBADO JUNIOR, Marcio et al. LLM Tester. 2024. GitHub. Disponível em: https://github.com/odabrab/llm-tester, acessado em 30 de Setembro de 2024.

About

GenAI service tester.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published