#markov-chain #bot #text-generation #lambda #aws-lambda #random #seinfeld

app seinbot-rs

使用 Rust 中的马尔可夫链实现的 Seinfeld Twitter 机器人

5 个版本 (稳定)

1.0.3 2019 年 4 月 11 日
1.0.2 2019 年 4 月 6 日
1.0.1 2019 年 3 月 30 日
0.1.0 2019 年 3 月 4 日

#10 in #markov-chain

MIT 许可证

3MB
69K SLoC

seinbot-rs

Crates.io twitter

使用 AWS Lambda 函数和 Rust 中的马尔可夫链实现的 Seinfeld Twitter 机器人。

简介

tweet-example

来自 Frank Costanza 的示例推文

我总是想制作一个机器人,通过愚蠢的推文为宇宙的热寂做出贡献。这就是结果!

主要为了学习目的,这个项目的目的是看看使用热门电视剧《Seinfeld》

  1. 如何使用马尔可夫链生成伪随机文本。
  2. 将生成的内容发布到互联网。
  3. 自动化内容生成和发布,以便每天进行。
  4. ... 并且所有这些都在 Rust! 中完成。

结果

幸运的是,有许多文档良好的 Rust 库,使得项目的实现相当简单。使用 AWS Lambda 函数和 Rust 的无服务器应用程序框架,部署和配置代码以定期运行变得非常简单。

service: daily-tweet
provider:
  name: aws
  runtime: rust
...
functions:
  seinbot:
    handler: seinbot-rs
    events:
      - schedule: rate(24 hours)

serverless.yml 摘录(用于部署到 AWS)

虽然这个机器人大部分产生的是无意义的输出,但它有时可以构建一些相当有趣的东西(见上面的推文)。总的来说,我对最终产品非常满意,并感谢以下项目使其成为可能:

  • seinfeld-scripts:提供用于马尔可夫链的 Seinfeld 内容数据库。
  • markov:提供马尔可夫链的 Rust 实现。
  • egg_mode:提供用于与 Twitter API 交互的库。
  • aws-lambda-rust-runtime:提供用于在 Rust 中实现 AWS Lambda 函数的库。
  • serverless-rust:提供用于配置、测试和部署机器人的框架。

依赖项

~23–33MB
~547K SLoC