このリポジトリには、OpenAIのGPTモデルを使用してユーザーの質問に答えるC#ベースのSlack GPTボットが含まれています。実装はSlack Sockets APIに基づいています。つまり、サーバーでボットをホストする必要はありません。ボットは任意のマシンで実行できます。
このツールは好きでしたか?訪問してください:) https://prographers.com/
-context
全体のシステムメッセージappsettings.json
のOpenAIKey
変数に入れます。注:OpenAI APIを使用するには、有料/試用勘定が必要です。価格の詳細については、こちらをご覧ください。
Slack GPTボットを実行する前に、Slackボットの適切なアクセス許可を構成する必要があります。これらの手順に従って、必要なアクセス許可を設定します。
app_mentions:read
:ボットが言及イベントを読むことを許可します。chat:write
:ボットがメッセージを送信できるようにします。groups:history
:ボットがプライベートチャンネルでメッセージを読み取ることができます。channels:history
:ボットがパブリックチャネルでメッセージを読むことができます。SlackBotToken
が生成されます。SlackAppToken
という名前のトークンを生成し、 connections:write
。app_mention
イベントを追加app_mentions:read
。 dotnet run --project Slack-GPT-Socket
または、ホスト方法の詳細については、#Dockerを参照してください。
パラメーターなしでモデルの名前でメッセージを開始できます。
@gpt-4ターボ今日はお元気ですか?
デフォルトのGPT-4モデルではなく、GPT-3.5-ターボを使用します。より多くのエイリアスについては、GptClientを参照してください。
いくつかの組み込みパラメーターがあります。 /gpt help
を使用して表示します。 appsettings.json
ファイルまたは要求ごとにパラメーターを変更できます。
デフォルトまたはappsettings.Example.json
詳細については、gptdefaults.csを参照してください。
事前定義されたコマンド
繰り返される各リクエストのタイピングを最小限に抑えるために、ボットに独自のカスタムパラメーターを追加できます。そのために、 appsettings.json
のGptCommands
セクションに定義を追加します。例えば:
"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. "
}
}
使用法:
@gpt -4-プログラグラファタープログラファーについて何を知っていますか?
@gpt -4 -reactor
public class Foo { public void Bar() { Console.WriteLine("Hello World"); } }
動的コマンド
同様に、動的コマンドを作成できます。そのために、 /gpt commands add -command "prompt" "description" -global
コマンドコマンド名とプロンプト。
-command
。例: -prographers
-prompt
。例: Prographers is software-house company...
-description
コマンドの説明。例: A command to add infomation about Prographers
これはオプションです。-global
Flagは、すべてのユーザーがコマンドを利用できるようにします。それ以外の場合は、作成したユーザーが利用できます。 /gpt commands help
。
次のコマンドでDockerコンテナを起動できます。
docker run -v ./appsettings.json:/app/appsettings.json --restart always ghcr.io/prographers/slack-gpt:latest
docker-compose.yml
ファイルを使用して、コンテナを起動することもできます。 Docker Composeは、GitHubコンテナレジストリから画像を自動的に引き出し、それが発生したときにコンテナを起動します。それを行うには、監視塔を使用します。
docker-compose up -d
両方のケースのコマンドと同じディレクトリにappsettings.jsonファイルを配置することを忘れないでください。
どちらの画像もポートに露出しておらず、外部からアクセスできません。コンテナにアクセスする唯一の方法は、Slack APIを使用することです。コンテナは非ルートユーザーとしても実行されており、ホストシステムにアクセスできません。
git clone https://github.com/Prographers/Slack-GPT.git
cd Slack-GPT
dotnet restore
通知メッセージ!
スレッドサポート!
エラーメッセージ!