Gish est une interface de ligne de commande (CLI) qui interagit avec Openai GPT en suivant les conventions UNIX et offrant un riche ensemble de fonctionnalités via des drapeaux. Il est important de noter qu'un compte Openai et une clé API payés sont tenus d'utiliser GISH.
Gish propose les fonctionnalités suivantes:
#import
#diff
ou de l'indicateur -d
npx gish-gpt
ou
npm install gish-gpt
node_modules/.bin/gish
Alternativey, remplacez l'étape 3 par NPM Dev pour apporter des modifications au code
dist/index.js
dist/index.js
quelque part dans votre chemin. Alternativement, créez un alias. # gish tell me a joke
Why was the math book sad? Because it had too many problems.
# gish "What is the population of the city of London?".
The population of the City of London is approximately9 million, as of 2021.
Sans citations, le shell interprétera le point d'interrogation dans la deuxième demande et provoquera une erreur.
Entrée canalisée:
#echo "What is the population of the city of London?" | gish
The estimated population of the city of London is around 9 million people.
# gish.
> tell me a joke
Why did the tomato turn red? Because it saw the salad dressing!
Ceci est similaire à la saisie de "Python" ou "Node" à la ligne de commande.
gist < foo
Où est le contenu de Foo
tell me a joke
gish --help
affiche toutes les différentes optionsgish tell me a joke
enverra la demandegish "what is the population of San Francisco?".
Vous avez besoin des citations pour éviter les erreurs de shell.gish -e
vous place dans votre éditeur et envoie le contenu lorsque vous avez terminé. Pour abandonner, ne créez pas le fichier ou videz-legish -e foo.txt
fait de même mais fonctionne sur un fichier existant.gish -h [num]
vous montre l'histoire. NUM est facultatif et par défaut est 20.gish -i foo
envoie le contenu de Foo. Équivalent à cat foo | gish
.gish -m gpt-4
spécifie le modèlegish -p foo
utilise Foo comme invite dans une conversation. D'autres drapeaux ou arguments sont utilisés pour passer la demande réelle, mais c'est l'arrière-plan. Voir https://platform.openai.com/docs/guides/chat. Gish définit cette invite comme la première du chat avec le rôle de "système".gish -s foo.ts
enregistre la sortie à foo.ts. Lors de la génération de code, l'utilisateur doit utiliser une invite qui génère la sortie appropriée. Voir invites / codage pour un exemple.gish -d foo.ts
diff le résultat avec ce fichier. Nécessite -s.gish -c [num]
active le mode de chat et fait référence à la demande NUM, par défaut au précédent. Voir la section de chat pour plus de détails.gish -g
génère plusieurs fichiers pour créer une application complète. Voir la section Générer pour plus de détails.gish -x
Arguments supplémentaires à passer à GPT. Exemple: -x '"température" = 0,5: "max_tokens" = 500'. Comme dans votre shell -h ou - l'histoire montre l'historique de vos demandes. Le param de NUM facultatif spécifie le nombre d'éléments. Les valeurs par défaut sont 20.
Le mode Chat offre une expérience similaire à https://platform.openai.com/chat où vous pouvez vous référer aux demandes précédentes.
# gish what is the capital of japan
The capital of Japan is Tokyo.
# gish -c population
The estimated population of Tokyo, Japan as of2021 is approximately 13.9 million people.
En utilisant la fonction d'historique, vous pouvez voir la position des demandes dans l'histoire et les passer dans le paramètre -c.
# gish tell me a joke
Why did the tomato turn red ? Because it saw the salad dressing !
# gish tell me a one line story
She found love in the most unexpected place.
# gish -h 2
892: tell me a joke
893: tell me a one line story
# gish -c 892 another
Why did the bicycle fall over ? Because it was two-tired !
Consultez les [Docs API de chat] (https://platform.openai.com/docs/api-reference/chat) pour la liste des Flagas que vous pouvez utiliser. Cette fonctionnalité est destinée aux utilisateurs avancés, mais l'API sera généralement erronée si vous passez des indicateurs qui ne sont pas pris en charge.
AVERTISSEMENT La chaîne que vous passez doit être valide JSON. Assurez-vous spécifiquement que toute chaîne est enfermée en doubles citations des deux côtés du ':'. C'est JSON, pas JavaScript! Exemple:
# gish -x '"temperature":0.5,"max_tokens":5' tell me a joke
Why did the tomato turn
L'a fait couper la réponse après 5 jetons.
chat
et la demande de saisie du mode Chat. Tapez la sortie pour laisser le mode de chat. Type Historique avec un numéro facultatif pour afficher l'historique. La valeur par défaut est 20.
Le mode Chat offre une expérience similaire à https://platform.openai.com/chat où vous pouvez vous référer aux demandes précédentes.
> 10 miles to km
16.0934 km.
> chat how about 40
40 miles is equal to64.3736 kilometers.
Chat > how about 50
50 miles is equal to80.4672 kilometers.
Chat > exit
> how about 30
30 is a positive integer that comes after29 and before 31.
chat 876 another
Utilisez l'instruction #import
dans votre fichier d'entrée pour inclure des invites ou des commentaires / texte auxquels vous souhaitez réagir. Exemple
#import ~/work/gish/tasks/coding.txt
The above program prints hello world. Change it to print goodbye world.
#import hello.ts
Voici le contenu des tasks/coding.txt
:
I want you to act as a coding collaborator. I will ask you software questions and you will answer with code.
Your response for this request needs to be code and nothing else.
Only provide comments if they provide important extra information and they should be brief and to the point. The contents should be in the code as comments at the top of the file.
---
Il s'agit du flux de travail typique lors de l'utilisation de Gish pour le codage:
Utilisez l'option #diff
lorsque vous souhaitez que GPT apporte des modifications dans un fichier, puis diffusez-le:
#import ~/work/gish/tasks/coding.txt
In the following file, document the code better
#diff settings.ts
Ce processus est similaire à #import
, mais permet également à l'application de savoir que l'utilisateur modifie le fichier. Une fois le code généré, la commande diffinée dans settings.ts
est lancée sur les fichiers originaux et générés. Pour des changements complexes, Copilot pourrait mieux fonctionner.
Avec l'invite appropriée telle que [Application Web] (tasks / webApp.txt), vous pouvez obtenir le LLM, GPT-4 est recommandé pour cela, mais expérimentez et voir ce qui fonctionne pour vous. Création simplement d'un fichier d'entrée
#import tasks/webapp.txt
Generate Conway's game of life.
Include on the page, the instructions on how to play the game.
puis courir
gish -m gpt-4 -g life -i /input
A abouti au jeu de la vie dans le répertoire "Life".
Avertissement
Sachez que l'utilisation de cette approche, il est facile d'utiliser de nombreux jetons, en particulier avec GPT-4, afin que les coûts puissent s'additionner.
Voir les [exemples] (exemples) Dir pour les moyens d'utiliser Gish pour:
Voici un exemple de script shell qui utilise GISH pour générer un message Git Commit et déposer les utilisateurs dans l'éditeur avec le message présenté:
#! /bin/bash
out= " The following is the output of git diff "
out+= ` git diff $* `
out+= " ----------------------------- "
out+= " The following is the output of git status "
out+= ` git status --untracked-files=no $* `
out+= " ----------------------------- "
out+= " based on the above provide a commit message "
git commit -e -m " ` echo $out | gish --no-stats ` " $*
Le fichier journal, ~ / .gish / history.json se comporte comme le journal de vos conversations avec le chatgpt. Puisqu'il s'agit d'un fichier standard, vous pouvez utiliser un éditeur ou un téléavertisseur pour examiner l'historique de vos interactions avec le chatppt, il comprend:
Semblable aux commandes Linux comme Cat et Echo, ce qui suit est de savoir comment Gish a priorisé les arguments et les drapeaux:
Par défaut, Gish vous montre des statistiques pour votre demande:
gish tell me a joke --no-stream
Why don't scientists trust atoms?
Because they make up everything.
Tokens: 26 Cost: $0.00005 Elapsed: 1.198 Seconds
Le coût est basé sur l'hypothèse que vous utilisez GPT3,5 à 0,02 $ par 1000 jetons. * Vérifiez les chiffres avant de compter sur eux. Lors de l'utilisation du streaming, l'API ne nous donne pas le nombre de jetons, nous devons donc les calculer par nous-mêmes, ce qui pourrait être désactivé.