Este repositorio contiene un bot Slack GPT Bot basado en C#que utiliza el modelo GPT de Openai para responder las preguntas de los usuarios. La implementación se basa en la API Slack Sockets, lo que significa que no hay necesidad de alojar el bot en un servidor. El bot se puede ejecutar en cualquier máquina.
¿Te gustó esta herramienta? Haznos una visita :) https://prographers.com/
-context
OpenAIKey
en appsettings.json
.Nota: El uso de la API de OpenAI requiere una cuenta pagada/de prueba. Puede encontrar más información sobre los precios aquí.
Antes de que pueda ejecutar el bot Bot Slack GPT, debe configurar los permisos apropiados para su bot Slack. Siga estos pasos para configurar los permisos necesarios:
app_mentions:read
: Permite que Bot lea los eventos de mención.chat:write
: permite que el bot envíe mensajes.groups:history
: permite que el BOT lea mensajes en canales privados.channels:history
: permite que BOT lea mensajes en canales públicos.SlackBotToken
.SlackAppToken
y agregue las connections:write
el alcance.app_mention
con la app_mentions:read
el alcance en la sección "Suscríbete a los eventos BOT" debajo de la palanca. dotnet run --project Slack-GPT-Socket
O vea #Docker para obtener más información sobre cómo alojarlo.
Puede iniciar su mensaje con el nombre del modelo sin parámetros, por ejemplo:
@GPT-4 Turbo ¿Cómo estás hoy?
Utilizará GPT-3.5-TURBO en lugar del modelo GPT-4 predeterminado. Ver GPTClient para obtener más alias.
Hay algunos parámetros incorporados. Use /gpt help
para verlos. Puede modificar los parámetros en el archivo appsettings.json
o por solicitud.
Consulte Gptdefaults.cs para obtener más información sobre los valores predeterminados o appsettings.Example.json
.
Comandos predefinidos
Puede agregar sus propios parámetros personalizados al BOT para minimizar la escritura de cada solicitud repedida. Para hacerlo, agregue la definición de ITS a la sección GptCommands
en appsettings.json
. Por ejemplo:
"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 -Prógrafos ¿Qué sabes sobre los prógrafos?
@Gpt -4 -refactor
public class Foo { public void Bar() { Console.WriteLine("Hello World"); } }
Comandos dinámicos
De manera similar, puede crear comandos dinámicos. Para hacerlo, llame a los /gpt commands add -command "prompt" "description" -global
con el nombre del comando y el indicador.
-command
cómo se llamará a este comando. EG: -prographers
-prompt
el mensaje que se utilizará para este comando. EG: Prographers is software-house company...
-description
La descripción del comando. por ejemplo: A command to add infomation about Prographers
esto es opcional.-global
Flag hará que el comando esté disponible para todos los usuarios. De lo contrario, estará disponible para el usuario que lo creó. /gpt commands help
a ver más información sobre los comandos.
Puede iniciar el contenedor Docker con el siguiente comando:
docker run -v ./appsettings.json:/app/appsettings.json --restart always ghcr.io/prographers/slack-gpt:latest
También puede usar el archivo docker-compose.yml
para iniciar el contenedor, separado. Docker Compose extraerá automáticamente la imagen del registro de contenedores GitHub e iniciará el contenedor cuando eso suceda. Usará Watchtower para hacer eso.
docker-compose up -d
Recuerde poner el archivo appSettings.json en el mismo directorio que el comando para ambos casos.
Ambas imágenes no están expuestas en ningún puerto y no se puede acceder desde el exterior. La única forma de acceder al contenedor es a través de la API Slack. El contenedor también se está ejecutando como un usuario no raíz y no tiene acceso al sistema de host.
git clone https://github.com/Prographers/Slack-GPT.git
cd Slack-GPT
dotnet restore
¡Mensajes de notificación!
Soporte de hilo!
¡Mensajes de error!