summaryrefslogtreecommitdiffstats
path: root/krebs/2configs/reaktor2.nix
diff options
context:
space:
mode:
Diffstat (limited to 'krebs/2configs/reaktor2.nix')
-rw-r--r--krebs/2configs/reaktor2.nix40
1 files changed, 40 insertions, 0 deletions
diff --git a/krebs/2configs/reaktor2.nix b/krebs/2configs/reaktor2.nix
index 39039cc11..0a5031415 100644
--- a/krebs/2configs/reaktor2.nix
+++ b/krebs/2configs/reaktor2.nix
@@ -51,6 +51,45 @@ let
};
};
+ bing = {
+ pattern = "!bing (.*)$";
+ activate = "match";
+ arguments = [1];
+ timeoutSec = 1337;
+ command = {
+ filename = pkgs.writeDash "bing" ''
+ set -efu
+ report_error() {
+ printf '%s' "$*" |
+ curl -Ss http://p.r --data-binary @- |
+ tail -1 |
+ echo "error $(cat)"
+ exit 0
+ }
+ export PATH=${makeBinPath [
+ pkgs.coreutils
+ pkgs.curl
+ pkgs.jq
+ ]}
+ response=$(printf '%s' "$*" |
+ curl -SsG http://bing-gpt.r/api/chat --data-urlencode 'prompt@-'
+ )
+ if [ "$?" -ne 0 ]; then
+ report_error "$response"
+ else
+ if ! text=$(printf '%s' "$response" | jq -er '.item.messages[1].text'); then
+ echo "$_from: $(report_error "$response")"
+ exit 0
+ fi
+ printf '%s' "$text" | echo "$_from: $(cat)"
+
+ printf '%s' "$response" |
+ jq -r '[.item.messages[1].sourceAttributions[].seeMoreUrl] | to_entries[] | "[\(.key + 1)]: \(.value)"'
+ fi
+ '';
+ };
+ };
+
confuse = {
pattern = "!confuse (.*)$";
activate = "match";
@@ -322,6 +361,7 @@ let
}
bedger-add
bedger-balance
+ bing
hooks.sed
interrogate
say