Utilitaires en ligne de commande pour interroger les modèles de grandes langues
Ce référentiel est construit autour de la facilité d'exécution un ensemble de requêtes via CLI sur un modèle grand langage (LM) et de récupérer un ensemble de complétions bien formaté dans un seul document . Il a également une API Python de base.
Flux de travail typique:
CSV
/ .xlsx
/ etc. fichier avec des requêtes de modèle comme ligneslm-api
avec -i /path/to/my/queries.csv
et utilisez -kc
pour spécifier le nom de la colonne avec les requêtesLes requêtes devraient être dans un format compatible Pandas, et les résultats sont écrits dans un fichier texte avec une mise en forme de marque pour une visualisation / partage facile.
Un exemple de fichier de sortie est fourni dans data/lm-api-output
.
Installez directement via pip
+ git
:
# create a virtual environment (optional): pyenv virtualenv 3.8.5 lm-api
pip install git+https://github.com/pszemraj/lm-api.git
Alternativement, après le clonage, cd
dans le répertoire lm-api
et exécutez:
git clone https://github.com/pszemraj/lm-api.git
cd lm-api
# create a virtual environment (optional): pyenv virtualenv 3.8.5 lm-api
pip install -e .
Un test rapide peut être exécuté avec le script src/lm_api/test_goose_api.py
.
Vous aurez besoin d'une clé API pour chaque fournisseur que vous souhaitez interroger. Actuellement, les fournisseurs suivants sont pris en charge:
Les clés API peuvent être définies dans les variables d'environnement GOOSE
et OPENAI
:
export OPENAI=api_key11111114234234etc
# or
export GOOSE=api_key11111114234234etc
Alternativement, passer comme argument lors de l'appel lm-api
avec le commutateur -k
.
Les scripts de ligne de commande sont situés dans src/lm_api/
et sont installés sous forme de commandes CLI qui peuvent être exécutées de n'importe où. Actuellement, les commandes sont limitées à lm-api
( plus à venir ).
lm-api
avec l'indicateur -k
pour exécuter toutes les requêtes
lm-api -i data/test_queries.xlsx -o ./my-test-folder
Cela exécutera les requêtes dans data/test_queries.xlsx
et écrira les résultats sur un fichier .md
dans my-test-folder/
dans votre répertoire de travail actuel.
Il existe de nombreuses options pour le script, qui peuvent être visualisées avec le drapeau -h
(par exemple, lm-api -h
).
usage: lm-api [-h] [-i INPUT_FILE] [-o OUTPUT_DIR] [-provider PROVIDER_ID] [-k KEY] [-p PREFIX] [-s SUFFIX] [-simple]
[-kc KEY_COLUMN] [-m MODEL_ID] [-n N_TOKENS] [-t TEMPERATURE] [-f2 FREQUENCY_PENALTY]
[-p2 PRESENCE_PENALTY] [-v]
Le fichier d'entrée doit être dans un format compatible Pandas (par exemple, .csv
, .xlsx
, etc.). Le nom de colonne par défaut pour les requêtes est query
, qui peut être modifiée avec l'indicateur -kc
.
Un exemple de fichier d'entrée est fourni dans data/test_queries.xlsx
.
Remarque: Il s'agit d'un travail en cours, et ce qui suit est une liste exécutive de choses qui doivent être faites. Cela peut et sera probablement mis à jour.
--prefix
et --suffix
sur un commutateur "moteur rapide" qui peut augmenter / mettre à jour l'invite avec une variété d'options (par exemple, --prompt-engine=prefix
ou --prompt-engine=prefix+suffix
) lm_api
devrait fonctionner et avoir une fonctionnalité complète WRT CLI) Nous compilons / discutons d'une liste de fonctionnalités potentielles dans la section Discussions, alors n'hésitez pas à ajouter vos réflexions là-bas!