SGPT ( también conocido como Shell-GPT ) es una poderosa herramienta de interfaz de línea de comandos (CLI) diseñada para una interacción perfecta con modelos Operai directamente desde su terminal. Ejecutar consultas sin esfuerzo, generar comandos o código de shell, crear imágenes del texto y más, usando comandos simples. Agilice su flujo de trabajo y mejore la productividad con esta herramienta CLI potente y fácil de usar.
Desarrollado con la ayuda de SGPT.
Esta es una implementación de Go. Para la implementación original de Python, visite Shell-GPT. Tenga esto en cuenta al informar problemas.
Nota: Actualmente bajo una gran refactorización para V3, pero V2 todavía se mantiene.
Al ofrecer estas características versátiles, SGPT sirve como una herramienta poderosa para mejorar su productividad general, optimizar su flujo de trabajo y simplificar las tareas complejas.
SGPT se ha probado en las versiones de Ubuntu LTS y se espera que sea compatible con las siguientes distribuciones de Linux:
Para instalar, descargue la última versión de la página de lanzamiento y use el Administrador de paquetes específico para su distribución.
Para los usuarios con Homebrew como su administrador de paquetes, ejecute el siguiente comando en el terminal:
brew install tbckr/tap/sgptPara los usuarios con SCOOP como su administrador de paquetes, ejecute estos comandos en PowerShell:
scoop bucket add tbckr https://github.com/tbckr/scoop-bucket.git
scoop install tbckr/sgptPara instalar SGPT con GO, basado en la etiqueta GIT, use este comando:
go install github.com/tbckr/sgpt/v2/cmd/sgpt@latestPara ejecutar SGPT con Docker, use el siguiente comando para extraer la última imagen:
docker pull ghcr.io/tbckr/sgpt:latestAquí se pueden encontrar ejemplos sobre cómo usar SGPT con Docker.
Para instalar SGPT con Ansible, puede usar el siguiente libro de jugadas de Ansible como su base y adaptarse en consecuencia:
---
- hosts : all
tasks :
- name : Get latest sgpt release
uri :
url : " https://api.github.com/repos/tbckr/sgpt/releases/latest "
return_content : yes
register : sgpt_release
- name : Set latest version of sgpt
set_fact :
sgpt_latest_version : " {{ sgpt_release.json.tag_name }} "
- name : Install sgpt for debian based, amd64 systems
ansible.builtin.apt :
deb : https://github.com/tbckr/sgpt/releases/download/{{ sgpt_latest_version }}/sgpt_{{ sgpt_latest_version[1:] }}_amd64.deb
allow_unauthenticated : trueEl libro de jugadas se puede ejecutar con el siguiente comando:
ansible-playbook -i < inventory > < playbook > .ymlLa última versión del libro de jugadas se puede encontrar aquí.
Para otras plataformas, visite la página de lanzamiento de GitHub y descargue la última versión adecuada para su sistema.
Consulte la documentación para obtener instrucciones de uso detalladas.
Para usar la API de OpenAI, primero debe obtener una clave API.
.bashrc o .zshrc para incluir la siguiente declaración de exportación agregando su clave API como valor: export OPENAI_API_KEY= " sk-... "OPENAI_API_KEY con su clave API como valor.Después de completar estos pasos, tendrá una tecla API OpenAI que puede usarse para interactuar con los modelos OpenAI a través de la herramienta SGPT.
Nota: Su clave API es información confidencial. No lo comparta con nadie.
SGPT le permite hacer preguntas simples y recibir respuestas informativas. Por ejemplo:
$ sgpt " mass of sun "
The mass of the sun is approximately 1.989 x 10^30 kilograms.También puede pasar las indicaciones a SGPT usando tuberías:
$ echo -n " mass of sun " | sgpt
The mass of the sun is approximately 1.989 x 10^30 kilograms. También puede agregar otro aviso a los datos con tuberías especificando el modificador stdin y luego especificando el mensaje:
$ echo " Say: Hello World! " | sgpt stdin ' Replace every "World" word with "ChatGPT" '
Hello ChatGPT ! Si desea transmitir la finalización a la línea de comandos, puede agregar el indicador --stream . Esto transmitirá la salida a la línea de comando a medida que se genere.
SGPT también facilita la utilización de la API de visión GPT-4O y GPT-4. Incluya imágenes de entrada utilizando el indicador -i o --input , que admite tanto las URL como las imágenes locales.
$ sgpt -m " gpt-4o " -i pkg/fs/testdata/marvin.jpg " what can you see on the picture? "
The picture shows a robot with a large, round head and an expressive, downward-slanting triangular eye. The body of the robot is designed with a sleek, somewhat shiny, metallic structure and it is pointing with its right hand. The design appears to be humanoid with distinct arms, legs, and a segmented torso.
$ sgpt -m " gpt-4-vision-preview " -i " https://upload.wikimedia.org/wikipedia/en/c/cb/Marvin_%28HHGG%29.jpg " " what can you see on the picture? "
The image shows a figure resembling a robot with a humanoid form. It has aTambién es posible combinar URL e imágenes locales:
$ sgpt -m " gpt-4o " -i " https://upload.wikimedia.org/wikipedia/en/c/cb/Marvin_%28HHGG%29.jpg " -i pkg/fs/testdata/marvin.jpg " what is the difference between those two pictures "
The two pictures you provided appear to be identical. There are no visible differences between them. Both show the same character in the same pose with the same lighting and background.También puede establecer el modelo predeterminado en la visión GPT-4O o GPT-4 configurándolo en el archivo de configuración.
IMPORTANTE: La integración de la API de visión GPT-4O y GPT-4-visión se encuentra actualmente en beta y puede cambiar en el futuro.
Si ya tiene una lista blanca para la API O1, puede usarlo especificando el modelo con el indicador -m . También debe proporcionar la bandera --stream=false para no transmitir la salida, ya que no es compatible con la API O1 (esto solo es necesario, si ha proporcionado la opción de flujo a través del archivo de configuración).
Ejemplo:
$ sgpt -m " o1-preview " --stream=false " how many rs are in strawberry? "
There are three " r " s in the word " strawberry " . También puede crear un alias bash para usar la API O1 más fácilmente. Por ejemplo, agregue la siguiente línea a su .bashrc :
alias sgpt-o1= " sgpt -m " o1-preview " --stream=false "Entonces puedes usar el alias como este:
$ sgpt-o1 " how many rs are in strawberry? "
There are three " r " s in the word " strawberry " .IMPORTANTE: La API O1 no apoya a las personas.
SGPT proporciona funcionalidad de chat que permite conversaciones interactivas con modelos Operai. Puede usar la bandera --chat para iniciar y referencia a las sesiones de chat.
Las capacidades de chat le permiten interactuar con los modelos Operai de una manera más dinámica y atractiva, lo que facilita la obtención de respuestas relevantes, código o comandos de shell a través de conversaciones continuas.
El siguiente ejemplo demuestra cómo ajustar las respuestas del modelo para resultados más específicos.
ls-files y le pide al modelo que "enumera todos los directorio de archivos": $ sgpt sh --chat ls-files " list all files directory "
lsls-files y solicita "ordenar por nombre": $ sgpt sh --chat ls-files " sort by name "
ls | sort El modelo proporciona el comando de shell apropiado ls | sort , que enumera todos los archivos en un directorio y los clasifica por nombre.
SGPT puede generar comandos de shell en función de su entrada:
$ sgpt sh " make all files in current directory read only "
chmod -R 444 *También puede generar un comando shell y ejecutarlo directamente:
$ sgpt sh --execute " make all files in current directory read only "
chmod -R 444 *
Do you want to execute this command ? (Y/n) y El comando sh es una persona predeterminada para generar comandos de shell. Para obtener más información sobre Personas, consulte los documentos.
Actualmente, SGPT no admite sesiones de conchas interactivas. Sin embargo, rlwrap se puede utilizar para habilitar sesiones de carcasa interactiva (fuente):
$ rlwrap bash -c 'echo ▶; while read in; do [[ -n "$in" ]] && echo ■ && sgpt --chat chat_name "$in" && echo ▶; done'
▶
mass of sun
■
The mass of the Sun is approximately 1.989 x 10^30 kilograms, or about 330,000 times the mass of Earth. It contains about 99.86% of the total mass of the Solar System and is by far the most dominant object in it. The Sun's mass is composed mostly of hydrogen (~74%) and helium (~24%), with the remaining 2% consisting of heavier elements.
▶
convert to earth masses
■
To convert the mass of the Sun to Earth masses, you can simply divide the Sun's mass by the mass of the Earth. Given that:
A. The Sun's mass is approximately 1.989 x 10^30 kilograms.
B. The Earth's mass is approximately 5.972 x 10^24 kilograms.
Using these values, you can calculate how many Earth masses the Sun is:
(1.989 x 10^30 kg) / (5.972 x 10^24 kg/Earth) = approximately 333,000 Earth masses
So the Sun is about 333,000 times more massive than the Earth.
▶
Un script con generación de nombres de sesión automatizada y soporte de notificación podría verse así:
#! /usr/bin/env bash
shopt -s -o errexit
shopt -s -o pipefail
shopt -s -o nounset
shopt -s inherit_errexit
export CHAT= " $( date ' +%Y%m%d%H%M%S%3N ' ) _ $( tr -dc ' A-Za-z ' < /dev/urandom | head -c 3 ) "
rlwrap bash -c ' echo ▶; while read in; do [[ -n "$in" ]] && echo ■ && sgpt --chat "$CHAT" "$in" && echo ▶ && notify-send --urgency=low ; done 'Gracias a @Ilya-Bytrov por crear esta solución.
SGPT puede generar eficientemente el código basado en instrucciones dadas. Por ejemplo, para resolver el problema clásico de FizzBuzz usando Python, simplemente proporcione el mensaje de la siguiente manera:
$ sgpt code " Solve classic fizz buzz problem using Python "
for i in range(1, 101):
if i % 3 == 0 and i % 5 == 0:
print( " FizzBuzz " )
elif i % 3 == 0:
print( " Fizz " )
elif i % 5 == 0:
print( " Buzz " )
else:
print(i)SGPT devolverá el código Python apropiado para abordar el problema de FizzBuzz.
El comando code es una persona predeterminada para generar código. Para obtener más información sobre Personas, consulte los documentos.
SGPT se puede integrar aún más en su flujo de trabajo creando alias y funciones bash. Esto le permite automatizar tareas comunes y mejorar la eficiencia cuando trabaja con modelos Operai y comandos de shell.
De hecho, puede configurar SGPT para generar su mensaje de confirmación GIT utilizando la siguiente función bash:
gsum () {
commit_message= " $( sgpt txt " Generate git commit message, my changes: $( git diff ) " ) "
printf " %sn " " $commit_message "
read -rp " Do you want to commit your changes with this commit message? [y/N] " response
if [[ $response =~ ^[Yy]$ ]] ; then
git add . && git commit -m " $commit_message "
else
echo " Commit cancelled. "
fi
}Por ejemplo, el mensaje de confirmación para esta descripción y la función bash aparecería de la siguiente manera:
$ gsum
feat: Add bash function to generate git commit messages
Added `gsum () ` function to ` .bash_aliases ` that generates a commit message using sgpt to summarize git changes.
The user is prompted to confirm the commit message before executing ` git add . & & git commit -m " <commit_message> " ` .
This function is meant to automate the commit process and increase productivity in daily work.
Additionally, updated the README.md file to include information about the new bash function and added a section to
showcase useful bash aliases and functions found in ` .bash_aliases ` .
Do you want to commit your changes with this commit message ? [y/N] y
[main d6db80a] feat: Add bash function to generate git commit messages
2 files changed, 48 insertions(+)
create mode 100644 .bash_aliasesUna compilación de alias y funciones de BASH beneficiosos, incluida una función GSUM actualizada, está disponible en .BASHRC.
Inspirado por Shell-GPT.