Une façon intéressante d'invoquer des modèles sur Amazon Bedrock. Écrit en Rust et EN DIRECT sur Twitch.
NOUVEAU À PARTIR DE LA 0.8.2 - BÊTA : Vous pouvez désormais exporter votre discussion vers des fichiers HTML. (Cela les enregistrera uniquement sous
conversation.html
dans le répertoire actuel)
Prend actuellement en charge les modèles suivants :
Claude 3.5 v2 Sonnet
Claude 3.5 Haïku
Claude 3.5 Sonnet
Claude V2
Claude V3 Sonnet
Claude V3 Haïku
Lama2 70B
Modèles LLama3.1
Cohérer la commande
Jurrasique 2 Ultra
Titan Texte Express V1
Modèles Mistral AI (Mixtral, Mistral7b et Mistral Large 1 et 2)
Pour commencer à l'utiliser, vous devez effectuer quelques opérations :
Pour pouvoir interagir avec Amazon Bedrock, vous devez disposer d'un ensemble d'informations d'identification AWS sur la machine sur laquelle Bedrust s'exécutera. Le moyen le plus simple de configurer cette configuration consiste à configurer l'AWS CLI. Assurez-vous d'installer l'AWS CLI et exécutez la commande aws configure
pour définir vos informations d'identification.
Pour vérifier si vos informations d'identification AWS sont correctement définies, vous pouvez exécuter aws sts get-caller-identity
:
darko@devbox [~/workspace/projects/bedrust] : aws sts get-caller-identity {"UserId": "AIDAXXXXXXXXXXXXXXXXXX5", "Compte": "123456789999999", "Arn": "arn:aws:iam::123456789999999:user/alan-ford"}
Oh, oui, assurez-vous que l'utilisateur dont vous configurez les informations d'identification dispose des autorisations nécessaires pour InvokeModel
sur Amazon Bedrock.
Eh bien, c'est tout à fait logique, il s'agit d'une application Rust . La façon la plus simple de commencer est d’utiliser Rustup.
Maintenant, vous avez besoin de packages supplémentaires pour pouvoir compiler bedrust . À savoir, vous avez besoin du groupe de packages build-essential
(ou similaire). En fonction de votre système d'exploitation et de votre gestionnaire de packages, le nom peut différer.
Ubuntu/Debian :
sudo apt install build-essential
Arch Linux :
sudo pacman -S base-devel
Mac OS :
xcode-select --install
Amazon Linux/Red Hat/CentOS :
yum groupinstall "Development Tools"
Pour installer l'application localement, exécutez simplement :
cargo install bedrust
Cela installera le binaire compilé dans votre répertoire $CARGO_HOME/bin
. Si le $PATH
est correctement configuré, vous devriez pouvoir l'exécuter maintenant. Mais avant de le faire...
Initialisons la configuration. Étant donné que bedrust utilise un fichier de configuration ( bedrust_config.ron
), celui-ci (avec d'autres ressources) doit être stocké dans votre répertoire $HOME/.config/bedrust
. Désormais , vous pouvez le faire manuellement, mais nous avons une fonctionnalité pour le faire pour vous. Exécutez simplement :
bedrust --init
Il vous sera demandé de choisir un modèle par défaut. Et cela créera tous les fichiers nécessaires pour que vous puissiez utiliser bedrust . Il n'est pas nécessaire de modifier ces fichiers, sauf si vous le souhaitez.
Enfin, pour exécuter l'application, utilisez simplement la commande suivante :
bedrust -m <MODELNAME> # en remplaçant le nom du modèle par l'un de ceux pris en charge
Ou si vous souhaitez utiliser le modèle par défaut (celui défini lors de --init
/ dans votre fichier de configuration), exécutez simplement bedrust
sans aucun paramètre. Si vous ne sélectionnez pas de modèle en passant le paramètre -m
ET que vous n'avez pas de modèle par défaut défini dans votre fichier de configuration, vous serez invité à en choisir un pendant l'exécution.
Un outil de ligne de commande pour appeler et utiliser des modèles en grand langage sur AWS, à l'aide d'Amazon Bedrock Utilisation : rouille [OPTIONS] Possibilités : --init -m, --model-id <MODEL_ID> [valeurs possibles : lama270b, lama31405b-instruct, lama3170b-instruct, lama318b-instruct, cohere-command, claude-v2, claude-v21, claude-v3-sonnet, claude-v3 -haïku, claude-v35-sonnet, claude-v352-sonnet, claude-v35-haiku, jurrasic2-ultra, titan-text-express-v1, mixtral8x7b-instruct, mistral7b-instruct, mistral-large, mistral-large2] -c, --caption <CAPTION> -s, --source <SOURCE> -x -h, --help Imprimer l'aide -V, --version Version imprimable
Une fois, vous êtes invité à saisir votre question et à appuyer sur ENTER
. Pour quitter le programme, tapez simplement /q
dans votre invite de question.
NOUVELLE fonctionnalité : Grâce à la multimodalité de Claude V3, vous pouvez désormais passer des images vers ce Grand Modèle de Langage. Cela signifie que nous pouvons faire des choses amusantes comme des images de légende dans un souci d'accessibilité. Cette fonctionnalité est disponible dans Bedrust à partir de la version 0.5.0
.
️ Actuellement, les deux seuls modèles qui prennent en charge cela sont : Claude V3 Sonnet et Claude V3 Haiku.
Pour utiliser le sous-titrage, il vous suffit de lui passer le paramètre -c
, ainsi que le répertoire où se trouvent vos images :
bedrust -m claude-v3-sonnet -c /tmp/test-images/
Cela récupérera les images prises en charge et produira des légendes pour celles-ci. En fin de compte, produire un fichier captions.json
dans le répertoire de travail actuel avec les légendes connectées aux chemins d'image.
Voici un exemple du résultat :
[ {"path": "/tmp/test-images/4slika.jpeg","caption": "Un ventilateur de processeur d'ordinateur refroidissant un circuit imprimé avec Ethernet et d'autres ports." }, {"path": "/tmp/test-images/kompjuter.jpeg","caption": "Un circuit imprimé ouvert avec divers composants et fils électroniques, placé dans un bureau ou un atelier avec des étagères et des équipements visibles en arrière-plan. " }, {"path": "/tmp/test-images/c64.jpeg","caption": "Écran d'ordinateur Vintage Commodore affichant le logo Twitch à l'écran." } ]
De plus, vous pouvez personnaliser l'invite de sous-titrage et les formats de fichiers image pris en charge en modifiant le fichier bedrust_config.ron
à la racine de ce projet.
Vous pouvez maintenant pointer Bedrust vers un répertoire contenant du code source. Cela vous permettra de discuter de votre référentiel de code dans son contexte et pourra vous fournir des suggestions de code, des améliorations et des développements ultérieurs.
Remarque : Puisqu'il s'agit d'une fonctionnalité bêta, elle présente des limites. Par exemple, il n’est pas capable de gérer des bases de code très volumineuses. Et comme cela envoie l’intégralité de votre base de code dans le contexte, cela peut vous coûter beaucoup plus cher.
bedrust --source ~/workspace/repos/votre_code_repo
Depuis la version 0.8.2, vous pouvez désormais enregistrer vos conversations, les rappeler ultérieurement et même les exporter sous forme de jolis fichiers HTML. Cette fonctionnalité est encore en version bêta lourde , alors attendez-vous à ce que les choses se cassent et que les fonctionnalités changent.
La façon dont cela fonctionne est que lorsque vous entrez /s
comme commande de chat, Bedrust enregistre votre conversation dans ~/.config/bedrust/chats
en tant que fichier .json
. Ce remplissage contiendra un résumé généré et un titre pour la conversation. Pour rappeler la conversation, vous pouvez simplement taper /r
comme commande de chat, et vous pourrez sélectionner l'une des conversations enregistrées.
Pour exporter votre conversation au format HTML, exécutez simplement /h
. Cela créera un fichier appelé conversation.html
dans le répertoire courant. Je n'ai pas encore implémenté de fonctionnalité pour choisir où enregistrer ce fichier, donc pour le moment c'est comme ça. (Il est en version bêta après tout ?).
Il existe un fichier de configuration important fourni avec bedrust :
bedrust_config.ron
- stocke les paramètres de configuration liés à l'application elle-même.
Ils doivent être dans votre répertoire $HOME/.config/bedrust/
. L'application vous avertira s'ils n'existent pas et ne parvient pas à s'exécuter. Vous pouvez les créer automatiquement en exécutant bedrust --init
Possibilité d'obtenir l'entrée de l'utilisateur
Pouvoir sélectionner un modèle
Discutez avec le modèle
Diffusez les réponses mot par mot
Meilleure gestion des erreurs
Test de code
Possibilité de générer des images
Rendez-le plus joli
Mieux gérer les pâtes longues
Gestion des informations d'identification Bedder