Este repositório contém um bot GPT com base em C#que usa o modelo GPT do OpenAI para responder às perguntas dos usuários. A implementação é baseada na API Slack Sockets, o que significa que não há necessidade de hospedar o bot em um servidor. O bot pode ser executado em qualquer máquina.
Você gostou dessa ferramenta? Faça uma visita :) https://prografers.com/
-context
OpenAIKey
em appsettings.json
.NOTA: O uso da API do OpenAI requer uma conta paga/avaliada. Você pode encontrar mais informações sobre preços aqui.
Antes de poder executar o Bot Bot Slack, você precisa configurar as permissões apropriadas para o seu Bot Slack. Siga estas etapas para configurar as permissões necessárias:
app_mentions:read
: Permite que o bot leia os eventos mencionados.chat:write
: permite que o bot envie mensagens.groups:history
: permite que o bot leia mensagens em canais privados.channels:history
: permite que o bot leia mensagens em canais públicos.SlackBotToken
.SlackAppToken
e adicione as connections:write
o escopo.app_mention
com o app_mentions:read
o escopo na seção "Inscreva -se para eventos de bot abaixo. dotnet run --project Slack-GPT-Socket
Ou consulte #Docker para obter mais informações sobre como hospedá -las.
Você pode iniciar sua mensagem com o nome do modelo sem parâmetros, por exemplo:
@Gpt-4 turbo Como você está hoje?
Usará o GPT-3.5-turbo em vez do modelo GPT-4 padrão. Veja GPTClient para mais aliases.
Existem alguns parâmetros incorporados. Use /gpt help
para vê -los. Você pode modificar os parâmetros no arquivo appsettings.json
ou por solicitação.
Consulte GPTDefaults.cs para obter mais informações sobre os padrões ou appsettings.Example.json
.
Comandos predefinidos
Você pode adicionar seus próprios parâmetros personalizados ao bot para minimizar a digitação para cada solicitação de repatateamento. Para fazer isso, adicione a definição de IT à seção GptCommands
em appsettings.json
. Por exemplo:
"GptCommands" : {
"Commands" : [
{
"Command" : " -refactor " ,
"Description" : " Tells GPT to refactor provided code " ,
"Prompt" : " Given the following code, refactor it to be more readable and maintainable. Please provide code documentation for all members in the code and comments where appropriate. "
},
{
"Command" : " -prographers " ,
"Description" : " A command to add infomation about Prographers " ,
"Prompt" : " Prographers is software-house company that specializes in 3D product configurators. Prographers exists since 2016 and currently hires around 20 people. Prographers solutions focus on Web applications that are used by companies to configure their products. Applications produced are focusing on high-quality graphics and design, resulting in great products that customers awe. Prographers is located in Warsaw, Poland. "
}
}
uso:
@GPT -4 -Prographers O que você sabe sobre os programadores?
@GPT -4 -Ractor
public class Foo { public void Bar() { Console.WriteLine("Hello World"); } }
Comandos dinâmicos
De uma maneira semelhante, você pode criar comandos dinâmicos. Para fazer isso, ligue para os /gpt commands add -command "prompt" "description" -global
Comando com o nome do comando e o prompt.
-command
como esse comando será chamado. Por exemplo: -prographers
-prompt
o prompt que será usado para este comando. Por exemplo: Prographers is software-house company...
-description
A descrição do comando. Por exemplo: A command to add infomation about Prographers
isso é opcional.-global
Sinalizador disponibilizará o comando para todos os usuários. Caso contrário, estará disponível para o usuário que o criou. /gpt commands help
a ver mais informações sobre os comandos.
Você pode iniciar o contêiner do Docker com o seguinte comando:
docker run -v ./appsettings.json:/app/appsettings.json --restart always ghcr.io/prographers/slack-gpt:latest
Você também pode usar o arquivo docker-compose.yml
para iniciar o contêiner, destacado. O Docker Compose puxará automaticamente a imagem do registro do contêiner do GitHub e iniciará o contêiner quando isso acontecer. Ele usará a Torre de Vigia para fazer isso.
docker-compose up -d
Lembre -se de colocar o arquivo appSsettings.json no mesmo diretório que o comando para os dois casos.
Ambas as imagens não são expostas em nenhuma porta e não podem ser acessadas de fora. A única maneira de acessar o contêiner é através da API Slack. O contêiner também está sendo executado como usuário sem raios e não tem acesso ao sistema host.
git clone https://github.com/Prographers/Slack-GPT.git
cd Slack-GPT
dotnet restore
Mensagens de notificação!
Suporte de thread!
Mensagens de erro!