首页
学习
活动
专区
圈层
工具
发布

使用 TypeScript 和依赖注入实现一个聊天机器人

翻译:疯狂的技术宅 来源:toptal 类型和可测试代码是避免错误的两种最有效方法,尤其是代码随会时间而变化。...为了简单起见,我们的机器人只做一件事:它将扫描传入的消息,如果其中包含单词“ping”,我们将用一个 Discord bot 命令让机器人对那个用户响应“pong! “。...机器人响应包含“ping”一词的消息 这是它在日志中的样子: 1> node src/index.js 2 3Logged in! 4Message received!...仅仅使用类型就可以避免许多错误。在 TypeScript 中进行依赖注入会将更多面向对象的最佳实践推向基于 JavaScript 的开发。...但有一件事是肯定的:TypeScript、单元测试和依赖注入允许我们编写更易读、松散耦合和可维护的代码 —— 无论我们正在开发什么类型的应用。

13.3K20

IoT设备的自我测试

一个 CPU 的失败是相当罕见的,但是,当然,不是未知的。部分失败是不可能的,所以预期的情况是无法运行代码,所以没机会解决失败。...失败也是未知的。 一个暂时的故障,可能是由一个杂散粒子引起的,可能会导致无法解释的、无法生成的装置崩溃。真的没有什么办法可以解决这种可能性。 一个严重的或者永久性的失败更容易被发现。 ?...软件故障可分为两大类: (1)陷入一个循环(无反应) (2)数据/代码腐烂 最常见的原因(1)实际上是某种硬件问题,导致软件正在等待一个永远不会出现的响应。...这仍然是一个软件错误,因为超时总是谨慎的。解决这种问题的最好方法就是使用某种watchdog设施。如果没有收到软件的定期响应,通常要硬件重置系统。一个专用的任务可能在多线程应用程序中做同样的工作。...指针错误是导致(2)随机内存损坏的可能原因,很难对其进行检测和诊断。幸运的是,一个常见的错误是使用无效的指针。由于这会导致一个软件中断,预防措施是确保相应处理程序的实现。

84830
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Twitch表情中的情绪分析

    爆红后的转型 尽管这些表情新鲜一时又多数短命,但 Twitch 经常会把旧表情素材挖出来回收利用,让饱经训练的情绪分析框架判断错误。...研究人员开发的 LOOVE(Learning Out Of Vocabulary Emotions)框架结构 LOOVE 在无监督训练嵌入词上大展身手,通过定期再训练和微调避免了对标记数据集的需求。...在项目中,研究者们用一个未标记的 Twitch 数据集训练一个颜文字的“伪字典”,在训练过程中,模型生成了 444,714 个单词、颜文字和 emoji 的嵌入。...研究者认为,该项目的后续价值是在于 LOOVE 框架的继续开发,借助 K 最邻近法(KNN)和 word-to-vector(W2V)的嵌入训练 Twitch 上超过 3.31 亿条的聊天数据。...论文作者总结道:框架背后的功能驱动是可用于预测未知表情情感的颜文字的伪词典。利用这个颜文字的伪词典,我们创建了一个包含 22,507 个表情的情绪表,可以说是第一个如此规模的颜文字解读案例。

    1.2K30

    在 Linkerd 中获取应用的黄金指标

    Error rate 错误率是被视为错误响应的百分比,对于 Linkerd,是通过 HTTP 状态码来衡量的:2xx 和 4xx 响应被认为是成功的,5xx 响应被认为是失败的,当然反过来我们也可以说...Linkerd 报告的是成功率而不是错误率。...需要注意虽然 4xx HTTP 响应码对应于各种形式的“未找到您请求的资源”,但这些是服务器方面的正确响应,而不是错误响应。因此,Linkerd 认为这些请求是成功的,因为服务器按照它的要求做了。...Tap 页面包含一个多个字段的表单,这些字段已根据我们点击的特定请求的链接预先填充了,比如我们这里 Path、Namespace、Resource 等字段都已经被自动填充上了,下面还有一个输出显示正在运行的当前...从这个输出中,我们可以推断出,当我们查看 emojivoto 命名空间中的所有服务时,web 服务的成功率是来自 voting 和 emoji 服务响应的总和。

    3.9K10

    从0开始构建一个Oauth2Server服务 构建服务器端应用程序

    ": "Bearer", "expires": 3600 } 可能的错误 在几种情况下,您可能会在授权期间收到错误响应。...这使您可以告诉用户采取适当的措施来纠正问题,如果您正在构建多语言网站,还可以让您有机会本地化错误消息。 重定向网址无效 如果提供的重定向 URL 无效,授权服务器将不会重定向到它。...invalid_scope: 请求的范围无效、未知或格式错误。 server_error: 授权服务器遇到意外情况,无法满足请求。...用户体验与注意事项 为了确保授权码授予的安全,授权页面必须出现在用户熟悉的 Web 浏览器中,不得嵌入 iframe 弹出窗口或移动应用程序的嵌入式浏览器中。...如果它可以嵌入到另一个网站中,用户将无法验证它是合法服务而不是网络钓鱼尝试。

    94320

    Linkerd 2.10(Step by Step)—使用请求跟踪调试 gRPC 应用程序

    您将在这里看到的第一件事是 Web deployment 正在从 vote-bot (emojivoto 中包含的 deployment 以持续生成低水平的实时流量)中获取流量。...web deployment 还有两个传出依赖项,emoji 和 voting。...当 emoji deployment 成功处理来自网络的每个请求时, 看起来 voting deployment 失败了一些请求!...依赖 deployment 中的失败可能正是导致 Web 返回错误的原因。 让我们进一步向下滚动页面,我们将看到传入和传出 web 的所有流量的实时列表。...这是因为请求失败并显示 gRPC status code 2, 这是您从代码中看到的常见错误响应。Linkerd 无需任何其他配置即可了解 gRPC 的响应分类!

    84730

    Linkerd服务网格的基础知识和服务配置

    别担心,这些错误是故意的。(我们可以使用 Linkerd 来识别问题)。...(Success rates) 请求率(Request rates) 延迟分布百分位数(Latency distribution percentiles) 为了进一步深入,可以使用 top 来实时查看正在调用哪些路径...除了通过 OpenAPI 可以生成服务配置文件之外,也可以通过 Protobuf 来生成,gRPC 协议使用 protobuf 对请求和响应进行编码和解码,这意味着每个 gRPC 服务也有一个 protobuf...如下命令所示: $ linkerd viz profile emoji-svc --tap deploy/emoji --tap-duration 10s -n emojivoto > auto-emoji-sp.yaml...同样在服务配置文件之前,我们只知道 web 服务正在返回错误,现在我们错误是来自与 /api/vote 路由,另外的 [DEFAULT] 默认路由表示当服务配置文件中没有路由匹配请求时 Linkerd

    38910

    Linkerd服务网格中重试与超时和金丝雀发布

    当一个请求失败时,Linkerd 的重试机制可以自动重试请求,以期获得成功的响应。当特定实例上的特定路由返回错误时,Linkerd 可以简单地重试该请求,从而增加请求成功的可能性。...在该限制内,如果请求没有得到响应,Linkerd将终止请求并返回错误。超时可以防止长时间等待造成的资源浪费,并提高系统的性能和可用性。...正如我们前面提到过的,Linkerd 仅将响应中的 5XX 状态码视为错误,而 2XX 和 4XX 都被识别为成功状态码。...由于请求在收到任何实际响应之前被取消,超时根本不会计入实际请求量。这意味着当配置超时时,有效请求率可能高于实际请求率。此外,如果在超过超时时收到响应,则请求可能被视为实际成功但有效失败。...weight: 90 - name: web-svc-2 port: 80 weight: 10 在此 HTTPRoute 中,是parentRef中的web-svc正在与之通信的服务资源

    50410

    Linkerd 通过 ServiceProfile 实现超时和重试

    同样在服务配置文件之前,我们只知道 web 服务正在返回错误,现在我们错误是来自与 /api/vote 路由,另外的 [DEFAULT] 默认路由表示当服务配置文件中没有路由匹配请求时 Linkerd...同样由于某些临时错误:如果特定实例上的特定路由返回错误,并且简单地重试该请求可能会导致响应成功,当然重要的是要意识到简单地重试请求并不能保证成功响应。...如果底层错误不是暂时的,或者如果 Linkerd 无法重试,那么应用程序仍然需要处理这些错误。 在实践中,实现重试可能会很麻烦。...现在我们不仅知道 web 服务和 voting 服务之间发生了错误,而且也知道了 VoteDoughnut 路由发生了错误。接下来我们可以使用重试来尝试解决错误,同时也可以要求开发人员进行代码调试。...正如我们前面提到过的,Linkerd 仅将响应中的 5XX 状态码视为错误,而 2XX 和 4XX 都被识别为成功状态码。

    1K20

    中文大语言模型提示工程:解锁AI力量的密钥(完整优化版)

    1.3 分词歧义陷阱 # 经典歧义案例 text = "南京市长江大桥" # 错误分词:南京/市长/江大桥 → 正确:南京市/长江/大桥 提示词中需明确实体边界:“请分析’南京市长江大桥’的地理位置,注意专有名词识别...” 二、中文提示工程六脉神剑(附实战代码) 2.1 结构化模板法 请按以下结构生成小红书风格的春日野餐文案: 【主题】春日限定 【关键词】樱花/气泡水/格子餐布/慵懒时光 【风格要求】emoji表情穿插...包含古风emoji: 优化输出 “立’刻’贴秋膘?来杯【观色轻乳茶】!...方言保护工程数据集:67种地方方言对照 五、避坑指南:中文场景常见误区 5.1 过度西化 错误示例 “生成用户画像:Persona包括Demographic…” 修正方案 “创建用户画像:需包含年龄..."中国化"演进 文化嵌入模型:清华团队正在训练专攻古诗词生成的"墨韵"模型 方言适配器:阿里达摩院推出"方言Prompt插件" 行业术语库:法律、医疗等垂直领域的专用提示框架----

    36900

    AlphaEarth Foundations:AI重塑地球测绘技术

    平均而言,AlphaEarth Foundations的错误率比其他模型低24%,展示了其卓越的学习效率。该模型生成的“嵌入”数据包含64个维度,能以极高的效率和精度代表地表信息。...卫星嵌入数据集的实际应用基于AlphaEarth Foundations的“卫星嵌入数据集”已在某机构的地理信息处理平台中发布。这是同类数据集中规模最大的之一,每年包含超过1.4万亿个嵌入足迹。...全球多家机构正在使用该数据集生成功能强大的定制地图:全球生态系统图谱倡议:利用该数据集帮助各国将未测绘的生态系统(如沿海灌木丛、极度干旱沙漠)进行分类,这对于确定保护工作的优先区域至关重要。...MapBiomas(巴西):正在测试该数据集,以更深入地了解巴西全国的农业和环境变化,为亚马逊雨林等关键生态系统的保护策略和可持续发展计划提供信息。...某机构的代表反馈称:“卫星嵌入数据集正在彻底改变我们的工作,它帮助各国绘制未知生态系统地图,这对于精确锁定保护工作的重点至关重要。”

    9010

    Alexa利用自然语言理解系统识别对话中与问题不相关的部分

    为了适当地回应所说的内容,从天气到附近的餐馆或运输中的包裹,它们需要知道正在处理的主题是否超出了知识范围。...亚马逊的研究人员使用自然语言理解(NLU)系统解决了这个问题,该系统同时识别域内(已知)和域外(未知)主题。结果将于9月初在印度海得拉巴举行的Interspeech会议上公布。...如果自然语言理解(NLU)系统试图将域分配给域外话语,结果可能是无意义的响应。”...团队提供“词级”和“字符级”信息(特别是嵌入,或代表单词的100维空间中的点),以及组成字符。...神经网络产生了有用的个体特征的矢量摘要,该团队在将它们传递给第二个 Bi-LSTM 之前与上述嵌入相结合。它学会了识别整个输入的摘要。 平均而言,研究人员的系统将给定目标的分类准确度提高了6%。

    60930

    记调试 RX-Explorer-WAS 文件管理器 UI 未响应问题

    然而某天我发现打开 RX-Explorer-WAS 文件管理器之后,界面是黑屏且没有响应。作为一个成熟的开发者,遇到软件卡住的问题,自然就要自己尝试调查问题啦。...,然后勾选代码类型为托管类型 遇到这类未响应问题,优先勾选托管代码调试,附带加上托管(本机编译)选项,不先勾选本机调试。...我就是在这里思路错误的,我一直尝试追踪是加载哪个 DLL 时出现卡顿的。...既然是经验贴,我就不掩盖我的错误调试过程了,按照我的一路调试顺序告诉大家啦 我点击停止调试,准备这一次只开启本机调试方式进行附加调试。...那这个线程正在加载啥呢?为什么需要加载呢? 通过调用堆栈可以看到一个陌生的非托管 DLL 正在加载过程中干活 ... user32.dll!

    11310

    HTTP权威指南

    1、HTTP报文 从客户端发往服务器的HTTP报文称为请求报文,从服务器发往客户端的报文称为响应报文。...二者格式很类似: HTTP报文包含了三个部分: 起始行 第一行就是起始行,请求报文中用来说明要做什么,在响应报文中说明出现了什么情况 首部字段 起始行后面有0个或者多个首部字段,每个字段都是一个...服务器处理HTTP请求,返回响应。 浏览器检查HTTP响应是否为一个重定向(3XX结果状态码)、一个验证请求(401)、错误(4XX、5XX)等等,这些都需要根据具体情况分类处理。...浏览器接收HTTP响应并且可能关掉TCP连接,或者是重新建立连接使用新情求,获得新响应。 浏览器解码响应,如果响应可以缓存,则存入缓存。 浏览器显示HTML页面。...浏览器发送请求获取嵌入在HTML中的资源(html,css,javascript,图片,音乐······),对于未知类型,会弹出对话框。 浏览器发送异步请求。 页面全部渲染结束。

    1.1K10

    FireEye Trellix 扫描及查找威胁

    IVX 使分析师能够 直观地了解恶意软件在虚像中的行为方式,并与恶意软件进行安全交互,以 测试对策的有效性,从而加速事件响应。...主要技术特点:主动分析未知代码和可疑 Web 对象对象针对各种浏览器、插件、应用 程序和操作环境执行。...无特征码 IVX 引擎可识别零日漏洞的利用 情况,确认正在进行的Web攻击,阻止通过多种协议进行的回调和后续恶意软件下载。在虚拟环境中引爆所有电子邮件附件安全且准确地分析所有附件,以识别零日漏洞。...检查 URL包括:嵌入在电子邮件、MS 365文 档、PDF和存档文件中的URL;通 过URL(包括FTP链接)下载的文 件;混淆、欺骗、缩短和动态重定向的URL;凭据式网络钓鱼和仿 冒URL。...加速调查和响应IVX可在本地部署或作为云原生 服务使用,快速扫描提交的内容,识别恶意软件。

    26400

    Docker Hub 成了危险的陷阱。。。

    Sysdig的安全研究者近日发现Docker Hub中暗藏着超过1600个恶意镜像,可实施的攻击包括加密货币挖矿、嵌入后门/机密信息、DNS劫持和网站重定向等。...Docker Hub 成了危险的陷阱 除了经过Docker Library Project审核并被验证为可信的镜像外,该服务上还有数十万个状态未知的镜像。...第二常见的是嵌入机密信息/后门的镜像,共发现281例。这些镜像中嵌入的秘密是SSH密钥、AWS凭证、GitHub令牌、NPM令牌等(下图)。...攻击者还利用Typosquatting(输入错误沉淀)方法来蹲守那些不小心错误输入流行项目名字的用户,该方法虽然这不会产生大量受害者,但仍能稳定贡献感染量(下图)。...问题持续恶化 Sysdig表示,到2022年,从Docker Hub提取的所有镜像中有61%来自公共存储库,比2021年的统计数据增加了15%,因此用户面临的风险正在上升。

    1.3K10

    物联网消防

    强健的网络上提供更智能、更快、更安全的解决方案 由于物联网(IoT),防火和消防安全设备正在经历一场革命。...尽管安全设备和训练得到改善,消防员面临的最大危险是他们到达现场时必须处理的所有未知因素。大楼的布局是什么?它还要多久才能倒塌?里面还有多少人?哪里是进出的最佳地点?...想象一下,如果技术能帮助解决这些未知的问题,让消防员们更有信心地行动。正如消防救援所指出的,许多部门已经采用了智能技术,比如热摄像头。...轻量级的基于RFID的跟踪器可以随时显示团队成员的位置,可以嵌入任何套装中,与链接的网络持续通信。...通过使用连接的热摄像头随时监控每个团队成员的位置,指挥官可以开始绘制响应位置,并为团队的移动提供精确的指导。

    4.2K30
    领券