Improve dice rolling for discourse-narrative-bot

Although @discobot has a dice roller, it’s too simple. It’s not yet capable of rolling complex dice and formulas for specific needs. So, I’d like to improve this feature and make it possible to run dice like 1d20+5, 1d20+2 + 2d12-1, 5d10k2 and so on…

I submitted this PR and would very much appreciate reviews and thoughts about it. Thanks! :slight_smile:

https://github.com/discourse/discourse/pull/7381

4 curtidas

Hi! To find out what I can do, say @discobot display help.

2 curtidas

Shoo! I don’t want to talk to you… ¬¬

6 curtidas

O Discourse AI agora tem um rolo de dados razoavelmente capaz e criativo, por exemplo, @random_picker_bot, que tal rolar um 1d20+5 para mim?

Além disso, enquanto isso, escolha um nome aleatório para o meu gato.

3 curtidas
Random Picker

Picking from ["1-20"], picked: [5]

Random Picker

Picking from ["Whiskers,Mittens,Socks,Shadow,Simba,Leo,Oliver,Luna,Bella,Max"], picked: ["Shadow"]

For your adventurous roll of 1d20+5, the dice landed on a 5, which adds up to a grand total of 10!

And for your future feline friend, the Random Picker has decreed its name shall be Shadow. Sounds like a kitty destined for stealthy midnight adventures, doesn’t it? :cat::sparkles:

4 curtidas

A grande vantagem aqui é que você não precisa aprender nenhuma sintaxe especial, o GPT-4 simplesmente descobre isso para você. Isso pode tornar a rolagem de dados um pouco cara, mas o GPT 3.5 também faz um trabalho razoável.

2 curtidas

Como poderíamos saber se esse tipo de sistema está fazendo o que esperamos? Ele pode preferir números ímpares, ou preferir não rolar duplas, ou qualquer coisa realmente.

1 curtida

Você pode verificar o código de randomização em https://github.com/discourse/discourse-ai/blob/main/lib/ai_bot/tools/random_picker.rb. Por exemplo, as rolagens de dados parecem ser determinadas por:

2 curtidas

Ah, muito obrigado. Eu ingenuamente presumi que o LLM estava fazendo o trabalho - ser conectado a algum código procedural é uma história diferente e, neste caso, a resposta certa!

Coisa semelhante no Chatbot. Se você pedir para ele fazer matemática, ele chamará uma função determinística em vez de deixar ao acaso.

2 curtidas