GISH es una interfaz de línea de comandos (CLI) que interactúa con OpenAI GPT siguiendo las convenciones de Unix y ofrece un rico conjunto de características a través de banderas. Es importante tener en cuenta que se requiere una cuenta de OpenAI pagada y una clave API para usar GISH.
GISH ofrece las siguientes características:
#import
#diff
o el indicador -d
npx gish-gpt
o
npm install gish-gpt
node_modules/.bin/gish
Alternativey, reemplace el paso 3 con NPM Dev para realizar cambios en el código y
dist/index.js
dist/index.js
en algún lugar de su camino. Alternativamente, cree 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.
Sin cotizaciones, el shell interpretará el signo de interrogación en la segunda solicitud y causará un error.
Entrada de tuberías:
#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!
Esto es similar a la escritura de "Python" o "nodo" en la línea de comando.
gist < foo
Donde está el contenido de Foo
tell me a joke
gish --help
muestra todas las diferentes opcionesgish tell me a joke
solo enviará la solicitudgish "what is the population of San Francisco?".
Necesita las citas para evitar errores de shell.gish -e
te pone en tu editor y envía el contenido cuando hayas terminado. Para abortar, no cree el archivo ni lo vacíegish -e foo.txt
hace lo mismo pero funciona en un archivo existente.gish -h [num]
te muestra la historia. NUM es opcional y el valor predeterminado es 20.gish -i foo
envía el contenido de Foo. Equivalente a cat foo | gish
.gish -m gpt-4
especifica el modelogish -p foo
usa Foo como un aviso en un chat. Se utilizan otras banderas o argumentos para aprobar la solicitud real, pero este es el fondo. Ver https://platform.openai.com/docs/guides/chat. Gish establece este aviso como el primero en el chat con el papel de "sistema".gish -s foo.ts
guarda la salida a foo.ts. Al generar código, el usuario debe usar un aviso que genere la salida apropiada. Consulte las indicaciones/codificación para un ejemplo.gish -d foo.ts
difiere el resultado con este archivo. Requiere -s.gish -c [num]
activa el modo de chat y se refiere a la solicitud NUM, predeterminada al anterior. Vea la sección de chat para obtener más detalles.gish -g
genera múltiples archivos para crear una aplicación completa. Consulte la sección Generar para obtener más detalles.gish -x
argumentos adicionales para pasar a GPT. Ejemplo: -x '"temperatura" = 0.5: "max_tokens" = 500'. Como en su shell -h o --history muestra el historial de sus solicitudes. El parámetro NUM opcional especifica el número de elementos. Los valores predeterminados son 20.
El modo de chat proporciona una experiencia similar a https://platform.openai.com/chat, donde puede consultar solicitudes anteriores.
# 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.
Usando la función de historial, puede ver la posición de las solicitudes en el historial y pasarlas en el parámetro -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 !
Vea los [Docs de API de chat] (https://platform.openai.com/docs/api-reference/chat) para la lista de flagas que puede usar. Esta característica es para usuarios avanzados, pero la API normalmente equivocará si lo pasa los indicadores que no son compatibles.
Advertencia La cadena que pase debe ser válida JSON. Específicamente, asegúrese de que cualquier cadena esté encerrada en cotizaciones dobles en ambos lados de ':'. ¡Este es JSON, no JavaScript! Ejemplo:
# gish -x '"temperature":0.5,"max_tokens":5' tell me a joke
Why did the tomato turn
Lo hizo cortar la respuesta después de 5 fichas.
chat
y la solicitud de ingresar al modo de chat. Escriba la salida para dejar el modo de chat. Escriba el historial con un número opcional para ver el historial. El valor predeterminado es 20.
El modo de chat proporciona una experiencia similar a https://platform.openai.com/chat, donde puede consultar solicitudes anteriores.
> 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
Use la instrucción #import
en su archivo de entrada para incluir indicaciones o comentarios/texto que desea que reaccione ChatGPT. Ejemplo
#import ~/work/gish/tasks/coding.txt
The above program prints hello world. Change it to print goodbye world.
#import hello.ts
Aquí está el contenido de 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.
---
Este es el flujo de trabajo típico cuando se usa GISH para la codificación:
Use la opción #diff
cuando desee que GPT realice cambios en un archivo y luego lo difunda:
#import ~/work/gish/tasks/coding.txt
In the following file, document the code better
#diff settings.ts
Este proceso es similar a #import
, pero también le permite a la aplicación saber que el usuario está modificando el archivo. Una vez que se genera el código, el comando DIFF definido en settings.ts
se inicia en los archivos originales y generados. Para cambios complejos, el copilot podría funcionar mejor.
Con el mensaje apropiado, como [aplicación web] (tareas/webapp.txt), puede obtener el LLM, GPT-4 se recomienda para esto, pero experimente y vea qué funciona para usted. Simplemente creando un archivo de entrada
#import tasks/webapp.txt
Generate Conway's game of life.
Include on the page, the instructions on how to play the game.
Y luego corriendo
gish -m gpt-4 -g life -i /input
Resultó en el juego de la vida en el directorio de "vida".
Advertencia
Tenga en cuenta que con este enfoque es fácil usar muchos tokens, específicamente con GPT-4, para que los costos puedan sumar.
Vea el [ejemplos] (ejemplos) direct para las formas de usar GISH para:
Aquí hay un ejemplo de script de shell que usa GISH para generar un mensaje de confirmación GIT y dejar a los usuarios en el editor con el mensaje prepoblido:
#! /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 ` " $*
El archivo de registro, ~/.Gish/History.json se comporta como el registro de sus conversaciones con ChatGPT. Dado que es un archivo estándar, puede usar un editor o un buscapersonas para ver el historial de sus interacciones con ChatGPT, incluye:
Similar a los comandos de Linux como Cat y Echo, lo siguiente es cómo GISH priorizó los argumentos y las banderas:
Por defecto, GISH le muestra estadísticas para su solicitud:
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
El costo se basa en la suposición de que está utilizando GPT3.5 a $ 0.02 por 1000 tokens. *Verifique dos veces los números antes de confiar en ellos. Al usar la transmisión, la API no nos da el número de tokens, por lo que necesitamos calcularlos por nuestra cuenta, lo que podría estar fuera de lugar.