
Testé et compatible avec Openai Chatgpt, Azure Openai Service, Perplexity Ai et Llama!
Chatgpt CLI fournit une interface de ligne de commande puissante pour l'interaction transparente avec les modèles ChatGpt via OpenAI et Azure, avec des capacités de streaming et des options de configuration étendues.

context-window .-l ou --list-models .--list-threads .config.yaml et des variables d'environnement. Pour des ajustements rapides, des indicateurs de divers --set-<value> sont fournis. Pour vérifier vos paramètres actuels, utilisez l'indicateur --config ou -c . Nous sommes ravis d'introduire la prise en charge des fichiers rapides avec l'indicateur --prompt dans la version 1.7.1 ! Cette fonctionnalité vous permet de fournir un contexte riche et détaillé pour vos conversations directement à partir d'un fichier.
--prompt L'indicateur --prompt vous permet de spécifier un fichier contenant le contexte initial ou les instructions pour votre conversation ChatGpt. Ceci est particulièrement utile lorsque vous avez des instructions ou un contexte détaillés que vous souhaitez réutiliser dans différentes conversations.
Pour utiliser le drapeau --prompt , passez le chemin de votre fichier invite comme ceci:
chatgpt --prompt path/to/your/prompt.md " Use a pipe or provide a query here " Le contenu d' prompt.md sera lu et utilisé comme contexte initial de la conversation, tandis que la requête que vous fournissez directement servira de question ou de tâche spécifique que vous souhaitez aborder.
Voici un exemple amusant où vous pouvez utiliser la sortie d'une commande git diff comme invite:
git diff | chatgpt --prompt ../prompts/write_pull-request.md Dans cet exemple, le contenu du fichier d'invite write_pull-request.md est utilisé pour guider la réponse du modèle en fonction des données DIFF de git diff .
Pour une variété d'invites prêtes à l'emploi, consultez ce référentiel invite impressionnant. Ceux-ci peuvent servir de grands points de départ ou d'inspiration pour vos propres invites personnalisées!
Vous pouvez installer Chatgpt-CLI en utilisant Homebrew:
brew tap kardolus/chatgpt-cli && brew install chatgpt-cliPour une installation rapide et facile sans compilation, vous pouvez télécharger directement le binaire prédéfini pour votre système d'exploitation et votre architecture:
curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-darwin-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-darwin-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-386 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-freebsd-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-freebsd-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/Téléchargez le binaire à partir de ce lien et ajoutez-le à votre chemin.
Choisissez la commande appropriée pour votre système, qui téléchargera le binaire, le rendra exécutable et le déplacera vers votre répertoire / usr / local / bin (ou% de chemin% sur Windows) pour un accès facile.
Définissez la variable d'environnement OPENAI_API_KEY sur votre clé secrète Chatgpt. Pour définir la variable d'environnement, vous pouvez ajouter la ligne suivante à votre profil de shell (par exemple, ~ / .bashrc, ~ / .zshrc, ou ~ / .bash_profile), en remplaçant votre_API_KEY par votre clé réelle:
export OPENAI_API_KEY= " your_api_key "Pour activer le suivi de l'historique à travers les appels CLI, créez un répertoire ~ / .chatgpt-Cli à l'aide de la commande:
mkdir -p ~ /.chatgpt-cliUne fois ce répertoire en place, la CLI gère automatiquement l'historique des messages pour chaque "thread" avec lequel vous conversez. L'historique fonctionne comme une fenêtre coulissante, en maintenant le contexte jusqu'à un maximum de jeton configurable. Cela garantit un équilibre entre le maintien du contexte de la conversation et l'obtention de performances optimales.
Par défaut, si un thread spécifique n'est pas fourni par l'utilisateur, la CLI utilise le thread par défaut et stocke l'historique à ~/.chatgpt-cli/history/default.json . Vous pouvez trouver plus de détails sur la façon de configurer le paramètre thread dans la section de configuration de ce document.
Essayez-le:
chatgpt what is the capital of the Netherlands Pour démarrer le mode interactif, utilisez l'indicateur -i ou --interactive :
chatgpt --interactive Si vous souhaitez que la CLI crée automatiquement un nouveau thread pour chaque session, assurez-vous que la variable de configuration auto_create_new_thread est définie sur true . Cela créera un identifiant de fil unique pour chaque session interactive.
Pour utiliser la fonction de tuyau, créez un fichier texte contenant du contexte. Par exemple, créez un fichier nommé context.txt avec le contenu suivant:
Kya is a playful dog who loves swimming and playing fetch.Ensuite, utilisez la fonction de tuyau pour fournir ce contexte pour chatter:
cat context.txt | chatgpt " What kind of toy would Kya enjoy? "Pour répertorier tous les modèles disponibles, utilisez le drapeau -l ou - list-models:
chatgpt --list-modelsPour plus d'options, voir:
chatgpt --helpLe CHATGPT CLI adopte une stratégie de configuration à quatre niveaux, avec différents niveaux de priorité attribués aux drapeaux, variables d'environnement, un fichier config.yaml et des valeurs par défaut, dans cet ordre respectif:
| Variable | Description | Défaut |
|---|---|---|
name | Le préfixe pour l'environnement variait les remplacements. | 'Openai' |
thread | Le nom du fil de discussion actuel. Chaque nom de fil unique a son propre contexte. | 'défaut' |
omit_history | Si cela est vrai, l'historique de chat ne sera pas utilisé pour fournir un contexte pour le modèle GPT. | FAUX |
command_prompt | L'invite de commande en mode interactif. Devrait être à un seul quotoué. | '[% datetime] [q% compteur]' |
output_prompt | L'invite de sortie en mode interactif. Devrait être à un seul quotoué. | '' |
auto_create_new_thread | S'il est défini sur true , un nouveau fil avec un identifiant unique (par exemple, int_a1b2 ) sera créé pour chaque session interactive. Si false , la CLI utilisera le thread spécifié par le paramètre thread . | false |
track_token_usage | S'il est défini sur true, affiche l'utilisation totale de jetons après chaque requête en mode --Query, vous aidant à surveiller l'utilisation de l'API. | false |
debug | S'il est défini sur true, imprime les données de demande et de réponse brutes lors des appels d'API, utile pour le débogage. | false |
skip_tls_verify | Si vous êtes défini sur true, sautez la vérification du certificat TLS, permettant des demandes HTTPS insécurisées. | false |
multiline | S'il est défini sur true, permet le mode d'entrée multiline en sessions interactives. | false |
| Variable | Description | Défaut |
|---|---|---|
api_key | Votre clé API. | (Aucun pour la sécurité) |
model | Le modèle GPT utilisé par l'application. | «GPT-3.5-turbo» |
max_tokens | Le nombre maximum de jetons qui peuvent être utilisés dans un seul appel API. | 4096 |
context_window | La limite de mémoire pour la quantité de conversation peut être rappelée à un moment donné. | 8192 |
role | Le rôle du système | «Vous êtes un assistant serviable. |
temperature | Quelle température d'échantillonnage à utiliser, entre 0 et 2. Des valeurs plus élevées rendent la sortie plus aléatoire; Les valeurs plus faibles le rendent plus ciblé et déterministe. | 1.0 |
frequency_penalty | Numéro entre -2,0 et 2.0. Les valeurs positives pénalisent de nouveaux jetons en fonction de leur fréquence existante dans le texte jusqu'à présent. | 0.0 |
top_p | Une alternative à l'échantillonnage avec la température, appelée échantillonnage du noyau, où le modèle considère les résultats des jetons avec une masse de probabilité TOP_P. | 1.0 |
presence_penalty | Numéro entre -2,0 et 2.0. Les valeurs positives pénalisent de nouveaux jetons en fonction de leur apparaître dans le texte jusqu'à présent. | 0.0 |
seed | Définit la graine pour l'échantillonnage déterministe (bêta). Les demandes répétées avec la même graine et les mêmes paramètres visent à retourner le même résultat. | 0 |
url | L'URL de base pour l'API OpenAI. | 'https://api.openai.com' |
completions_path | Le point de terminaison de l'API pour les compléments. | '/ v1 / chat / complétions' |
models_path | Le point de terminaison de l'API pour accéder aux informations du modèle. | '/ v1 / modèles' |
auth_header | L'en-tête utilisé pour l'autorisation dans les demandes d'API. | 'Autorisation' |
auth_token_prefix | Le préfixe à ajouter avant le jeton dans le auth_header . | 'Porteur' |
Par défaut, ChatGPT CLI stocke les fichiers de configuration et d'historique dans le répertoire ~/.chatgpt-cli . Cependant, vous pouvez facilement remplacer ces emplacements en définissant des variables d'environnement, vous permettant de stocker la configuration et l'historique dans les répertoires personnalisés.
| Variable d'environnement | Description | Emplacement par défaut |
|---|---|---|
OPENAI_CONFIG_HOME | Remplace le chemin du répertoire de configuration par défaut. | ~/.chatgpt-cli |
OPENAI_DATA_HOME | Remplace le chemin du répertoire de données par défaut. | ~/.chatgpt-cli/history |
Pour modifier les répertoires de configuration ou de données par défaut, définissez les variables d'environnement appropriées:
export OPENAI_CONFIG_HOME="/custom/config/path"
export OPENAI_DATA_HOME="/custom/data/path"
Si ces variables d'environnement ne sont pas définies, l'application par défaut est par défaut ~ / .chatgpt-Cli pour les fichiers de configuration et ~ /.chatgpt-cli/history pour l'historique.
%date : la date actuelle au format YYYY-MM-DD .%time : L'heure actuelle dans le format HH:MM:SS .%datetime : La date et l'heure actuelles dans le format YYYY-MM-DD HH:MM:SS .%counter : le nombre total de requêtes dans la session en cours.%usage : l'utilisation des jetons totaux utilisés (fonctionne uniquement en mode de requête). Les valeurs par défaut peuvent être remplacées en fournissant vos propres valeurs dans le fichier de configuration de l'utilisateur. La structure de ce fichier reflète celle de la configuration par défaut. Par exemple, pour remplacer le model et les paramètres max_tokens , votre fichier peut ressembler à ceci:
model : gpt-3.5-turbo-16k
max_tokens : 4096 Cela modifie le model à gpt-3.5-turbo-16k et ajuste max_tokens à 4096 . Toutes les autres options, telles que url , completions_path et models_path , peuvent également être modifiées. Si le fichier de configuration de l'utilisateur ne peut pas être accessible ou manquante, l'application recourira à la configuration par défaut.
Une autre façon d'ajuster les valeurs sans modifier manuellement le fichier de configuration consiste à utiliser des variables d'environnement. L'attribut name forme le préfixe de ces variables. À titre d'exemple, le model peut être modifié à l'aide de la variable d'environnement OPENAI_MODEL . De même, pour désactiver l'historique lors de l'exécution d'une commande, utilisez:
OPENAI_OMIT_HISTORY=true chatgpt what is the capital of Denmark ?Cette approche est particulièrement bénéfique pour les modifications temporaires ou pour tester des configurations variables.
De plus, vous pouvez utiliser l'indicateur --config ou -c pour afficher la configuration actuelle. Cette fonctionnalité pratique permet aux utilisateurs de vérifier rapidement leurs paramètres actuels sans avoir à inspecter manuellement les fichiers de configuration.
chatgpt --configL'exécution de cette commande affichera la configuration active, y compris tous les remplacements institués par des variables d'environnement ou le fichier de configuration de l'utilisateur.
Pour faciliter des ajustements pratiques, le CHATGPT CLI fournit des indicateurs pour modifier rapidement les paramètres du model , thread , context-window et max_tokens dans votre config.yaml configurée par l'utilisateur. Ces drapeaux sont --set-model , --set-thread , --set-context-window et --set-max-tokens .
Par exemple, pour mettre à jour le modèle, utilisez la commande suivante:
chatgpt --set-model gpt-3.5-turbo-16kCette fonctionnalité permet des modifications rapides des paramètres de configuration des clés, en optimisant votre expérience avec le CATGPT CLI.
Pour Azure, utilisez une configuration similaire à:
name : azure
api_key : <your_key>
model : <not relevant, read from the completions path>
max_tokens : 4096
context_window : 8192
role : You are a helpful assistant.
temperature : 1
top_p : 1
frequency_penalty : 0
presence_penalty : 0
thread : default
omit_history : false
url : https://<your_resource>.openai.azure.com
completions_path : /openai/deployments/<your_deployment>/chat/completions?api-version=<your_api>
models_path : /v1/models
auth_header : api-key
auth_token_prefix : " "
command_prompt : ' [%datetime] [Q%counter] '
auto_create_new_thread : false
track_token_usage : false
debug : falseVous pouvez définir la touche API dans le fichier config.yaml comme indiqué ci-dessus ou l'exporter en tant que variable d'environnement:
export AZURE_API_KEY= < your_key >Pour perplexité, utilisez une configuration similaire à:
name : perplexity
api_key : " "
model : llama-3.1-sonar-small-128k-online
max_tokens : 4096
context_window : 8192
role : Be precise and concise.
temperature : 1
top_p : 1
frequency_penalty : 0
presence_penalty : 0
thread : test
omit_history : false
url : https://api.perplexity.ai
completions_path : /chat/completions
models_path : /models
auth_header : Authorization
auth_token_prefix : ' Bearer '
command_prompt : ' [%datetime] [Q%counter] [%usage] '
auto_create_new_thread : true
track_token_usage : true
debug : falseVous pouvez définir la touche API dans le fichier config.yaml comme indiqué ci-dessus ou l'exporter en tant que variable d'environnement:
export PERPLEXITY_API_KEY= < your_key > Vous pouvez définir la touche API dans le fichier config.yaml comme indiqué ci-dessus ou l'exporter en tant que variable d'environnement:
export AZURE_API_KEY= < your_key >Améliorez votre expérience CLI avec notre nouvelle fonctionnalité de complétion automatique pour les drapeaux de commande!
La complétion automatique est actuellement soutenue pour les obus suivants: Bash, Zsh, Fish et PowerShell. Pour activer l'achèvement de l'indicateur dans votre session de shell actuelle, exécutez la commande appropriée en fonction de votre shell:
. <( chatgpt --set-completions bash ) . <( chatgpt --set-completions zsh )chatgpt --set-completions fish | sourcechatgpt -- set-completions powershell | Out-String | Invoke-Expression Pour plus de commodité, vous pouvez faire en sorte que la complétion automatique persiste sur toutes les nouvelles sessions de shell en ajoutant la commande d'approvisionnement appropriée au fichier de démarrage de votre shell. Voici les fichiers généralement utilisés pour chaque shell:
.bashrc ou .bash_profile.zshrcconfig.fish Par exemple, pour Bash, vous ajouteriez la ligne suivante à votre fichier .bashrc :
. <( chatgpt --set-completions bash )Cela garantit que l'indicateur de commande s'applique automatiquement à chaque fois que vous ouvrez une nouvelle fenêtre de terminal.
Vous pouvez rendre Markdown en temps réel à l'aide du script mdrender.sh , situé ici. Vous devrez d'abord installer Glow.
Exemple:
chatgpt write a hello world program in Java | ./scripts/mdrender.sh Pour commencer à développer, définissez la variable d'environnement OPENAI_API_KEY sur votre clé secrète Chatgpt.
Le MakeFile simplifie les tâches de développement en fournissant plusieurs cibles pour les tests, la construction et le déploiement.
make all-testsmake binariesmake shipitmake updatedepsPour plus de commandes disponibles, utilisez:
make help .scriptsinstall.ps1Après une version réussie, testez l'application avec la commande suivante:
./bin/chatgpt what type of dog is a Jack Russel ?Comme mentionné précédemment, le CHATGPT CLI prend en charge le suivi de l'historique des conversations à travers les appels CLI. Cette fonctionnalité crée une expérience transparente et conversationnelle avec le modèle GPT, car l'histoire est utilisée comme contexte dans les interactions ultérieures.
Pour activer cette fonctionnalité, vous devez créer un répertoire ~/.chatgpt-cli à l'aide de la commande:
mkdir -p ~ /.chatgpt-cliSi vous rencontrez des problèmes ou avez des suggestions d'amélioration, veuillez soumettre un problème sur GitHub. Nous apprécions vos commentaires et contributions pour aider à améliorer ce projet.
Si, pour une raison quelconque, vous souhaitez désinstaller l'application CHATGPT CLI de votre système, vous pouvez le faire en suivant ces étapes:
Si vous avez installé la CLI à l'aide de Homebrew, vous pouvez faire:
brew uninstall chatgpt-cliEt pour supprimer le robinet:
brew untap kardolus/chatgpt-cliSi vous avez installé le binaire directement, suivez ces étapes:
Retirez le binaire:
sudo rm /usr/local/bin/chatgpt Facultativement, si vous souhaitez supprimer le répertoire de suivi de l'historique, vous pouvez également supprimer le répertoire ~/.chatgpt-cli :
rm -rf ~ /.chatgpt-cli Accédez à l'emplacement du binaire chatgpt dans votre système, qui devrait être sur votre chemin.
Supprimez le binaire chatgpt .
Facultativement, si vous souhaitez supprimer le suivi de l'historique, accédez au répertoire ~/.chatgpt-cli (où ~ se réfère au répertoire personnel de votre utilisateur) et supprimez-le.
Veuillez noter que le répertoire de suivi de l'historique ~/.chatgpt-cli ne contient que l'historique de conversation et aucune données personnelles. Si vous avez des inquiétudes à ce sujet, n'hésitez pas à supprimer ce répertoire pendant la désinstallation.
Merci d'utiliser Chatgpt CLI!