O GISH é uma interface de linha de comando (CLI) que interage com o OpenAI GPT seguindo convenções do UNIX e oferecendo um rico conjunto de recursos via sinalizadores. É importante observar que uma conta OpenAI paga e a chave da API são necessárias para usar o Gish.
Gish oferece os seguintes recursos:
#import
#diff
ou o sinalizador -d
npx gish-gpt
ou
npm install gish-gpt
node_modules/.bin/gish
Alternativa, substitua a etapa 3 pelo dev npm para fazer alterações no código e
dist/index.js
dist/index.js
em algum lugar do seu caminho. Como alternativa, crie um pseudônimo. # 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.
Sem cotações, o shell interpretará o ponto de interrogação na segunda solicitação e causará um erro.
Entrada canalizada:
#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!
Isso é semelhante a digitar "python" ou "nó" na linha de comando.
gist < foo
Onde o conteúdo de Foo está
tell me a joke
gish --help
mostra todas as opções diferentesgish tell me a joke
vai enviar o pedidogish "what is the population of San Francisco?".
Você precisa das cotações para evitar erros de concha.gish -e
coloca você em seu editor e envia o conteúdo quando terminar. Para abortar, não crie o arquivo ou esvazie -ogish -e foo.txt
faz o mesmo, mas opera em um arquivo existente.gish -h [num]
mostra a história. NUM é opcional e padrão para 20.gish -i foo
envia o conteúdo do Foo. Equivalente a cat foo | gish
.gish -m gpt-4
especifica o modelogish -p foo
usa Foo como um prompt em um bate -papo. Outras bandeiras ou argumentos são usados para passar a solicitação real, mas esse é o plano de fundo. Consulte https://platform.openai.com/docs/guides/chat. Gish define esse prompt como o primeiro no bate -papo com o papel de "sistema".gish -s foo.ts
salva a saída para foo.ts. Ao gerar código, o usuário precisa usar um prompt que gera a saída apropriada. Consulte Prompts/Coding para um exemplo.gish -d foo.ts
diff O resultado com este arquivo. Requer -s.gish -c [num]
ativa o modo de bate -papo e refere -se à solicitação NUM, o padrão para o anterior. Consulte a seção de bate -papo para obter mais detalhes.gish -g
gera vários arquivos para criar um aplicativo completo. Consulte a seção Gereate para obter mais detalhes.gish -x
Argumentos extras para passar para o GPT. Exemplo: -x '"Temperatura" = 0,5: "max_tokens" = 500'. Como no seu shell -h ou - -história mostra a história de seus pedidos. O NUM param opcional especifica o número de elementos. Os padrões são 20.
O modo de bate -papo fornece uma experiência semelhante a https://platform.openai.com/chat, onde você pode consultar solicitações 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 o recurso Histórico, você pode ver a posição das solicitações na história e passá -las no 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 !
Consulte o [Chat API Docs] (https://platform.openai.com/docs/api-reference/chat) para a lista de flagas que você pode usar. Esse recurso é para usuários avançados, mas a API normalmente errará se você passar os sinalizadores que não são suportados.
Aviso a string que você passa precisa ser válida JSON. Especificamente, certifique -se de que qualquer string esteja fechada em citações duplas de ambos os lados do ':'. Este é JSON, não JavaScript! Exemplo:
# gish -x '"temperature":0.5,"max_tokens":5' tell me a joke
Why did the tomato turn
Fiz o corte da resposta após 5 tokens.
chat
e a solicitação para inserir o modo de bate -papo. Digite saída para sair do modo de bate -papo. Digite o histórico com um número opcional para visualizar o histórico. O padrão é 20.
O modo de bate -papo fornece uma experiência semelhante a https://platform.openai.com/chat, onde você pode consultar solicitações 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 a instrução #import
em seu arquivo de entrada para incluir prompts ou comentários/texto aos quais você deseja que o ChatGPT reaja. Exemplo
#import ~/work/gish/tasks/coding.txt
The above program prints hello world. Change it to print goodbye world.
#import hello.ts
Aqui está o conteúdo 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 é o fluxo de trabalho típico ao usar o gish para codificação:
Use a opção #diff
quando deseja que o GPT faça alterações em um arquivo e depois diferenciá -lo:
#import ~/work/gish/tasks/coding.txt
In the following file, document the code better
#diff settings.ts
Esse processo é semelhante ao #import
, mas também permite ao aplicativo saber que o usuário está modificando o arquivo. Depois que o código é gerado, o comando DIFF definido no settings.ts
é iniciado nos arquivos originais e gerados. Para mudanças complexas, o Copilot pode funcionar melhor.
Com o prompt apropriado, como [Web Application] (Tasks/WebApp.txt), você pode obter o LLM, o GPT-4 é recomendado para isso, mas experimente e veja o que funciona para você. Simplesmente criando um arquivo de entrada
#import tasks/webapp.txt
Generate Conway's game of life.
Include on the page, the instructions on how to play the game.
e depois correndo
gish -m gpt-4 -g life -i /input
Resultou no jogo da vida no diretório "Life".
Aviso
Esteja ciente de que, usando essa abordagem, é fácil usar muitos tokens, especificamente com o GPT-4, para que os custos possam aumentar.
Veja os [exemplos] (exemplos) dir para maneiras de usar o gish para:
Aqui está um exemplo de script de shell que usa o Gish para gerar uma mensagem GIT Commit e soltar usuários no editor com a mensagem prepovoada:
#! /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 ` " $*
O arquivo de log, ~/.gish/History.json se comporta como o log de suas conversas com o ChatGPT. Como é um arquivo padrão, você pode usar um editor ou um pager para examinar a história de suas interações com o ChatGPT, inclui:
Semelhante aos comandos Linux como Cat e Echo, o seguinte é como Gish priorizou os argumentos e sinalizadores:
Por padrão, Gish mostra estatísticas para sua solicitação:
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
O custo é baseado no pressuposto de que você está usando o GPT3.5 a US $ 0,02 por 1000 tokens. *Verifique os números antes de confiar neles. Ao usar o streaming, a API não nos fornece o número de tokens; portanto, precisamos calculá -los por conta própria, o que pode estar desligado.