Huginn - 构建代理、执行自动化任务

文章目录


一、关于 Huginn




什么是Huginn?

创建代表您监视和行动的代理。您的代理随时待命!

Huginn是一个系统,用于构建代理,为您在线执行自动化任务。他们可以读取网络,观察事件,并代表您采取行动。Huginn的代理创建和消费事件,沿着有向图传播它们。把它想象成您自己服务器上的IFTTT或Zapier的可破解版本。你总是知道谁有你的数据。你知道。



Huginn 功能

以下是您可以使用Huginn做的一些事情:

  • 跟踪天气并在明天下雨(或下雪)时收到一封电子邮件("别忘了你的雨伞!")
  • 列出你关心的术语,并在它们在Twitter上的出现发生变化时收到电子邮件。(例如,想知道机器学习的世界什么时候发生了有趣的事情?Huginn会在Twitter上观看术语"机器学习",并告诉你什么时候讨论激增。)
  • 留意航空旅行或购物交易
  • 在Twitter上关注您的项目名称,并在人们提到它们时获得更新
  • 删除网站并在更改时接收电子邮件
  • 连接到Adioso、HipChat、FTP、IMAP、Jabber、JIRA、MQTT、nextbus、Push弹、Pushover、RSS、Bash、Slack、StubHub、翻译API、Twilio、Twitter和微博,仅举几例。
  • 在一天中的特定时间发送包含您关心的事情的摘要电子邮件
  • 跟踪高频事件的计数,并在事件激增时发送短信,例如术语"旧金山紧急情况"
  • 发送和接收WebHooks
  • 运行自定义JavaScript或CoffeeScript函数
  • 随着时间的推移跟踪您的位置
  • 创建亚马逊土耳其机器人工作流作为代理的输入或输出(亚马逊土耳其机器人代理被称为"人类任务代理")。例如:"每天一次,向5个人询问一张有趣的猫照片;将结果发送给另外5个人进行评分;将评分最高的照片发送给5个人进行有趣的标题;发送给最后5个人进行最有趣的标题评分;最后,在我的博客上发布最佳字幕照片。"

加入Huginn

想帮助Huginn吗?鼓励所有贡献!您可以进行UI改进,添加新代理,编写文档和教程,或者尝试解决标记为#"需要帮助"的问题。请分叉,添加规格,并发送拉取请求!

真的想要修复或功能吗?想解决一些社区问题并赚取一些额外的咖啡钱吗?看看Bountysource上当前的赏金

有一个很棒的想法,但还没有准备好做出贡献?前往我们的官方"建议代理"帖子并告诉我们!


展示

请查看Huginn介绍性截屏

现在,一些示例屏幕截图。下面是帮助您入门的说明。






二、安装


1、Docker

查看Huginn最快最简单的方法是使用官方的Docker镜像。看看文档


2、本地安装

如果您只是想玩玩,您可以简单地fork此存储库,然后执行以下步骤:

  • 运行git remote add upstream https://github.com/huginn/huginn.git将主存储库添加为fork的远程。
  • 复制.env.example.envcp .env.example .env)并编辑.env,至少更新APP_SECRET_TOKEN变量。
  • 确保你安装了MySQL或PostgreSQL。(在Mac上,最简单的方法是使用Homebrew。如果你要使用PostgreSQL,你需要在下面的所有命令前加上DATABASE_ADAPTER=postgresql。)
  • 运行bundle以安装依赖项
  • 运行bundle exec rake db:createbundle exec rake db:migrate,然后bundle exec rake db:seed以创建带有一些示例代理的开发数据库。
  • 运行bundle exec foreman start,访问http://localhost:3000/,并使用用户名`admin`和密码登录`password`
  • 设置一些代理!
  • 阅读wiki以获取使用示例并开始制作新的代理。
  • 定期运行git fetch upstream,然后git checkout master && git merge upstream/master合并到最新版本的Huginn中。

注意:默认情况下,电子邮件在developmentRails环境中被拦截,这就是您刚刚设置的。您可以查看 他们在http://localhost:3000/letter_opener。如果你想在玩的时候通过SMTP发送真实的电子邮件 本地使用Huginn,在.env文件中将SEND_EMAIL_IN_DEVELOPMENT设置为true

如果您需要更详细的说明,请参阅新手设置指南


3、开发

所有代理都有规格!还有模拟在无头浏览器中运行Huginn的验收测试。

  • 安装PhantomJS2.1.1或更高版本:
  • 使用 bundle exec rspec 运行所有
  • 运行一个特定的规范与bundle exec rspec path/to/specific/test_spec.rb
  • 在这里 阅读更多关于rspec for rails。

三、使用Huginn代理gems

现在可以将Huginn代理编写为外部 gem,并使用ADDITIONAL_GEMS环境变量添加到Huginn安装中。有关详细信息,请参阅.env.exampleAdditional Agent gems部分。

如果你想写自己的Huginn代理宝石,请参阅huginn_agent

我们的总体意图是鼓励将复杂和特定的代理编写为Gems,同时继续将新的通用代理添加到核心Huginn存储库中。


四、部署

请参阅Huginn Wiki,了解不同提供商的详细部署策略。


1、Heroku

试试Heroku上的Huginn:https://heroku.com/deploy(设置需要几分钟。阅读留档 当你在等待的时候,一定要在发布后点击"查看它"!)

Huginn仅在Heroku的付费订阅计划上启动。对于非实验性使用,我们强烈推荐Heroku的1GB付费计划或我们的Docker容器。


2、OpenShift


OpenShift 在线

在 OpenShift Online 上试用 Huginn

使用mysqlpostgres

shell 复制代码
oc new-app -f https://raw.githubusercontent.com/huginn/huginn/master/openshift/templates/huginn-mysql.json

或者

shell 复制代码
oc new-app -f https://raw.githubusercontent.com/huginn/huginn/master/openshift/templates/huginn-postgresql.json

注意:您还可以使用Web控制台通过转到"添加到项目"->"导入YAML/JSON"来导入任一json文件。

如果您在初学者计划中,请确保按照指南删除任何现有应用程序。

这些模板应该适用于v3安装或当前的在线v4。


3、在任何服务器上手动安装

看看安装指南


4、可选设置


4.1 私人开发设置

请参阅wiki上的私有开发说明


4.2 启用WeatherAgent

为了使用 WeatherAgent,您需要来自Pirate Weather的Weather Data API密钥。注册一个,然后更改种子WeatherAgent中api_key: your-key的值。


4.3 禁用SSL

我们假设您的部署将在SSL上运行。这是一个非常好的主意!但是,如果您希望关闭它,您可能需要编辑config/initializers/devise.rb并修改包含config.rememberable_options = { :secure => true }的行。您还需要编辑config/environments/production.rb并修改config.force_ssl的值。


2024-01-04(六)

相关推荐
扫地僧0094 小时前
大模型在网络安全领域的七大应用
人工智能·安全·web安全·自动化·大模型·deepseek·微调参数
@ V:ZwaitY097 小时前
TikTok 云控矩阵详解:从养号到引流的全链路自动化管理
大数据·矩阵·自动化
云攀登者-望正茂7 小时前
实践 DevOps 项目:使用 Terraform、Helm、SonarQube 和 GitLab CI/CD 在 AWS EKS 上实践全栈部署
自动化·devops·terraform
odoo-卜永9 小时前
odo18实施——销售-仓库-采购-制造-制造外包-整个流程自动化单据功能的演示教程
自动化·制造·实施·odoo18
科士威传动1 天前
微型导轨的制造工艺中,热处理的目的是什么?
科技·自动化·制造
新加坡内哥谈技术1 天前
Llama 4的争议
人工智能·深度学习·语言模型·自然语言处理·自动化·llama
维度攻城狮1 天前
高效创建工作流,可实现类似unreal engine的蓝图效果,内部使用多线程高效执行节点函数
python·游戏引擎·开源软件·虚幻·graph·工作流
唐僧不爱八戒1 天前
LibreOffice 自动化操作目录
运维·自动化
梦醒三叹1 天前
自动化 Markdown 图片上传到 GitHub
运维·自动化·github
人机与认知实验室1 天前
无人驾驶是自动化还是智能化?
运维·自动化