Skip to content

odabrab/llm-tester

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FILE IDENTIFICATION: README

This is the readme file for the LLM Tester PoC source code, which is a GenAI testing mobile application based on React Native. More precisely, the LLM Tester PoC stands as a compliance framework prototype intended to test LLM models against real world rulesets, e.g., national legislations and/or corporate governance policies. All you have to do is provide it with an LLM model and a ruleset. Both the LLM model and the ruleset can be locally or remotely available.

TABLE OF CONTENTS

1) INTRODUCTION

  1.1) PROTOTYPING AN LLM SERVICE TESTER

    1.1.1) REQUISITOS

    1.1.2) JAVASCRIPT

    1.1.3) REACT NATIVE

      1.1.3.1) DEPENDÊNCIAS

2) USAGE

3) ARCHITECTURE OVERVIEW

  3.1) PRINCIPAIS COMPONENTES

  3.2) CACHING E PERSISTÊNCIA

    3.2.1) LOCALMENTE

    3.2.2) REMOTAMENTE

  3.3) DIRECTORIES AND FILES

    3.3.1) O DIRETÓRIO /ASSETS/

    3.3.2) O DIRETÓRIO /COMPONENTS/

      3.3.2.1) O FICHEIRO /COMPONENTS/STYLES.JS

    3.3.3) O DIRETÓRIO /.PERSISTENCE/

      3.3.3.1) O FICHEIRO /.PERSISTENCE/LOG.CSV

    3.3.4) O FICHEIRO APP.JS

    3.3.5) O FICHEIRO PACKAGE.JSON

4) LLM

  4.1) GEMINI

  4.2) GPT

  4.3) LLAMA

5) HISTORY AND RELEASE NOTES

REFERÊNCIAS

1) INTRODUCTION

Parts of this project result from efforts of students and their teacher on a Brazilian university named Estácio.

In order to have a quick peek on it working, check [1]. That is where the classroom prototype is kept, a public web IDE implementing the React Native framework. It's known as the Expo Snack web IDE.

Version control is done with Git, which enforces a distributed strategy for source code repositories. The first public repository to receive this project's commits is avaialable on the GitHub service, precisely on [2].

A glimpse on the first quarter of the 21st century tech reveal some trends and concerns, e.g., artificial intelligence services and its consequences for mankind. The extent to which LLM services comply with laws has been the subject of debate in many jurisdictions around the globe. Following the referred concerns, the prototype herein approaches them by means of a distributed mobile application. These proof-of-concept routines are the result of a graduation discipline, namely ARA0089, taught at the Estácio university in S&atildeo Paulo, Brasil.

1.1) PROTOTYPING AN LLM SERVICE TESTER

As turmas estão a trabalhar em protótipos aplicações móveis capazes de testar serviços LLM. Todas as aplicações são construídas com a linguagem de programação JavaScript e o arcabouço React Native, o que permite disponibilizar as aplicações para Android e iOS.

A presente seção trata das tecnologias e técnicas inicialmente selecionadas para a prototipagem.

1.1.1) REQUISITOS

A presente seção mostra os requisitos da aplicação.

1.1.2) JAVASCRIPT

1.1.3) 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.

1.1.3.1) DEPENDÊNCIAS

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

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.

2) USAGE

3) ARCHITECTURE OVERVIEW

3.1) 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.2) 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.2.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.2.2) REMOTAMENTE

Dada a urgência de uso, a implementação padrão pode provisoriamente utilizar planilhas online como bancos de dados. Os estudantes entretanto têm demonstrado alguma preferência pelo serviço Firebase [6].

3.3) DIRECTORIES AND FILES

Diretórios e ficheiros com códigos-fontes. O ficheiro principal é o App.js. Caso o projeto esteja no Snack, o ficheiro package.json possui particular importância.

3.3.1) O DIRETÓRIO /ASSETS/

Abriga conteúdo visual e audiovisual.

3.3.2) O DIRETÓRIO /COMPONENTS/

Abriga os ficheiros locais de biblioteca, chamados de componentes.

3.3.2.1) O FICHEIRO /COMPONENTS/STYLES.JS

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

3.3.3) O DIRETÓRIO /.PERSISTENCE/

Abriga dados, e.g., etc.

3.3.3.1) O FICHEIRO /.PERSISTENCE/LOG.CSV

Persiste registros.

3.3.4) O FICHEIRO APP.JS

3.3.5) O FICHEIRO PACKAGE.JSON

Ficheiro de fundamental importância no IDE Snack. Realiza o gerenciamento de bibliotecas e suas versões.

4) LLM

4.1) GEMINI

Uma vez autenticada a conta Google, deve-se verificar [3] e [4]. Cotas de utilização podem ser configuradas em [5].

4.2) GPT

4.3) LLAMA

5) HISTORY AND RELEASE NOTES

This chapter shelters additional remarks about the code's history and release notes.

By the time of the project's earlier scratches, we have tested how practical online spreadsheets could be if we used them as databases on urgent situations.

REFERENCE(S)

[1] BARBADO JUNIOR, Marcio et al. LLM Tester prototype. 2024. 650 Industries. Disponível em: https://snack.expo.dev/@marcio.barbado/llm-tester-poc, 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.

[3] Google. Google AI Studio. 2024. Disponível em: https://makersuite.google.com/, acessado em 20 de Outubro de 2024.

[4] Google. Get API key. 2024. Disponível em: https://aistudio.google.com/apikey, acessado em 23 de Outubro de 2024.

[5] Google. Quotas & system limits. 2024. Disponível em: https://console.cloud.google.com/iam-admin/quotas, acessado em 24 de Outubro de 2024.

[6] Google. Firebase. 2024. Disponível em: https://firebase.google.com/, acessado em 24 de Outubro de 2024.

About

GenAI LLM model compliance tester regarding corporate policies and/or national legislations.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors