Month: September 2024

🙀 Haskell:一门让你脑洞大开的编程语言🙀 Haskell:一门让你脑洞大开的编程语言

🤔️ Haskell 究竟是何方神圣? 各位看官,你可曾想过,编程语言的世界,除了像Java、Python这般按部就班的“命令式”语言,还存在着一片“函数式”的桃花源?今天,在下就带您走进这片神奇的领域,一探Haskell这门语言的奥秘。 Haskell,它可不是什么新兴的小玩意儿,人家可是出身名门,由一群身怀绝技的计算机科学家(个个都是博士学位)在1987年联手打造的。这群大牛的目标可不是随便玩玩,他们要创造一门“纯粹函数式编程语言”,一种与命令式语言截然不同的编程方式。 在命令式语言中,我们就像指挥士兵一样,告诉计算机一步一步该做什么,变量的值也会随着程序的运行而不断改变。但Haskell却反其道而行之,它更像是用数学公式来描述问题。例如,我们要计算阶乘,只需要告诉Haskell“阶乘就是从1到某个数的所有整数的乘积”,而不是像命令式语言那样,写一堆循环和赋值语句。 ✨ Haskell 的独门绝技 Haskell 有三大法宝:纯粹性、惰性和静态类型。 纯粹性,意味着Haskell的函数就像数学函数一样,只依赖于输入的参数,不会产生任何副作用。也就是说,同样的输入,必然得到同样的输出,这在数学上叫做“引用透明”。这种特性使得Haskell程序非常容易理解和调试,因为你不需要担心函数会偷偷摸摸地修改其他变量的值。 惰性,则是指Haskell的函数只有在需要的时候才会被求值。就像一个懒汉,不到最后一刻绝不动弹。这种特性使得Haskell可以处理无限大的数据结构,因为我们只需要计算需要的那一部分。 静态类型,意味着Haskell会在编译时检查程序的类型是否正确,避免了在运行时才发现错误的尴尬。而且,Haskell的类型系统非常强大,可以自动推导出很多类型,省去了我们手动标注类型的麻烦。 🧰 Haskell 入门指南 说了这么多,各位看官是不是已经迫不及待想要体验一下Haskell的魅力了呢?别急,在下这就为您奉上入门指南。 首先,您需要一个编辑器和一个编译器。编辑器您可以随意选择,而编译器我们推荐使用GHC,它是最流行的Haskell编译器。为了方便起见,您可以直接下载ghcup,它包含了GHC以及许多常用的库。 安装好ghcup后,您就可以开始编写Haskell程序了。Haskell程序通常以.hs作为扩展名。您可以使用任何文本编辑器来编写Haskell代码,然后使用GHC编译器来编译和运行程序。 GHC还提供了一个交互式环境,您可以在里面直接输入Haskell表达式并查看结果,非常适合学习和调试程序。要进入交互式环境,只需在终端中输入ghci命令即可。 🚀 Haskell 的应用领域 Haskell 虽然是一门相对小众的语言,但它在某些领域却有着不可替代的优势。例如: 🎉 结语 Haskell 是一门优雅、强大且充满乐趣的编程语言。它或许不像其他语言那样普及,但它所蕴含的编程思想和技术却值得每一位程序员学习。 [...]

Racket 的极速穿梭:redis-rkt 🚀Racket 的极速穿梭:redis-rkt 🚀

在数据洪流奔涌的时代,Redis 犹如一片高效的数据绿洲,为我们提供了高速缓存和数据存储的绝佳方案。而在 Racket 这片函数式编程的乐土中,如何优雅而快速地连接 Redis,成为了许多开发者心头的一份渴望。今天,就让我们踏上一段奇妙的代码旅程,探索 redis-rkt 这座连接 Racket 与 Redis 的桥梁,感受它带来的极速与便捷。 初识 redis-rkt 💡 redis-rkt 是一个专为 Racket 量身打造的 Redis 客户端库,它以速度快、风格地道著称。 安装 redis-rkt 🧰 在 Racket 的世界里,安装 redis-rkt 就像一阵清风,只需轻轻敲击几下键盘: 与 Redis [...]

🤔 Racket语言:自建DSL,编程新姿势🤔 Racket语言:自建DSL,编程新姿势

💡 一种成熟且实用的语言 Racket,就像一位技艺精湛的老工匠,经历了时间的考验,愈发成熟稳重。自诞生之初便专注于跨平台图形编程,无论是Windows、macOS还是Linux,都能在其支持下流畅运行。 Racket不仅功能全面,而且拥有丰富的工具库,如同一个装满奇珍异宝的百宝箱,从构建Web服务器到进行数学和科学模拟,都能找到趁手的工具。 特性 描述 包管理系统 强大的包管理系统,轻松安装和管理第三方库,如同一个高效的物流系统,为你的项目提供源源不断的资源。 GUI框架 内置GUI框架,方便构建图形界面应用程序,如同一位技艺精湛的画师,让你的程序拥有赏心悦目的外观。 独立二进制文件 可生成独立运行的二进制文件,方便程序分发,如同将你的程序打包成精美的礼盒,可以轻松赠予他人。 外部接口 提供外部接口,方便与其他语言进行交互,如同一位优秀的翻译官,能够让你的程序与其他语言无障碍沟通。 🚀 可扩展性:赋予你创造的力量 Racket最令人着迷之处在于其强大的可扩展性,就像一块神奇的橡皮泥,你可以根据自己的需求随意塑造。它允许程序员使用宏来定义自己的语法结构,甚至可以创建全新的领域特定语言(DSL)。 宏:程序员的魔法棒 Racket的宏系统就像程序员手中的魔法棒,可以将重复的代码段抽象成简洁的语法结构,极大地提高了代码的表达力和可维护性。 例如,上面的代码展示了如何使用宏定义一个 time-it 语法,用于测量代码块的执行时间。使用 time-it 语法后,你就可以像使用普通函数一样来测量代码的执行时间,而无需编写重复的计时代码。 DSL:为特定领域量身定制的语言 Racket的宏系统强大到足以创建DSL,就像一位技艺高超的工程师,可以根据你的需求定制专属工具。通过DSL,你可以使用更简洁、更自然的语法来解决特定领域的问题。 💪 健壮性:值得信赖的伙伴 Racket非常注重程序的健壮性,它支持高阶软件契约和安全的渐进类型,就像一位经验丰富的安全专家,为你的程序保驾护航。 ✨ [...]

🔥 内容审核的利器:RWKV的多模态实验🔥 内容审核的利器:RWKV的多模态实验

在当今信息爆炸的时代,互联网内容审核如同守护网络净土的卫士,默默地保护着我们免受仇恨言论、暴力图片、虚假信息等不良内容的侵害。 👿 然而,传统的审核手段却如同拿着老式火铳的士兵,面对日新月异的网络内容,显得力不从心。 幸运的是,大型语言模型(LLM)的出现,为内容审核带来了革命性的改变。 💪 LLM就像装备了先进武器的战士,能够更精准、高效地识别和过滤有害信息。在这篇文章中,我们将介绍一项利用RWKV模型进行内容审核的最新研究,并探讨其在构建更安全、更友好的网络环境方面的巨大潜力。 📚 相关工作 在深入探讨RWKV模型之前,让我们先来看看内容审核领域的一些重要研究。 1. 以规则为示例:利用逻辑规则进行可解释的仇恨言论检测 传统的基于规则的启发式方法虽然透明且易于解释,但在灵活性和鲁棒性方面存在不足。深度学习模型虽然在克服这些限制方面显示出潜力,但往往缺乏透明度,导致信任度和采用率不高。为了解决这个问题,RBE应运而生。RBE通过学习仇恨内容及其逻辑规则的丰富嵌入表示,允许通过规则基础进行可解释的预测。实验结果表明,RBE在三个基准数据集上的监督和非监督环境中都优于最先进的分类器,展示了其有效性和改进内容审核系统的潜力。 2. 从混合模态的不对称角度重新思考多模态内容审核 传统的单模态审核系统可能难以检测跨越多种模态的有害内容,例如结合了图像和文本的表情包。为了解决这个问题,AM3采用了一种独特的不对称融合架构,在有效结合不同模态信息的同时保留了每种模态的独特特征。为了解决视觉和语言之间的语义不对称性,AM3采用了跨模态对比损失来学习多模态内容传达的独特知识。大量实验表明,AM3在多模态和单模态内容审核任务上均优于现有方法,展示了其在处理网络上各种有害内容方面的有效性。 🗃️ 数据集和数据准备 为了训练和评估内容审核模型,研究人员创建了一个包含文本、图像、音频和视频的多模态数据集。 模态 来源 内容类型 文本 Civil Comments, OIG Moderation, OpenAI moderation 用户帖子、对话 图像 [...]

🎶 用 Lisp 演奏音乐:Racket 图形界面编程初探🎶 用 Lisp 演奏音乐:Racket 图形界面编程初探

编程的世界里,我们习惯于用代码构建各种奇妙的功能,但如果能用代码“演奏”出美妙的音乐,那岂不是更加有趣?今天,就让我们一起踏上这段奇妙的旅程,用 Lisp 的方言 Racket 来编写一个可以生成音调的图形界面程序,感受代码与音乐碰撞的魅力! 👋 初识 Racket Racket 作为 Lisp 的一种方言,以其强大的跨平台 GUI 库而闻名。与用代码构建另一个计算器不同,我们将尝试构建一个可以生成音调的 GUI 界面。 ![示例截图][] 在开始之前,我们需要先安装 Racket。好消息是,大多数 Linux 发行版的软件仓库中都包含 Racket,所以安装起来非常方便。安装完成后,我们就可以开始编写代码了。 Racket 的一大优势是它拥有大量的内置库。在这里,我们将使用 racket/gui 库来构建我们的 GUI 界面。 Racket 的 [...]

🌟 探索 giu:一个即时模式 GUI 框架🌟 探索 giu:一个即时模式 GUI 框架

在当今软件开发的世界中,用户界面的设计与实现是至关重要的。传统的保留模式(如 Qt 和 WxWidget)虽然功能强大,但却常常给开发者带来不小的复杂性。今天,我们将深入探索 giu,一个基于 Go 语言的即时模式 GUI 框架,它以其简洁性和高效性为开发者提供了一种全新的选择。 🛠️ 什么是即时模式 GUI? 即时模式 GUI 的核心理念是“控件不保留任何内部状态”。与之相对的保留模式 GUI 需要控件管理自己的状态,这通常使得界面更新和状态管理变得复杂。通过使用即时模式,开发者可以更直观地构建用户界面,简化了状态管理的负担。 📐 简单易懂的布局系统 在 giu 中,布局系统是声明式的,采用了简单易用的接口设计。每个控件都实现了 Widget 接口,并包含一个 Build() 方法来构建控件。你可以通过 giu.Layout 来管理多个控件,如下所示: 这使得创建动态 UI [...]

🌐 MaxKB 文档:开启知识管理的新篇章🌐 MaxKB 文档:开启知识管理的新篇章

在信息爆炸的时代,知识的管理与获取变得尤为重要。MaxKB作为一款基于大模型的开源知识库问答系统,致力于为用户提供高效、便捷的知识管理解决方案。本文将深入探讨MaxKB文档的各个方面,包括系统架构、功能特点以及如何利用其强大的工具集来组织和获取知识。 📚 产品介绍 MaxKB不仅仅是一个知识库,它是一个集成了多种功能的知识管理平台。用户可以通过它来上传、管理和查询文档,甚至可以将文档与Web站点知识库进行同步。以下是MaxKB的主要产品特性: 🚀 系统架构 MaxKB的系统架构设计精巧,旨在提供高效的性能和良好的用户体验。其核心组件包括: ⚙️ 安装部署 MaxKB的安装部署过程简单易行,用户可以选择离线或在线安装方式。以下是安装的基本步骤: 📥 上传文档 上传文档是MaxKB的基本操作之一。用户只需点击“上传文档”按钮,即可通过文件拖拽或直接选择文件进行上传。在上传过程中,系统会提示用户选择分段规则,默认为智能分段。用户可以随时生成预览,确保文档的分段符合预期。 🌐 Web 站点知识库文档 MaxKB支持从Web站点直接导入文档,用户可通过输入文档链接及选择器来实现批量导入。这一功能大大提高了知识库的构建效率,尤其在处理大量在线资源时,用户可以选择替换同步或整体同步的方式来更新知识库。 🔄 文档同步与管理 在管理Web站点知识库时,用户可以: 📊 分段管理 分段管理是MaxKB的一大亮点,用户可以对导入的文档进行详细的分段操作。通过添加、编辑、迁移和删除分段,用户能够精确控制文档的结构和内容。 ✏️ 添加与编辑分段 在添加分段时,用户需填写分段标题和内容,同时支持Markdown样式编辑。为提高检索效果,建议为每个分段设置关联问题,这样在用户提问时,系统可以优先匹配相关内容。 🛠️ 开发文档与API MaxKB还提供了全面的开发文档,帮助开发者快速上手。用户可以学习如何通过应用API KEY进行对话,或者如何在本地环境中部署模型。API接口的设计简洁明了,便于开发者进行二次开发和功能扩展。 [...]

氢能革命:驱动未来的绿色动力氢能革命:驱动未来的绿色动力

🌟 引言:能源新纪元的曙光 想象一下,在不远的将来,您驾驶着一辆汽车,悄无声息地穿梭在繁华的城市街道上。车辆的唯一排放物是清澈的水滴,而非有害的尾气。这不是科幻小说的场景,而是氢能源技术即将为我们带来的美好未来。在全球共同努力实现碳中和的背景下,氢能作为一种清洁、高效的能源载体,正在引领一场前所未有的能源革命。 今天,让我们深入探讨氢能源的世界,揭示它如何在各个领域中发挥作用,以及它将如何重塑我们的能源格局。我们将聚焦于一项创新技术——氢能与天然气混合系统,这项技术有望成为能源转型过程中的关键一环。 🌈 氢能:未来能源的彩虹桥 氢,这个宇宙中最简单也最丰富的元素,正在成为连接现在和未来的彩虹桥。它不仅是一种清洁的能源载体,更是一种versatile(多才多艺)的能源明星。想象一下,氢就像是能源界的变形金刚,可以在不同的场景中变换形态,满足各种需求。 在交通领域,氢燃料电池汽车就像是道路上的”水喝侠”,只喝水、只排水,完美诠释了零排放的概念。在工业领域,氢能可以取代传统化石燃料,成为高温工业过程的绿色能源供应商。甚至在电力领域,氢能还能充当”电力银行家”,存储多余的可再生能源,在需要时再转换回电力。 然而,就像任何新兴技术一样,氢能的大规模应用仍面临着挑战。生产成本高、基础设施不足、储存和运输困难等问题,都像是横亘在氢能普及道路上的”拦路虎”。但是,科学家和工程师们并没有被这些困难吓倒,而是开始思考:如何让氢能更好地与现有能源系统”握手言和”? 🤝 氢气与天然气的”联姻”:能源转型的绝妙桥梁 在这个背景下,一个创新的想法应运而生:将氢气与天然气混合,创造一种新型的能源载体。这就像是能源界的”强强联手”,既保留了天然气的优势,又引入了氢气的清洁特性。这种混合气体被亲切地称为”氢化天然气”或”氢气强化天然气”。 想象一下,如果天然气是一杯醇厚的咖啡,那么加入氢气就像是往咖啡里加入一份健康的燕麦奶。它不仅能降低咖啡的”热量”(即减少碳排放),还能为这杯饮品增添新的营养(即提高能源效率)。这种混合方式巧妙地利用了现有的天然气基础设施,同时逐步引入更多的氢气,为未来的纯氢能源系统铺平道路。 🔬 深入研究:氢气-天然气混合系统的奥秘 让我们戴上科学家的眼镜,仔细观察这个创新系统的内部运作。研究人员发现,在天然气中添加氢气不仅可以降低碳排放,还能提高燃烧效率。这就像是给汽车换上了一种新型的”超级燃料”,既环保又给力。 根据研究,在天然气中添加20%的氢气可以显著降低二氧化碳排放,同时不会对现有的天然气设备造成太大影响。这个比例就像是在调配一道完美的鸡尾酒,既能保持原有的风味,又能带来令人耳目一新的体验。 数学模型显示,混合气体的燃烧特性可以用以下公式描述: $H_{mix} = x_H \cdot H_H + (1-x_H) \cdot H_{NG}$ 其中,$H_{mix}$是混合气体的热值,$x_H$是氢气的体积分数,$H_H$和$H_{NG}$分别是氢气和天然气的热值。 这个公式看起来可能有点复杂,但它实际上就像是在计算一道菜的热量。想象你在制作一份沙拉,$x_H$就是健康的绿叶菜的比例,而$(1-x_H)$则是较高热量的配料比例。通过调整这两者的比例,你可以得到一份既美味又健康的沙拉。同样,通过调整氢气和天然气的比例,我们可以得到一种既清洁又高效的能源混合物。 🏭 [...]

☀️ 光伏发电预测:多尺度RWKV与二维时间卷积网络的完美邂逅☀️ 光伏发电预测:多尺度RWKV与二维时间卷积网络的完美邂逅

在能源需求日益增长的今天,太阳能以其清洁、可再生的优势,成为了未来能源结构中不可或缺的一部分。然而,光伏发电系统受天气影响较大,输出功率具有间歇性、波动性和随机性,给电网的稳定运行带来了挑战。因此,准确预测光伏发电功率,对于优化电力调度、保障电网安全稳定运行至关重要。 🧲 光伏发电预测:知己知彼,百战不殆 光伏发电预测模型可以分为三大门派:物理模型、数据驱动模型和混合模型。 物理模型,江湖人称“白盒模型”,就像一位精通天文地理的谋士,利用气象数据和物理公式,对光伏发电过程进行模拟。然而,这位谋士过于依赖天气预报的准确性,一旦遇到突发天气变化,就会方寸大乱,预测结果也不尽如人意。 数据驱动模型则像一位经验丰富的江湖老手,凭借对历史数据的敏锐洞察力,总结规律,预测未来。其中,统计模型擅长利用数学公式,例如马尔可夫链、自回归模型、指数平滑模型等,捕捉历史数据中的线性关系。而机器学习模型,例如支持向量机、循环神经网络、卷积神经网络等,则更像武林高手,能够学习历史数据中复杂的非线性关系,预测精度更高。 混合模型则集各家之所长,融合了物理模型、统计模型和机器学习模型的优点,能够更全面地考虑各种影响因素,进一步提高预测精度。 💡 MSRWKV-2DTCN:预测江湖的新星 近年来,Transformer模型凭借其强大的特征提取能力,在自然语言处理领域叱咤风云。其改进版本RWKV模型,更是以其高效的并行计算能力和对长序列数据的处理能力,在时间序列预测领域崭露头角。 然而,传统的RWKV模型在捕捉长期依赖关系和提取复杂变量间相互依赖关系方面仍有不足。为了解决这些问题,本文提出了一种名为MSRWKV-2DTCN的混合模型,将多尺度RWKV与二维时间卷积网络(2D TCN)相结合,用于短期光伏发电功率预测。 🔍 MSRWKV-2DTCN:庖丁解牛,逐层解析 MSRWKV-2DTCN模型的框架如上图所示,其核心思想是利用快速傅里叶变换(FFT)识别历史数据中的周期性模式,并结合多尺度时间混合块和多尺度二维时间卷积网络,学习复杂的时间依赖关系和变量间相互依赖关系。 1. 快速傅里叶变换(FFT):洞察数据周期性的火眼金睛 俗话说:“万物皆有规律”。光伏发电数据也不例外,其功率输出受日照强度、温度等因素影响,呈现出明显的周期性变化。快速傅里叶变换(FFT)就像一双火眼金睛,能够将时间序列数据从时域转换到频域,帮助我们识别数据中隐藏的周期性模式。 2. 多尺度时间混合块:捕捉时间依赖关系的多面手 传统的RWKV模型在时间混合块中,只关注了前一时刻的状态和当前时刻的状态,忽略了更长时间跨度上的依赖关系。为了解决这个问题,MSRWKV-2DTCN模型引入了一个多尺度时间混合块,将FFT识别出的多个周期信息融入其中。 想象一下,如果我们想要预测未来一周的天气,不仅要考虑昨天的天气情况,还要考虑上周同期、上个月同期甚至去年同期的天气情况。多尺度时间混合块就像一位经验丰富的预报员,能够综合考虑不同时间尺度上的信息,提高预测的准确性。 3. 多尺度二维时间卷积网络(2D TCN):提取变量间相互依赖关系的利器 光伏发电功率不仅受历史数据的影响,还与气象条件密切相关。为了捕捉这些复杂的变量间相互依赖关系,MSRWKV-2DTCN模型用多尺度二维时间卷积网络(2D TCN)取代了RWKV模型中的通道混合块。 二维时间卷积网络就像一张纵横交错的网,能够捕捉不同变量在不同时间点上的相互影响。例如,气温升高会导致光伏板温度升高,从而影响发电效率。多尺度二维时间卷积网络能够学习这些复杂的相互关系,进一步提高预测精度。 🏆 MSRWKV-2DTCN:实验结果验证实力 [...]

大语有道:DSPy为AI系统开发带来革命性变革大语有道:DSPy为AI系统开发带来革命性变革

🌟 引言:人工智能的新纪元 在人工智能领域,大型语言模型(LLMs)的能力正在日新月异地扩展,它们就像是被赋予了无限潜能的魔法师。然而,要驾驭这些”魔法师”并非易事。传统的方法往往需要精心设计复杂的提示、生成大量数据进行微调,还要手动引导模型遵循特定领域的约束。这个过程不仅繁琐耗时,还容易出错,严重依赖人工干预。 但是,现在有一位”魔法教练”来了 – DSPy框架。它就像是一位经验丰富的魔法导师,为我们指明了一条系统优化语言模型提示和权重的新道路。有了DSPy,开发者可以用最小的人工努力,构建出复杂而强大的AI应用。 让我们一起踏上这段奇妙的旅程,探索DSPy的核心原理、模块化架构以及它所提供的强大功能。我们还将通过实际的例子,展示DSPy如何彻底改变我们开发基于大型语言模型的AI系统的方式。 🧙‍♂️ DSPy:AI系统开发的魔法导师 DSPy就像是一位睿智的魔法导师,它将程序的流程(模块)和每个步骤的参数(语言模型提示和权重)分离开来。这种分离使得我们可以系统地优化语言模型的提示和权重,从而构建出更可靠、更可预测、更符合特定领域约束的复杂AI系统。 传统上,使用大型语言模型开发AI系统是一项繁重的工作。开发者需要将问题分解成多个步骤,为每个步骤精心制作复杂的提示,生成大量合成样本用于微调,并手动引导语言模型遵守特定的约束。这种方法不仅耗时,而且容易出错。即使对管道、语言模型或数据做出微小的改动,也可能需要大量重新设计提示和微调步骤。 DSPy通过引入一种新的范式 – 优化器来解决这些挑战。这些由语言模型驱动的算法可以根据您想要最大化的指标来调整语言模型调用的提示和权重。通过自动化优化过程,DSPy使开发者能够以最少的人工干预构建强大的AI系统,大大提高了语言模型输出的可靠性和可预测性。 🏗️ DSPy的模块化架构:搭建AI魔法城堡 DSPy的核心是一个模块化架构,它就像是一套精心设计的魔法积木,可以用来搭建复杂的AI系统。框架提供了一系列内置模块,这些模块抽象了各种提示技术,例如dspy.ChainOfThought(思维链)和dspy.ReAct(推理和行动)。这些模块可以组合成更大的程序,使开发者能够构建出满足特定需求的复杂管道。 每个模块都封装了可学习的参数,包括指令、少量示例和语言模型权重。当调用一个模块时,DSPy的优化器可以微调这些参数以最大化所需的指标,确保语言模型的输出符合指定的约束和要求。 这种模块化的设计就像是给开发者提供了一套强大而灵活的魔法工具箱。无论是构建简单的问答系统,还是复杂的多步骤推理管道,开发者都可以轻松地组合和定制这些模块,创造出功能强大、性能优异的AI应用。 🔮 DSPy的优化魔法:让AI更聪明 DSPy引入了一系列强大的优化器,这些优化器就像是能让AI变得更聪明的魔法咒语。它们利用语言模型驱动的算法来调整语言模型调用的提示和权重,在最大化指定指标的同时,确保输出遵守特定领域的约束。 让我们来看看DSPy提供的一些关键优化器: 通过利用这些优化器,开发者可以系统地优化他们的AI系统,确保高质量的输出,同时遵守特定领域的约束和要求。 🚀 DSPy实战:构建智能问答系统 为了展示DSPy的强大功能,让我们一起来构建一个基于检索增强生成(RAG)的问答系统。这个系统就像是一位博学多识的助手,能够回答复杂的问题。 首先,我们需要配置语言模型(LM)和检索模型(RM): 接下来,我们加载HotPotQA数据集。这个数据集包含了一系列复杂的问答对,通常需要多跳推理才能回答: 然后,我们定义回答生成任务的签名: [...]