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

在这里插入图片描述

文章目录

    • 一、关于 Huginn
      • 什么是Huginn?
      • Huginn 功能
      • 加入Huginn
      • 展示
    • 二、安装
      • 1、Docker
      • 2、本地安装
      • 3、开发
    • 三、使用Huginn代理gems
    • 四、部署
      • 1、Heroku
      • 2、OpenShift
        • OpenShift 在线
      • 3、在任何服务器上手动安装
      • 4、可选设置
        • 4.1 私人开发设置
        • 4.2 启用WeatherAgent
        • 4.3 禁用SSL


一、关于 Huginn

  • github : https://github.com/huginn/huginn
  • 讨论:ttps://gitter.im/huginn/huginn



什么是Huginn?

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

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

the origin of the name



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介绍性截屏!

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

Example list of agents


Event flow diagram


Detecting peaks in Twitter


Logging your location over time


Making a new agent


二、安装


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或更高版本:
    • 使用节点包管理器:npm install phantomjs
    • 使用Homebrew在OSXbrew install phantomjs
  • 使用 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

oc new-app -f https://raw.githubusercontent.com/huginn/huginn/master/openshift/templates/huginn-mysql.json

或者

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(六)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/66127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子应用设计方案86:智能 AI背景墙系统设计

智能 AI 背景墙系统设计 一、引言 智能 AI 背景墙系统旨在为用户创造一个动态、个性化且具有交互性的空间装饰体验,通过融合先进的技术和创意设计,提升室内环境的美观度和功能性。 二、系统概述 1. 系统目标 - 提供多种主题和风格的背景墙显示效果&…

基于Spring Boot的IT技术交流和分享平台的设计与实现源码

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的IT技术交流和分享平台的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于S…

单元测试3.0+ @RunWith(JMockit.class)+mock+injectable+Expectations

Jmockit使用笔记_基本功能使用Tested_Injectable_Mocked_Expectations_jmockit.class-CSDN博客 静态变量直接赋值就好,没必要mock了 测试框架Jmockit集合junit使用 RunWith(JMockit.class) 写在测试案例类上的注解 Tested 在测试案例中,写在我们要测试的类上…

PADS Logic原理图中有很多页原理图,如何(怎样)删除其中一页或者多页

我们在进行PADS Logic进行原理图设计的时候,有时候可能遇到一次性设计了很多页的原理图,比如说十几页的原理图。那么我们在进行PADS Layout的时候,可能将这些原理图绘制两块板或者多块PCB板,那么这时候我们需要将其中的一张原理图…

Elasticsearch 创建索引 Mapping映射属性 索引库操作 增删改查

Mapping Type映射属性 mapping是对索引库中文档的约束,有以下类型。 text:用于分析和全文搜索,通常适用于长文本字段。keyword:用于精确匹配,不会进行分析,适用于标签、ID 等精确匹配场景。integer、long…

《GICv3_Software_Overview_Official_Release_B》学习笔记

1.不同版本的 GIC 架构及其主要功能如下图所示: 2.GICv2m(Generic Interrupt Controller Virtualization Model)是针对ARM架构的GIC(通用中断控制器)的一种扩展, GICv2m扩展为虚拟化环境中的中断管理提供了…

【QT】找不到qwt_plot.h

系统环境: linux 20.04 qt 6.7.2 cmake 3.22 原因: Qwt没有正式的FindQwt.cmake,Qwt也没有提供QwtConfig.cmake。而且cmake不支持qmake的配置特性,也不支持读取mkspecs (.prf)文件。也就是说cmake构建的qt项目不可用qwt。 解决步…

杰发科技——使用ATCLinkTool解除读保护

0. 原因 在jlink供电电压不稳定的情况下,概率性出现读保护问题,量产时候可以通过离线烧录工具避免。代码中开了读保护,但是没有通过can/uart/lin/gpio控制等方式进行关闭,导致无法关闭读保护。杰发所有芯片都可以用本方式解除读保…

Sublime Text4 4189 安装激活【 2025年1月3日 亲测可用】

-----------------测试时间2025年1月3日------------------- 下载地址 官方网址:https://www.sublimetext.com 更新日志:https://www.sublimetext.com/download V4189 64位:https://www.sublimetext.com/download_thanks?targetwin-x64 ....…

前后端规约

文章目录 引言I 【强制】前后端交互的 API请求内容响应体响应码II 【推荐】MVC响应体III【参考】IV 其他引言 服务器内部重定向必须使用 forward;外部重定向地址必须使用 URL 统一代理模块生成,否则会因线上采用 HTTPS 协议而导致浏览器提示“不安全”,并且还会带来 URL 维护…

linux安装redis及Python操作redis

目录 一、Redis安装 1、下载安装包 2、解压文件 3、迁移文件夹 4、编译 5、管理redis文件 6、修改配置文件 7、启动Redis 8、将redis服务交给systemd管理 二、Redis介绍 1、数据结构 ①字符串String ②列表List ③哈希Hash ④集合Set ⑤有序集合Sorted Set 2、…

在线RSA pem 密钥pkcs1转pkcs8格式--支持公钥和私钥

具体前往:在线RSA密钥pkcs1转pkcs8--在线将RSA私钥/公钥的pkcs1格式转换到pkcs8格式,支持pem格式

修复OpenLinkSaas客户端在使用AtomGit账号时页面崩溃

问题描述:当一个新的AtomGit用户登录OpenLinkSaas客户端后出现了页面崩溃。 从浏览器控制台来看,是gitNoticeList出现了null。 查看代码后发现是请求atomGit api是返回的一个null的列表 接下来我们加下保护性的代码,来兼容null或undefine的情…

rocketmq-pull模式-消费重平衡和拉取PullTaskImpl线程

1、观察consumer的线程模型 使用arthas分析 MQClientFactoryScheduledThread 定时任务线程 (和push模式一致) 定时任务线程,包含如下任务: 每2分钟更新nameServer列表 每30秒更新topic的路由信息 每30秒检查broker的存活&#x…

Ungoogled Chromium127 编译指南 MacOS 篇(二)- 项目要求

1. 引言 在开始编译 Ungoogled Chromium 之前,我们需要确保系统满足所有必要的硬件和软件要求。由于浏览器编译是一个资源密集型的任务,合适的硬件配置和完整的软件环境至关重要。本文将详细介绍编译 Ungoogled Chromium 所需的各项要求。 2. 硬件要求…

51单片机——共阴数码管实验

数码管中有8位数字,从右往左分别为LED1、LED2、...、LED8,如下图所示 如何实现点亮单个数字,用下图中的ABC来实现 P2.2管脚控制A,P2.3管脚控制B,P2.4管脚控制C //定义数码管位选管脚 sbit LSAP2^2; sbit LSBP2^3; s…

调试:用电脑开发移动端网页,然后用手机真机调试

一、背景 电脑开发移动端,然后想真机调试... 二、实现 2.1、电脑和手机链接相同局域网 2.2、pnpm run dev 启动项目 2.3、浏览器访问 localhost:3001/login 2.4、Windowsr 输入cmd,在cmd输入 ipconfig 2.5、浏览器访问 ip地址加/login 2.6、手机端…

Kbuild学习知识点

1.Kbuild本质:一个可扩展、可配置的Makefile框架,递归式Makefile,菜单式配置。 2.Kbuild构成: Makefile:顶层目录下的Makefile.config:内核的配置文件arch/S(ARCH)/Makefile:跟平台架构相关的Makefilescripts/Makefile.*:通用编…

《Vue3实战教程》39:Vue3无障碍访问

如果您有疑问,请观看视频教程《Vue3实战教程》 无障碍访问​ Web 无障碍访问 (也称为 a11y) 是指创建可供任何人使用的网站的做法——无论是身患某种障碍、通过慢速的网络连接访问、使用老旧或损坏的硬件,还是仅处于某种不方便的环境。例如,…

抢先体验:人大金仓数据库管理系统KingbaseES V9 最新版本 CentOS 7.9 部署体验

一、简介 KingbaseES 是中国人大金仓信息技术股份有限公司自主研发的一款通用关系型数据库管理系统(RDBMS)。 作为国产数据库的杰出代表,它专为中国市场设计,广泛应用于政府、金融、能源、电信等关键行业,以高安全性…