Uma maneira bacana de invocar modelos no Amazon Bedrock. Escrito em Rust e AO VIVO no Twitch.
NOVO A PARTIR DE 0.8.2 - BETA: Agora você pode exportar seu bate-papo para arquivos HTML. (Eles serão salvos apenas como
conversation.html
no diretório atual)
Atualmente suportando os seguintes modelos:
Soneto de Claude 3.5 v2
Claude 3.5 Haiku
Soneto de Cláudio 3.5
Cláudio V2
Soneto de Claude V3
Claude V3 Haiku
Lhama2 70B
Modelos LLama3.1
Comando Coerente
Jurássico 2 Ultra
Texto Titã Expresso V1
Modelos Mistral AI (Mixtral, Mistral7b e Mistral Large 1 e 2)
Para começar a usar isso, você precisa fazer algumas coisas:
Para poder interagir com o Amazon Bedrock, você precisa ter um conjunto de credenciais AWS na máquina em que o Bedrust será executado. A maneira mais fácil de configurar isso é configurando a AWS CLI. Certifique-se de instalar a AWS CLI e executar o comando aws configure
para definir suas credenciais.
Para verificar se suas credenciais da AWS estão definidas corretamente, você pode executar aws sts get-caller-identity
:
darko@devbox [~/workspace/projects/bedrust]: aws sts get-caller-identity {"UserId": "AIDAXXXXXXXXXXXXXXXXXX5","Conta": "123456789999999","Arn": "arn:aws:iam::123456789999999:user/alan-ford"}
Ah, sim, certifique-se de que o usuário cujas credenciais você configurou tenha permissões para InvokeModel
no Amazon Bedrock.
Bem, isso faz sentido, este é um aplicativo Rust . A maneira mais fácil de começar é usando o Rustup.
Agora, você precisa de alguns pacotes adicionais para poder compilar bedrust . Ou seja, você precisa do grupo de pacotes build-essential
(ou similar). Dependendo do seu sistema operacional e do gerenciador de pacotes, o nome pode ser diferente.
Ubuntu/Debian:
sudo apt install build-essential
Arco Linux:
sudo pacman -S base-devel
MacOS:
xcode-select --install
Amazon Linux/Red Hat/CentOS:
yum groupinstall "Development Tools"
Para instalar o aplicativo localmente, basta executar:
cargo install bedrust
Isso instalará o binário compilado em seu diretório $CARGO_HOME/bin
. Se você tiver o $PATH
configurado corretamente, poderá executá-lo agora. Mas antes de você fazer isso...
Vamos inicializar a configuração. Como o bedrust usa um arquivo de configuração ( bedrust_config.ron
), ele (junto com alguns outros recursos) precisa ser armazenado dentro do diretório $HOME/.config/bedrust
. Agora você pode fazer isso manualmente, mas temos um recurso para fazer isso por você. Basta executar:
bedrust --init
Você será solicitado a escolher um modelo padrão. E isso criará todos os arquivos necessários para você poder usar o bedrust . Não há necessidade de modificar esses arquivos, a menos que você queira.
Por fim, para executar a aplicação basta utilizar o seguinte comando:
bedrust -m <MODELNAME> # substituindo o nome do modelo por um dos suportados
Ou se você deseja usar o modelo padrão (aquele definido durante --init
/ no seu arquivo de configuração), basta executar bedrust
sem nenhum parâmetro. Se você não selecionar um modelo passando o parâmetro -m
E não tiver um modelo padrão definido em seu arquivo de configuração, você será solicitado a escolher um durante a execução.
Uma ferramenta de linha de comando para invocar e trabalhar com modelos de linguagem grande na AWS, usando Amazon Bedrock Uso: bedrust [OPÇÕES] Opções: --init -m, --model-id <MODEL_ID> [valores possíveis: llama270b, llama31405b-instruct, llama3170b-instruct, llama318b-instruct, cohere-command, claude-v2, claude-v21, claude-v3-sonnet, claude-v3 -haiku, claude-v35-soneto, claude-v352-sonnet, claude-v35-haiku, jurrasic2-ultra, titan-text-express-v1, mixtral8x7b-instruct, mistral7b-instruct, mistral-large, mistral-large2] -c, --caption <LEGENDA> -s, --fonte <FONTE> -x -h, --help Imprimir ajuda -V, --version Versão para impressão
Uma vez solicitado, insira sua pergunta e pressione ENTER
. Para sair do programa, basta digitar /q
no prompt de pergunta.
NOVO recurso: Graças à multimodalidade do Claude V3, agora você pode passar imagens para este modelo de linguagem grande. Isso significa que podemos fazer algumas coisas divertidas, como legendar imagens, por uma questão de acessibilidade. Este recurso está disponível no Bedrust a partir da versão 0.5.0
.
️ Atualmente, os únicos dois modelos que suportam isso são: Claude V3 Sonnet e Claude V3 Haiku
Para usar a legenda basta passar o parâmetro -c
, junto com o diretório onde estão suas imagens:
bedrust -m claude-v3-sonnet -c /tmp/test-images/
Isso recuperará as imagens suportadas e produzirá legendas para elas. Por fim, produzindo um arquivo captions.json
no diretório de trabalho atual com as legendas conectadas aos caminhos da imagem.
Aqui está um exemplo da saída:
[ {"path": "/tmp/test-images/4slika.jpeg","caption": "Um ventilador de CPU de computador resfriando uma placa de circuito com Ethernet e outras portas." }, {"path": "/tmp/test-images/kompjuter.jpeg","caption": "Uma placa de circuito aberto com vários componentes eletrônicos e fios, colocada em um escritório ou oficina com prateleiras e equipamentos visíveis ao fundo. " }, {"path": "/tmp/test-images/c64.jpeg","caption": "Monitor de computador Vintage Commodore exibindo o logotipo do Twitch na tela." } ]
Além disso, você pode personalizar o prompt de legenda e os formatos de arquivo de imagem suportados editando o arquivo bedrust_config.ron
na raiz deste projeto.
Agora você pode apontar o Bedrust para um diretório contendo algum código-fonte. Isso permitirá que você discuta seu repositório de código no contexto e poderá fornecer sugestões de código, melhorias e desenvolvimento adicional.
Observação: como este é um recurso beta, ele tem limitações. Por exemplo, não é capaz de lidar com bases de código realmente grandes. E como envia toda a sua base de código para o contexto, pode custar significativamente mais.
bedrust --source ~/workspace/repos/seu_código_repo
A partir da versão 0.8.2 você agora pode salvar suas conversas, recuperá-las mais tarde e até mesmo exportá-las como belos arquivos HTML. Este recurso ainda está em beta pesado , então espere que as coisas quebrem e a funcionalidade mude.
A forma como isso funciona é: quando você insere /s
como um comando de chat, Bedrust salva sua conversa dentro de ~/.config/bedrust/chats
como um arquivo .json
. Este preenchimento conterá um resumo gerado e um título para a conversa. Para recuperar a conversa, basta digitar /r
como comando de bate-papo e você poderá selecionar qualquer uma das salvas.
Para exportar sua conversa para HTML, basta executar /h
. Isso criará um arquivo chamado conversation.html
no diretório atual. Ainda não implementei um recurso para escolher onde salvar esse arquivo, então por enquanto é assim. (Afinal, está em beta?).
Há um arquivo de configuração importante fornecido com bedrust :
bedrust_config.ron
- armazena parâmetros de configuração relacionados ao próprio aplicativo.
Eles precisam estar em seu diretório $HOME/.config/bedrust/
. O aplicativo irá avisá-lo se eles não existirem e não conseguirem ser executados. Você pode criá-los automaticamente executando bedrust --init
Capacidade de obter informações do usuário
Ser capaz de selecionar um modelo
Converse com a modelo
Transmita as respostas palavra por palavra
Melhor tratamento de erros
Teste de código
Capacidade de gerar imagens
Deixe mais bonito
Lidar melhor com pastas longas
Tratamento de credenciais Bedder