Ce référentiel contient un bot GPT Slack basé sur C # qui utilise le modèle GPT d'OpenAI pour répondre aux questions des utilisateurs. L'implémentation est basée sur l'API Slack Sockets, ce qui signifie qu'il n'est pas nécessaire d'héberger le bot sur un serveur. Le bot peut être exécuté sur n'importe quelle machine.
Avez-vous aimé cet outil? Donnez-nous une visite :) https://prographers.com/
-context
OpenAIKey
dans appsettings.json
.Remarque: L'utilisation de l'API OpenAI nécessite un compte payant / essai. Vous pouvez trouver plus d'informations sur les prix ici.
Avant de pouvoir exécuter le bot Slack GPT, vous devez configurer les autorisations appropriées pour votre bot Slack. Suivez ces étapes pour configurer les autorisations nécessaires:
app_mentions:read
: permet au bot de lire les événements de mention.chat:write
: permet au bot d'envoyer des messages.groups:history
: permet au bot de lire des messages dans des canaux privés.channels:history
: permet au bot de lire les messages dans les canaux publics.SlackBotToken
.SlackAppToken
et ajoutez les connections:write
la portée.app_mention
avec la portée app_mentions:read
dans la section "Abonnez-vous aux événements BOT" sous la bascule. dotnet run --project Slack-GPT-Socket
Ou voir #Docker pour plus d'informations sur la façon de l'héberger.
Vous pouvez démarrer votre message avec le nom du modèle sans paramètres, par exemple:
@ Gpt-4 turbo comment vas-tu aujourd'hui?
Utilisera gpt-3.5-turbo au lieu du modèle GPT-4 par défaut. Voir gptClient pour plus d'alias.
Il existe des paramètres intégrés. Utiliser /gpt help
à les voir. Vous pouvez modifier les paramètres dans le fichier appsettings.json
ou par demande.
Voir gptdefaults.cs pour plus d'informations sur les défauts ou appsettings.Example.json
.
Commandes prédéfinies
Vous pouvez ajouter vos propres paramètres personnalisés au bot pour minimiser la saisie de chaque demande réduite. Pour ce faire, ajoutez la définition IT à la section GptCommands
dans appsettings.json
. Par exemple:
"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. "
}
}
usage:
@ GPT-4 -PROGRAGES Que savez-vous des producteurs?
@ GPT-4 -Rrefactor
public class Foo { public void Bar() { Console.WriteLine("Hello World"); } }
Commandes dynamiques
De la même manière, vous pouvez créer des commandes dynamiques. Pour ce faire, appelez les /gpt commands add -command "prompt" "description" -global
Commande avec le nom de commande et l'invite.
-command
comment cette commande sera appelée. Par exemple: -prographers
-prompt
l'invite qui sera utilisée pour cette commande. EG: Prographers is software-house company...
-description
La description de la commande. EG: A command to add infomation about Prographers
c'est facultatif.-global
drapeau global mettra la commande à la disposition de tous les utilisateurs. Sinon, il sera disponible pour l'utilisateur qui l'a créé. /gpt commands help
à voir plus d'informations sur les commandes.
Vous pouvez démarrer le conteneur Docker avec la commande suivante:
docker run -v ./appsettings.json:/app/appsettings.json --restart always ghcr.io/prographers/slack-gpt:latest
Vous pouvez également utiliser le fichier docker-compose.yml
pour démarrer le conteneur, détaché. Docker Compose tirera automatiquement l'image du registre du conteneur GitHub et commencera le conteneur lorsque cela se produit. Il utilisera Watchtower pour le faire.
docker-compose up -d
N'oubliez pas de mettre le fichier appsettings.json dans le même répertoire que la commande pour les deux cas.
Les deux images ne sont exposées sur aucun port et ne sont pas accessibles de l'extérieur. La seule façon d'accéder au conteneur est via l'API Slack. Le conteneur fonctionne également en tant qu'utilisateur non racine et n'a pas accès au système hôte.
git clone https://github.com/Prographers/Slack-GPT.git
cd Slack-GPT
dotnet restore
Messages de notification!
Prise en charge du fil!
Messages d'erreur!