该存储库包含一个基于C#的Slack GPT机器人,该机器人使用OpenAI的GPT模型来回答用户的问题。该实现基于Slack Sockets API,这意味着无需在服务器上托管机器人。该机器人可以在任何机器上运行。
您喜欢这个工具吗?给我们访问:) https://prographers.com/
-context
的系统消息appsettings.json
中的OpenAIKey
变量中。注意:使用OpenAI API需要一个付费/试用帐户。您可以在此处找到有关定价的更多信息。
在运行Slack GPT机器人之前,您需要为Slack Bot配置适当的权限。请按照以下步骤设置必要的权限:
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 Turbo今天好吗?
将使用GPT-3.5-Turbo而不是默认GPT-4模型。有关更多别名,请参见GPTCLIENT。
有一些内置参数。使用/gpt help
查看它们。您可以在appsettings.json
文件中修改参数,也可以根据请求进行修改。
有关默认值或appsettings.Example.json
的更多信息,请参见GPTDEFAULTS.CS。
预定义命令
您可以将自己的自定义参数添加到bot中,以最大程度地减少每个已评估的请求的键入。为此,请将其定义添加到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 -refactor
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
标志将使所有用户可用。否则,它将适用于创建它的用户。使用/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容器注册表中拉出图像,并在发生这种情况时启动容器。它将使用watch望塔来做到这一点。
docker-compose up -d
请记住,将AppSettings.json文件与两种情况的命令相同的目录中。
这两个图像均未在任何端口上暴露,也无法从外部访问。访问容器的唯一方法是通过Slack API。该容器还作为非根用户运行,无法访问主机系统。
git clone https://github.com/Prographers/Slack-GPT.git
cd Slack-GPT
dotnet restore
通知消息!
线程支持!
错误消息!