首页 文章 精选 留言 我的

精选列表

搜索[外呼机器人],共10001篇文章
优秀的个人博客,低调大师

千呼万唤始出来:Apache Spark2.0正式发布

我们很荣幸地宣布,自7月26日起Databricks开始提供Apache Spark 2.0的下载,这个版本是基于社区在过去两年的经验总结而成,不但加入了用户喜爱的功能,也修复了之前的痛点。 本文总结了Spark 2.0的三大主题:更简单、更快速、更智能,另有Spark 2.0内容的文章汇总介绍了更多细节。 两个月前,Databricks发布了Apache Spark 2.0的技术预览版,如下表所见,目前我们有10%的集群都在使用这个版本,根据客户使用新版的经验及反馈意见,新版得以发布,Databricks很开心能成为Spark 2.0的首个商业供应商。 随着时间推移,各版本Apache Spark的使用率 现在,我们来深入了解一下Apache Spark 2.0的新特性。 一、更简单:ANSI SQL与更合理的API Spark让我们引以为豪的一点就是所创建的API简单、直观、便于使用,Spark 2.0延续了这一传统,并在两个方面凸显了优势: 标准的SQL支持; 数据框(DataFrame)/Dataset (数据集)API的统一。 在SQL方面,我们已经对Spark的SQL功能做了重大拓展,引入了新的ANSI SQL解析器,并支持子查询功能。Spark 2.0可以运行所有99个TPC-DS查询(需求SQL:2003中的很多功能支持)。由于SQL是Spark应用所使用的主要接口之一,对SQL功能的拓展大幅削减了将遗留应用移植到Spark时所需的工作。 在编程API方面,我们合理化了API: 在Scala/Java中统一了DataFrames与Dataset:从Spark 2.0开始,DataFrames只是行(row)数据集的typealias了。无论是映射、筛选、groupByKey之类的类型方法,还是select、groupBy之类的无类型方法都可用于Dataset的类。此外,这个新加入的Dataset接口是用作Structured Streaming的抽象,由于Python和R语言中编译时类型安全(compile-time type-safety)不属于语言特性,数据集的概念无法应用于这些语言API中。而DataFrame仍是主要的编程抽象,在这些语言中类似于单节点DataFrames的概念,想要了解这些API的相关信息,请参见相关笔记和文章。 SparkSession:这是一个新入口,取代了原本的SQLContext与HiveContext。对于DataFrame API的用户来说,Spark常见的混乱源头来自于使用哪个“context”。现在你可以使用SparkSession了,它作为单个入口可以兼容两者,点击这里来查看演示。注意原本的SQLContext与HiveContext仍然保留,以支持向下兼容。 更简单、性能更佳的Accumulator API:我们设计了一个新的Accumulator API,不但在类型层次上更简洁,同时还专门支持基本类型。原本的Accumulator API已不再使用,但为了向下兼容仍然保留。 基于DataFrame的机器学习API将作为主ML API出现:在Spark 2.0中,spark.ml包及其“管道”API会作为机器学习的主要API出现,尽管原本的spark.mllib包仍然保留,但以后的开发重点会集中在基于DataFrame的API上。 机器学习管道持久化:现在用户可以保留与载入机器学习的管道与模型了,Spark对所有语言提供支持。查看这篇博文以了解更多细节,这篇笔记中也有相关样例。 R语言的分布式算法:增加对广义线性模型(GLM)、朴素贝叶斯算法(NB算法)、存活回归分析(Survival Regression)与聚类算法(K-Means)的支持。 二、速度更快:用Spark作为编译器 根据我们2015年对Spark的调查,91%的用户认为对Spark来说,性能是最为重要的。因此,性能优化一直是我们在开发Spark时所考虑的重点。在开始Spark 2.0的规划前,我们思考过这个问题:Spark的速度已经很快了,但能否突破极限,让Spark达到原本速度的10倍呢? 带着这个问题,我们切实考虑了在构建Spark物理执行层面时的方式。如果深入调查现代的数据引擎,比如Spark或者其他MPP数据库,我们会发现:CPU循环大多都做了无用功,比如执行虚拟函数调用,或者向CPU缓存或内存读取/写入中间数据;通过减少CPU循环中的浪费来优化性能,一直是我们在现代编译器上长时间以来的工作重点。 Spark 2.0搭载了第二代Tungsten引擎,该引擎是根据现代编译器与MPP数据库的理念来构建的,它将这些理念用于数据处理中,其主要思想就是在运行时使用优化后的字节码,将整体查询合成为单个函数,不再使用虚拟函数调用,而是利用CPU来注册中间数据。我们将这一技术称为“whole-stage code generation”。 在测试、对比Spark 1.6与Spark 2.0时,我们列出了在单核中处理单行数据所花费的时间(以十亿分之一秒为单位),下面的表格列出了Spark 2.0的优化内容。Spark 1.6包含代码生成技术(code generation)的使用,这一技术如今在一些顶尖的商业数据库中也有运用,正如我们看到的那样,使用了新whole-stage code generation技术后,速度比之前快了一个数量级。 在这篇笔记中可以查看其运用:我们在单台机器上对10亿记录执行了aggregations和joins操作。 每行耗费(单线程) 这个新的引擎在执行端对端查询时是如何运作的?我们使用TPC-DS查询做了些初步分析,以对比Spark 1.6与Spark 2.0: 除此之外,为了改进Catalyst optimizer优化器对诸如nullability propagation之类常见查询的效果,我们还做了许多工作;另外还改进了矢量化Parquet解码器,新解码器的吞吐量增加了三倍。点击这里查看Spark 2.0优化的更多细节。 三、更智能:Structured Streaming 作为首个尝试统一批处理与流处理计算的工具,Spark Streaming一直是大数据处理的领导者。首个流处理API叫做DStream,在Spark 0.7中初次引入,它为开发者提供了一些强大的特性,包括:只有一次语义,大规模容错,以及高吞吐。 然而,在处理了数百个真实世界的Spark Streaming部署之后,我们发现需要在真实世界做决策的应用经常需要不止一个流处理引擎。他们需要深度整合批处理堆栈与流处理堆栈,整合内部存储系统,并且要有处理业务逻辑变更的能力。因此,各大公司需要不止一个流处理引擎,并且需要能让他们开发端对端“持续化应用”的全栈系统。 Spark 2.0使用一个新的API:Structured Streaming模块来处理这些用例,与现有流系统相比,Structured Streaming有三个主要的改进: 与批处理作业集成的API:想要运行流数据计算,开发者可针对DataFrame/Dataset API编写批处理计算,过程非常简单,而Spark会自动在流数据模式中执行计算,也就是说在数据输入时实时更新结果。强大的设计令开发者无需费心管理状态与故障,也无需确保应用与批处理作业的同步,这些都由系统自动解决。此外,针对相同的数据,批处理任务总能给出相同的结果。 与存储系统的事务交互:Structured Streaming会在整个引擎及存储系统中处理容错与持久化的问题,使得程序员得以很容易地编写应用,令实时更新的数据库可靠地提供、加入静态数据或者移动数据。 与Spark的其它组件的深入集成:Structured Streaming支持通过Spark SQL进行流数据的互动查询,可以添加静态数据以及很多已经使用DataFrames的库,还能让开发者得以构建完整的应用,而不只是数据流管道。未来,我们希望能有更多与MLlib及其它libraries的集成出现。 Spark 2.0搭载了初始alpha版的Strutured Streaming API,这是一个附在DataFrame/Dataset API上的(超小)扩展包。统一之后,对现有的Spark用户来说使用起来非常简单,他们能够利用在Spark 批处理API方面的知识来回答实时的新问题。这里关键的功能包括:支持基于事件时间的处理,无序/延迟数据,sessionization以及非流式数据源与Sink的紧密集成。 我们还更新了Databricks workspace以支持Structured Streaming。例如,在启动streaming查询时,notebook UI会自动显示其状态。 结论 Spark的用户最初使用Spark是因为它的易用性与高性能。Spark 2.0在这些方面达到了之前的两倍,并增加了对多种工作负载的支持,请尝试一下新版本吧。 文章转载自:http://geek.csdn.net/news/detail/91745?utm_source=tuicool&utm_medium=referral 英文原文地址:https://databricks.com/blog/2016/07/26/introducing-apache-spark-2-0.html 本文转自shishanyuan博客园博客,原文链接:http://www.cnblogs.com/shishanyuan/p/5717182.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

千呼万唤始出来-znaide-GUI桌面版正式发布

先说结论:**终端里的 znaide,现在有一个能双击打开的桌面版了。** 它叫「修凡AI全能助手」,版本 V0.0.1,底层是 znaide 引擎 V1.1.0 —— 同一套 agent 循环、同一份配置、同一批会话记录,只是把交互从终端搬进了原生窗口。 Windows 有安装包(免管理员),Linux 有 AppImage,源码 AGPL-3.0 双端开放。 --- ## 为什么又做一个桌面版 znaide 本来是纯终端工具:单文件、零运行时依赖,改文件、跑命令、查资料都在一个窗口里完成。对常年开着终端的人来说这很爽,但有两个现实问题: 1. **门槛**。想推荐给不写代码的朋友,第一句话就得教他"打开终端、cd 到目录、输入命令"。 2. **阅读体验**。模型回复里的表格、代码块、长文,在终端里只能算"能看"。 所以桌面版的目标很明确:**不改变引擎,只换一层壳**。所有能力仍然由 znaide 引擎提供,桌面版负责把它变成一个正常的桌面软件 —— 有窗口、有侧栏、有设置页、有安装包。 ![](https://developer.qcloudimg.com/http-save/yehe-9917443/3516ea83c82ea77b5b4a679f444028f2.png) --- ## 它长什么样 - 左边是**会话侧栏**:搜索、新建、备注、删除,点一下就恢复。 - 中间是**对话区**:Markdown 渲染、代码高亮、流式输出。 - 顶栏是一排**状态胶囊**:权限档位、当前模型、人格、工作目录、上下文占用。 - 底部是输入框,`Enter` 发送,`Shift+Enter` 换行。 窗口是**系统原生 WebView**(Windows 用 WebView2、Linux 用 WebKitGTK、macOS 用 WKWebView),不是套壳浏览器,也不是终端模拟器。所以滚动、输入法、复制粘贴、字体缩放都是系统级行为。 --- ## 功能详解 ### 1\. 工具调用全程可见 这是它和"聊天框套 API"最大的区别:znaide 会自己决定调用什么工具,而桌面版把每一步都摊开给你看。 - 卡片标题下有一行浅灰小字,显示**这次到底调了什么**(比如 `$ ls -la ~/Downloads/*.png`)。 - 执行过程中,卡片下方有**实时输出区**,命令在跑就能看到输出,不用盲等。 - 跑完保留结果;历史会话回放时,调用参数和结果同样成对展示,不会只剩一句"已调用工具"。 看到不对,直接按 `Esc` 中断。 ### 2\. 输入效率:`/` 和 `@` `![](https://developer.qcloudimg.com/http-save/yehe-9917443/c8b99b80f02d86a2b2fb72a622194dd0.png)` 输入 `/` 弹出命令面板:内置命令 + 你装过的技能,边打边过滤,`↑↓` 选、`Tab`/`Enter` 采纳。 ![](https://developer.qcloudimg.com/http-save/yehe-9917443/755af66497d33f73cced030ed4f75593.png) 输入 `@` 弹出文件/目录补全:`@crates/` 可以逐层进去,选中即把文件内容(或目录清单)注入给模型。**带空格的路径**会自动写成 `@"我的 文件.txt"`,不用手动转义。 另外两个细节: - **工作中输入会排队**,在下一个轮次边界插进对话,不会被丢掉;排错了可以撤回。 - 中文输入法下按 `Enter` 不会误发(判断的是组合状态)。 ### 3\. 会话管理 侧栏按时间列出历史会话,支持搜索、备注、删除。两个容易被忽略但很实用的点: - **点击会话会自动切到它记录的工作目录**。昨天在 `/home/me/work/api` 里聊的项目,今天点回来,`cwd` 胶囊跟着变,`@` 补全也立刻对准那个目录。 - **当前会话始终在列表里**(哪怕刚新建、还没有消息),不会出现"切走了就回不来"。 会话文件和终端版完全共用,`--resume` 的片段匹配规则也一样。 ### 4\. 设置是一整页,不是一堆弹窗 ![](https://developer.qcloudimg.com/http-save/yehe-9917443/57f5b0c6ea966f2eace76be14a46afce.png) 七块内容,全部落盘到 `~/.znaide/config.json`,和终端版共享: | 分块 | 能改什么 | | --- | --- | | 服务商与模型 | 内置 ollama / dashscope / deepseek / openrouter / zai,也能填任意 OpenAI 兼容端点;自动拉 `/models` 列真实模型 | | 上下文与预算 | 上下文窗口(留空 = 按模型名自动查表)、单条消息轮数上限、弱网重试次数 | | 网络 | 代理三档:跟随环境变量 / 强制直连 / 手动指定;可加自定义请求头(网关计费、审计用) | | 人格 | 选预设或自己写一份,全局生效 | | 技能 | 列出三层目录里的技能,可编辑正文(内置只读) | | 记忆 | 全局 / 项目两级,新建、编辑、删除 | | MCP | 直接编辑 `mcp.json`,保存前校验 JSON | 改完保存立即生效,不用重启。 ### 5\. 权限与安全 沿用引擎的四档权限:**询问 / 编辑放行 / 全自动 / 超级**,顶栏胶囊随时切。 危险命令不是靠关键词匹配,而是先做词法切分、解析出真正的目标路径再判断:目标是根目录、家目录、当前工作目录或其上级、块设备,或者**判不出来**,就弹红色确认框,只允许单次放行。`rm -rf /`(多打空格)照样命中,`rm -rf /tmp/123` 正常放行。 还有两个兜底:改文件前自动快照(`undo` 可回滚),以及长对话的上下文压缩。 ### 6\. 更新走独立通道 桌面版和终端版的版本线是分开的: - 终端版:`v1.x` 标签,资产名 `znaide-*` - 桌面版:`gui-v*` 标签,资产名 `xiufan-*` 结果是:**桌面版更新永远不会把终端版换掉**,反之亦然。窗口里「设置 → 关于与更新」点一下就行,装在自己的用户目录,不需要管理员权限。 --- ## 安装 ### Windows(推荐安装版) | 文件 | 说明 | | --- | --- | | `xiufan-windows-x64-v0.0.1-setup.exe` | 安装版。装到 `%LOCALAPPDATA%\Programs\修凡AI全能助手`,**不弹 UAC**;带开始菜单/桌面快捷方式,可在"设置 → 应用"里卸载 | | `xiufan-windows-x64-v0.0.1.exe` | 绿色版。单文件双击即用,不写注册表 | 两个注意点: 1. 需要 **WebView2 运行时**。Win10/11 一般自带;缺失时安装程序会问一次要不要打开官方下载页(约 2MB)。缺运行时的表现是**窗口空白**,不是报错。 2. 目前**没有代码签名**,首次运行会看到 SmartScreen 提示,点「更多信息 → 仍要运行」即可。 3. 卸载默认**保留** `%USERPROFILE%\.znaide`(会话、配置、记忆都在里面),只有当场选"是"才连数据一起删。 ### Linux ```bash chmod +x xiufan-linux-x64-v0.0.1.AppImage ./xiufan-linux-x64-v0.0.1.AppImage # 没有 FUSE 时: ./xiufan-linux-x64-v0.0.1.AppImage --appimage-extract-and-run ``` 需要系统装 `webkit2gtk-4.1`(Debian/Ubuntu:`libwebkit2gtk-4.1-0`)。也可以下 `tar.gz` 解包直接用里面的二进制。 ### macOS 这一版**没有**提供 `.app`:WKWebView 的产物必须在 macOS 本机构建。想自己来:`make package-gui-macos`。 ### 和终端版共存 两者共用 `~/.znaide`。终端里聊到一半,关掉终端打开窗口,侧栏里能接着聊;反过来也一样。装一个不会影响另一个。 --- ## 已知限制(如实写) - 所有平台都**未签名**:Windows SmartScreen、macOS Gatekeeper 会拦一次。 - macOS 暂无产物,需在 Mac 上自行构建。 - 只有 x64(Windows / Linux);macOS 构建脚本支持 arm64。 - Windows 安装版只做"当前用户安装",不写 `Program Files` —— 这是为了让应用内更新不需要提权。需要全机器安装的话,目前只能自己放绿色版。 --- ## 下载与源码 **源码(AGPL-3.0,商用/闭源集成需商业授权,见仓库 COMMERCIAL.md)** - GitHub:[https://github.com/twowb/znaide](https://github.com/twowb/znaide "https://github.com/twowb/znaide") - Gitee:[https://gitee.com/brother-ershui/znaide](https://gitee.com/brother-ershui/znaide "https://gitee.com/brother-ershui/znaide") **桌面版 V0.0.1(Windows 安装包 / 绿色版 / Linux AppImage / tar.gz)** - GitHub Releases:[https://github.com/twowb/znaide/releases/tag/gui-v0.0.1](https://github.com/twowb/znaide/releases/tag/gui-v0.0.1 "https://github.com/twowb/znaide/releases/tag/gui-v0.0.1") - Gitee Releases(国内直连):[https://gitee.com/brother-ershui/znaide/releases/tag/gui-v0.0.1](https://gitee.com/brother-ershui/znaide/releases/tag/gui-v0.0.1 "https://gitee.com/brother-ershui/znaide/releases/tag/gui-v0.0.1") **终端版(想要纯命令行的话)** - 最新是 v1.1.1:[https://github.com/twowb/znaide/releases/tag/v1.1.1](https://github.com/twowb/znaide/releases/tag/v1.1.1 "https://github.com/twowb/znaide/releases/tag/v1.1.1") - 国内:[https://gitee.com/brother-ershui/znaide/releases/tag/v1.1.1](https://gitee.com/brother-ershui/znaide/releases/tag/v1.1.1 "https://gitee.com/brother-ershui/znaide/releases/tag/v1.1.1") 两端发布的是**同一份文件**,sha256 完全一致,可以按网络情况就近下载。 --- ## 最后 这是一个 0.0.1:功能已经能用,但细节肯定还有毛刺。用起来哪里别扭、哪里该有却没有,欢迎直接提 issue: - [https://github.com/twowb/znaide/issues](https://github.com/twowb/znaide/issues "https://github.com/twowb/znaide/issues") - Gitee 侧同样可以提:[https://gitee.com/brother-ershui/znaide/issues](https://gitee.com/brother-ershui/znaide/issues "https://gitee.com/brother-ershui/znaide/issues") 如果它帮你省下了几次"打开终端 → cd → 敲命令"的时间,那就值了。

优秀的个人博客,低调大师

千呼万唤始出来,openwrt 19.07 分支正式版本发布

经历2个候选版本发布后,openwrt 19.07分支终于在2020年年初正式发版了!!!!!!! 19.07的主要亮点如下: 将ar71xx target 转为ath79 target,未来会保持2个target一段时间,但长期说来会切到ath79 target WPA3的支持;自从WPA2 2017年10月被比利时安全研究员Mathy Vanhoef披露了存在高危漏洞后,openwrt社区就开始积极响应进行openwrt的WPA3的支持,不过由于各种历史原因及硬件原因,目前整体WIFI的生态对WPA3的支持还是存在一些问题,如有些支持WPA2的终端可能会连接不上支持WPA2+WPA3的AP;另外考虑到很多路由器的flash大小不到8M,而WPA3的支持需要安装更多的依赖包,所以默认情况下WPA3的支持默认是不开启的(哪些不到8Mflash的路由为啥还不赶紧淘汰呢?为什么还要对这种垃圾硬件进行支持呢?。。。。。。。。) LuCi进行了很大的升级,将视图的生成放到了客户端从而大大提高了计算效率;但由于本次改动比较大,而且LuCi的生态也比较大,不是所有的LuCi package都跟进了相应的改动,其会导致一些bug(根据我们openwrt的群友反馈,新版的LuCi bug的确比较多,希望大家多入坑,多提issue,支持openwrt的发展) 由于openwrt 19.07的前2次候选版本发布的时候,已经比较详细了说明了一些具体改动,本次就不具体说明19.07版本有哪些具体改动了,感兴趣的可以翻翻前2次的版本发布说明,或者英文好的去官网看看release note。 最后OpenWrt官方对Openwrt社区的开发维护者,测试人员,文档人员(我这种搬砖人员算吗?????)及支持者(这个我肯定算)表示大大的感谢(big thank),并祝大家玩的快乐!也祝OpenWrt越来越好,越来越红,越来越多的各种支持(这是我个人的祝福) 发布说明

优秀的个人博客,低调大师

外媒评论:原生 Android 已死

Android M精彩亮相,众多开发者在洛杉矶见证了大量新功能:应用权限控制、充电和续航优化、内存占用优化、App与网络无缝集成、移动支付、指纹识别、Google照片应用、离线地图……很激动人心是不是?错了!这些功能早晚都会在安卓手机上普及,但绝对不会是Google设想的方式。事实上,Google怎么规划的Android M根本无所谓,因为原生的Android M根本不会在流行的设备上出现,不管是三星Galaxy、HTC One,还是小米、华为。 Android M的关键改进最终仍然会进入这些手机,但绝对会比Google安排的2015年第三季度要晚得多。 是时候面对现实了:你见过几台智能手机跑着原生的Android?哪家手机是按照Google的思路去做的Android? 也许,只有Nexus系列。 但是,Nexus 6实在是太大了,Nexus 5堪称梦幻手机却已经下架。 如果你很了解Android平台,或许会说,也有一些机器的系统几乎是原生的啊,比如说摩托罗拉Moto X 2014、索尼Xperia Z系列。没错,但问题是,它们毕竟不是真正原生的,尤其是缺少了一个最关键的地方:Nexus设备的流畅度。 进入2015年,硬件军备竞赛还在持续,八核处理器、4GB内存频频出现,但是卡顿仍然是哪怕安卓旗舰手机的老大难,比如优秀如Galaxy S6也会卡,Galaxy Note 4甚至更糟糕,绝大多数安卓手机都逃脱不了这个魔咒。 如果再从实际表现上对比一下2013年的Nexus 5,你会惊讶地感慨,为啥老设备反而更流畅、更快、更好? 而且卡顿只是一个方面,还有更多麻烦。为了突出个性,第三方厂商都把Android界面改的“面目全非”:完全不同的图标、应用、动画、样式,甚至没有了应用抽屉。事实上,如果你是个很普通的用户,可能根本不知道自己的系统是安卓。 Cyanogen等优秀的第三方ROM一度是很忠于原生风格的,但时代在变,而变化的诱惑力太大,他们也都在纷纷地试图让用户忘了这是Google的安卓。 哦对了还有Android One,Google希望能在两年的时间里,按时为发展中市场的用户提供系统更新,但是,Android One并不是推广原生系统的最佳途径,毕竟它只是个廉价机,有自己的用户群,但终究为了成本和价格妥协太多,完全无法和旗舰机相比。 看起来我们不得不承认一个简单的事实:原生的安卓,Google话费无数心血、精心打磨的最完美的安卓,却是绝大多数人、绝大多数手机无缘享受的。 除非再诞生一个Nexus 5,否则原生安卓,或者安卓M,都只能是一个空中楼阁。必须要变一变了。文章转载自 开源中国社区 [http://www.oschina.net]

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册