基于Java的度分秒坐标转纯经纬度坐标的漂亮国基地信息管理

目录 前言 一、空间表设计 1、物理表结构 二、后台数据管理 1、数据去重 2、去重的具体实现 3、度分秒数据格式转换 4、具体的转换方法 5、新增界面的实现 三、数据管理界面 总结 前言 众所周知,漂亮国在全球范围内部署了大量的基地,用以维持其打击能力。这里无意于讨论这些部署的事情。只是作为一个GIS开发者,使用地理信息的视角来看看其到底分布在全球的哪些地方,在之前的博客中,我们曾经介绍了使用Java去解析KMZ和KML数据,这份数据就是其它博主分享的漂亮国海外基地的分布情况。这是一份数据源,同时我们在某度百科上也能找到一些公开的资料,上面公布了一些国内或者海外基地的坐标信息。 要想实现在WebGIS中直观的显示这些位置,首先要解决数据的管理问题。之前我们在使用GDAL的KMZ数据解析中,通过在数据中查看具体的数据可以看到。其提供的数据中,应该是有重复的。我们采用基地名称和位置wkt字符串作为分组查询,可以发现有很多的数据的条数是大于2的。因此可以判定出是有数据的重复,因此要求我们对入库的数据进行去重。同时由于在互联网上公开的数据中,有一些位置信息是以度分秒的形式给出的。对于常见的坐标,我们都是采用纯数字的经纬度来展示的。那么怎么将度分秒的位置信息转换成常见的经纬度信息呢? 这就是本文的由来,本文将以java语言为例,详细介绍如何管理漂亮国的基地信息。为下一步全球的空间可视化打下坚实的基础,首先介绍如何对数据进行去重处理,然后介绍在java当中如何进行度分秒位置的转换,最后结合实现原型进行详细的说明。通过本文,您可以掌握如何管理这些矢量数据,同时知道如何进行空间数据的去重,还可以掌握如何进行度分秒数据的转换,欢迎品鉴。 一、空间表设计 这里着重介绍空间表的设计与实现,让大家了解空间表的设计。这里直接分享表的物理结构,通过SQL语句直接分享给大家,如果大家感兴趣也可以进行实践。 1、物理表结构 闲言少叙,这里将设计的表字段信息以sql语句的形式提供出来,供大家参考,表中的字段,大家可以根据实际情况进行增减。 物理表结构的sql语句如下(如果您想在本地记性测试,请一定要安装postgis扩展,否则空间数据类型将无法创建): CREATE TABLE "public"."biz_usa_military_base" ( "id" int8 NOT NULL, "en_name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, "en_desc" varchar(1024) COLLATE "pg_catalog"."default", "cn_name" varchar(255) COLLATE "pg_catalog"."default", "remark" varchar(255) COLLATE "pg_catalog"."default", "geom" "public"."geometry", "create_by" varchar(64) COLLATE "pg_catalog"."default", "create_time" timestamp(6), "update_by" varchar(64) COLLATE "pg_catalog"."default", "update_time" timestamp(6), "type" int4, "en_country" varchar(255) COLLATE "pg_catalog"."default", "cn_country" varchar(255) COLLATE "

力扣454题解:四数相加(java实现简易)

力扣454题解:四数相加 引言 LeetCode是一个流行的在线判题平台,它提供了大量的算法题目供程序员练习和挑战。第454题“四数相加II”是一个中等难度的题目,要求找出所有两数之和等于特定值的四元组。本文将详细介绍如何使用Java解决这个问题。 题目描述 给定一个数组 nums 和一个目标值 target,请你在 nums 的子集之中找出所有和为 target 的四元组,返回这些四元组的列表。 问题分析 这个问题可以通过四重循环来暴力解决,但时间复杂度会非常高。更高效的方法是使用双指针和哈希表来降低时间复杂度。 算法设计 使用哈希表:遍历数组,对于每个元素,计算剩余需要的和 complement = target - nums[i],并将 [nums[i], complement] 存储到哈希表中。两两组合:对于哈希表中的每个元素,尝试找到两个不同的索引 j 和 k 使得 nums[j] + nums[k] == complement。使用双指针:对于找到的 j 和 k,使用双指针在 j+1 和 k 之间的范围内查找和为 nums[j] + nums[k] 的另外两个数。 Java实现 class Solution { public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) { int res = 0; Map<Integer, Integer> map = new HashMap<Integer, Integer>(); //统计两个数组中的元素之和,同时统计出现的次数,放入map for (int i : nums1) { for (int j : nums2) { int sum = i + j; map.

安卓应用开发——Android Studio中关于使用Androidstudio的注意事项

一、安装与配置 首次安装: 在安装Android Studio之前,需要先自行安装好JDK和Android SDK。为避免首次打开AS时自动重新下载SDK,可以在AS启动前,在bin目录的idea.properties文件中增加一行disable.android.first.run=true。Gradle下载: 第一次打开Android Studio时,需要下载Gradle。由于访问的是国外的网站,建议通过FQ等方式提高下载速度。JDK与SDK配置: 在新建Android Studio工程前,需要配置好JDK和Android SDK的路径。 二、项目管理 多module管理: 使用config.gradle或直接在project中写配置属性,以规避运行程序module时可能遇到的重复包问题。Gradle配置: Android Studio的项目管理使用了Gradle,需要对Gradle进行简单的理解。Gradle的配置包含构建变量、依赖关系、清单条目等方面,可以帮助你管理项目的依赖,并定义自定义构建逻辑。开源项目引入: 从Github或其他地方拷贝工程时,可能会出现依赖包、版本包问题。此时,需要修改build.gradle里面的版本为你自己开发环境已经配置的版本。如果你想将开源库作为项目的库文件,需要修改依赖的库文件的属性为library(将apply plugin的属性值修改成com.android.library)。 三、性能优化 内存设置: 当Android Studio开发项目越来越大时,可能会变得延迟卡顿。此时,可以修改android-studio/bin/studio.vmoptions和studio64.vmoptions两个文件,增加内存分配。主题与字体: 如果觉得Android Studio的默认界面不好看,可以修改主题和字体。 四、其他注意事项 MultiDexApplication: 当打包apk的方法数超过66536时,需要使用继承MultiDexApplication的Application。中文乱码: 如果使用Google开发工具Android Studio时默认中文不显示或出现乱码,需要确保中文支持已经正确配置。官方文档与社区: 官方文档和开发者社区是解决问题和学习新知识的重要资源。 以上是使用Android Studio的注意事项以及新手所需注意事项的总结。希望这些信息能帮助你更好地使用Android Studio进行开发。

【Python高级编程】使用OpenCV进行图像旋转详解

import cv2 image = cv2.imread('path_to_your_image.jpg') (h, w) = image.shape[:2] center = (w // 2, h // 2) M = cv2.getRotationMatrix2D(center, angle, scale) rotated_image = cv2.warpAffine(image, M, (w, h)) cv2.imshow('Rotated Image', rotated_image) cv2.waitKey(0) cv2.destroyAllWindows() 这段代码的目的是对图像进行旋转操作。下面我们逐行解释这段代码的具体含义和作用: 代码解释 (h, w) = image.shape[:2] image.shape 返回图像的形状,即图像的高度、宽度和通道数(如果是彩色图像,则有三个通道)。shape[:2] 只获取前两个值,即图像的高度 h 和宽度 w。 center = (w // 2, h // 2) 计算旋转中心点的位置。这里选择图像的中心作为旋转的轴心点。w // 2 和 h // 2 分别是图像宽度和高度的一半,即图像的中心点坐标。 M = cv2.getRotationMatrix2D(center, angle, scale) 使用 cv2.getRotationMatrix2D() 函数来计算旋转矩阵 M。center 是旋转中心点。angle 是旋转的角度,单位为度(正值表示逆时针旋转,负值表示顺时针旋转)。scale 是缩放因子,1.

mac虚拟机软件哪个好 mac虚拟机怎么安装Windows 苹果Mac电脑上受欢迎的主流虚拟机PK Parallels Desktop和VM

什么是苹果虚拟机? 苹果虚拟机是一种软件工具,它允许在非苹果硬件上运行苹果操作系统(如ios)。通过使用虚拟机,您可以在Windows PC或Linux上体验和使用苹果的操作系统,而无需购买苹果硬件。 如何使用苹果虚拟机? 使用苹果虚拟机非常简单。首先,您需要下载并安装一个合适的虚拟机软件,比如VirtualBox或VMware。接下来,您需要获取一个苹果镜像文件,这是包含IOS安装文件的映像文件。然后,您只需按照虚拟机软件的指引,创建一个新的虚拟机并导入苹果镜像文件即可。 最后,您可以启动虚拟机,并按照安装指引完成苹果操作系统的安装。 Mac虚拟机软件哪个好? 下面我们就来简单介绍一下这两款虚拟机,看哪个更好用。 1.Parallels Desktop Parallels Desktop 是一款虚拟机软件,能够让Mac电脑上运行Windows、Linux和其他操作系统的应用程序。Parallels Desktop是一款专注于苹果系统的虚拟机,那么它与苹果系统的融合度自然非常高。在技术方面PD可以将Windows的启动速度提升三倍以上,同时对于许多虚拟机不支持的M1,PD也做了许多优化,使得M1可以正常运行Windows系统。总之,Parallels Desktop是一款功能强大且易于使用的虚拟机软件,适合那些需要在Mac电脑上运行Windows、Linux和其他操作系统的用户使用,可以帮助他们实现高效的工作流程和生产力。 Parallels Desktop19免费体验包(标准永久版):https://souurl.cn/xmgwMz 2.VirtualBox 首先,VirtualBox是一款开源的虚拟机。但是它并不支持M1,也不是说不支持M1就没有优点,后面随着软件升级也可能会支持M1的。VirtualBox的优点在于对必须使用Linux的开发人员而言是不可缺少的。 3、VMware Fusion Pro for Mac VMware Fusion Pro for Mac是一款强大的虚拟机软件,可以在Mac操作系统中创建、运行和管理多个虚拟机,使用户可以在一台Mac电脑上同时运行多个操作系统和应用程序。VMware Fusion Pro for Mac支持Windows、Linux和其他几十种操作系统,可以在Mac上同时运行多个虚拟机。全新的虚拟化技术,可以实现高性能的虚拟化,保证了虚拟机运行的流畅性和稳定性。具有强大的功能,可以实现虚拟机的复制、管理和网络配置等操作。 VMware Fusion Pro for Mac提供了安全的虚拟化环境,可以隔离不同的虚拟机,防止恶意软件和病毒的传播。 总之,VMware Fusion Pro for Mac是一款功能强大、易于使用和安全可靠的虚拟机软件。 随着技术的不断发展,虚拟机软件的性能将逐渐接近原生系统,并且在某些方面可能会有所超越。然而,用户在选择虚拟机软件时仍需根据自身需求和实际情况进行权衡。在mac上安装虚拟机需要考虑多个因素,包括硬件性能和软件兼容性等。选择合适的虚拟机软件和Windows系统版本对于保证虚拟机性能至关重要。 为什么推荐CrossOver 在mac系统中安装虚拟机是一项需要谨慎考虑的任务。选择合适的虚拟机软件和Windows系统版本对于保证虚拟机性能至关重要。同时,类似CrossOver这样的解决方案也为用户提供了更加便捷的方式来使用Windows应用程序。希望本文能够为用户提供有益的参考,并促进更多关于mac系统上安装虚拟机的讨论和分享。 CrossOver是类虚拟机软件,从功能性上而言,CrossOver是在无需启动一个系统的情况下,在macOS系统中安装并正常运行Windows软件。通过 CrossOver, 从 dock 直接启动 Windows 应用/游戏,与您的 Mac 和 Linux 系统无缝集成。 下面我们从价格、安装以及使用等三个方面来说明为什么要选择CrossOver。 1.价格 (图片来自CrossOverr中文网站,以实际支付为准。) CrossOver在价格、占用空间、性价比等方面占据优势。 2.安装 安装Windows虚拟机,这是一个相当复杂的过程,并且在安装虚拟机时还需要下载几个G的镜像文件。而CrossOver只是一个软件,仅339M,直接下载安装即可。 3.使用 我们都知道使用虚拟机时,需要在原系统中启动另外一个系统,就像使用一匹马拖动两辆车,是非常消耗CPU的。CrossOver则不同,首先我们可以通过搜索、分类、导入等多种方式在macOS系统安装Windows系统的软件。然后,使用Windows软件时,它也仅调取该软件所需的配置文件,占用CPU非常有限。 通过展示Parallels Desktop安装虚拟机,我们发现安装虚拟机是一项非常复杂的工作,不如直接安装类虚拟机软件——CrossOver。 当然,具体要看你的需求和预算来选择。 CrossOver24 Mac安装包免费下载:https://souurl.

【Web APIs】DOM 文档对象模型 ① ( DOM 相关概念 - DOM 文档、DOM 树、DOM 节点 | 根据元素 ID 获取 DOM 元素 - getElementById 函数 )

文章目录 一、DOM 相关概念1、DOM 简介2、DOM 相关概念 - DOM 文档、DOM 树、DOM 节点 二、获取 DOM 元素1、获取 DOM 元素的常用方法2、根据元素 ID 获取 DOM 元素 - getElementById 函数3、标签和 JavaScript 脚本书写顺序4、console.dir 函数打印对象属性列表 本博客相关参考文档 : WebAPIs 参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/APIgetElementById 函数参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/API/Document/getElementByIdElement 对象参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/API/Element 一、DOM 相关概念 1、DOM 简介 DOM , 全称 " Document Object Model " , 文档对象模型 , 是一个可处理 扩展标记语言 HTML 和 XML 的 接口 , 借助该接口 , 可以 动态的 访问 和 修改 文档的 内容、结构和样式 ;

Navicat和SQLynx产品功能比较一(整体比较)

Navicat和SQLynx都是数据库管理工具,在过去的二十年中,国内用户主要是使用Navicat偏多,一般是个人简单开发需要,数据量一般不大,开发相对简单。SQLynx是最近几年的数据库管理工具,Web开发,桌面版是Electron封装,主要针对企业级客户设计,针对大型企业数据规模比较大,个人用户也可以使用。总的来说,如果是个人简单开发需要,Navicat和SQLynx都可以满足,如果是企业开发需要或是数据量比较大,一般建议使用SQLynx。 Navicat是一款功能强大的数据库管理和开发工具,广泛用于各类数据库的管理和操作。它支持多种数据库,包括MySQL、MariaDB、SQL Server、Oracle、PostgreSQL和SQLite等,提供了丰富的功能以满足数据库管理员、开发人员和数据分析师的需求。 SQLynx是一款先进的Web SQL集成开发环境(IDE),专为数据库管理、查询和数据分析设计。作为一个基于浏览器的工具(同时也支持桌面版),SQLynx提供了高度便捷的跨平台访问和协作功能,使得用户能够随时随地连接和管理数据库。 下面是SQLynx与Navicat的详细比较,以帮助您了解这两款SQL工具的异同点。 功能SQLynxNavicat平台支持基于Web,跨平台访问(浏览器即可)Windows, macOS, Linux用户界面现代化的Web界面,也支持桌面版传统桌面应用界面安装和维护无需安装,自动更新和维护需要本地安装,手动更新数据库支持多种数据库支持(MySQL, PostgreSQL,Hadoop,国产数据库等)支持多种数据库(MySQL, PostgreSQL, Oracle, SQL Server等)实时协作支持多人实时协作和共享工作空间不支持实时协作数据审计内置高级数据审计工具没有代码自动完成提供智能代码完成和建议提供代码自动完成安全性高级安全措施,包括加密和双因素认证提供安全连接和数据加密云集成与云数据库和服务的无缝集成支持云数据库连接离线支持可离线使用可离线使用(需本地安装)扩展和插件支持插件和第三方扩展开发支持部分插件和扩展性能优化工具提供查询优化和性能分析工具提供查询优化和性能分析工具价格订阅制,按使用量年付费购买许可证,按版本收费目标用户数据库管理员、开发者、开发团队、数据分析师数据库管理员、开发者 总结 SQLynx: 支持个人用户,但更适合需要跨平台访问和实时协作的团队和企业级客户。现代化的Web界面,易于使用和维护。提供高级的审计和智能代码完成功能。 Navicat: 适合需要离线访问和本地安装的用户。支持多种数据库和平台,功能强大且全面。传统桌面界面,适合熟悉桌面应用的用户。 选择合适的工具取决于您的具体需求和工作环境。 SQLynx适合需要现代化、协作和云集成功能的个人用户、中小企业和大企业用户; 而Navicat则适合需要简单、开发用途的个人用户。

数据结构之B树

B树(B-tree)是一种自平衡的搜索树数据结构,它通过在内部节点中存储键值和指向子节点的指针来保持树的平衡。B树的设计使得它非常适合在磁盘I/O操作受限的环境中进行数据存储和检索,例如数据库和文件系统。 B树的特点包括: 平衡性:B树的所有叶子节点都在同一层,这意味着树的高度相对较小,从而减少了搜索、插入和删除操作的时间复杂度。 多叉树:B树的每个内部节点可以有多个子节点(通常是2到M个,其中M称为B树的阶),这使得B树比二叉树更加紧凑,减少了树的高度。 键值存储:B树的内部节点存储键值和指向子节点的指针。键值用于在搜索时确定搜索路径,而指针指向子树。 顺序性:B树中的键值是按照一定顺序排列的,这使得范围查询更加高效。 自平衡:在插入和删除操作时,B树通过分裂和合并节点来保持树的平衡。 B树的基本操作包括: 搜索(Search):从根节点开始,根据键值比较找到合适的子树,然后递归地在子树中搜索。 插入(Insertion):首先找到插入位置,然后插入键值。如果插入后节点键值数量超过阶M,则需要分裂节点。 删除(Deletion):首先找到要删除的键值,然后删除它。如果删除后节点键值数量低于某个阈值,则可能需要合并节点或从兄弟节点借键值。 分裂(Splitting):当一个节点键值数量超过阶M时,将其分成两个节点,并将中间的键值提升到父节点。 合并(Merging):当一个节点键值数量低于某个阈值时,可能需要将其与相邻的兄弟节点合并。 B树的变体包括B+树和B*树,它们在某些方面对B树进行了优化: B+树:在B+树中,所有数据都存储在叶子节点中,内部节点只存储键值和指向子节点的指针。这使得B+树在范围查询时更加高效,因为所有相关数据都在同一层。 B*树:B*树要求非根节点的兄弟节点至少有2/3满,而不是B树的1/2。这通过在分裂节点之前先尝试在兄弟节点之间重新分配键值来减少树的分裂次数,从而提高空间利用率。 B树及其变体在数据库索引、文件系统索引等领域有着广泛的应用,因为它们能够有效地处理大量数据,并且在磁盘I/O操作上表现出色。

Android 高德地图API(新版)

新版高德地图 前言正文一、创建应用① 获取PackageName② 获取调试版安全码SHA1③ 获取发布版安全码SHA1 二、配置项目① 导入SDK② 配置AndroidManifest.xml 三、获取当前定位信息① ViewBinding使用和导包② 隐私合规设置③ 权限请求④ 初始化定位⑤ 获取定位信息 四、显示地图五、显示当前定位地图六、地图设置① 修改定位图标样式② 设置缩放等级③ 开启室内地图④ 地图控件设置 七、获取POI数据八、地图点击长按事件① 逆地理编码② 地理编码③ 添加标点Marker④ 删除标点Marker⑤ 绘制动画效果Marker⑥ Marker的点击和拖拽事件⑦ 绘制 InfoWindow⑧ InfoWindow的点击事件⑨ 改变地图中心点 九、出行路线规划① 准备工作② 步行路线规划③ 骑行路线规划④ 驾车路线规划⑤ 公交路线规划 十、出行路线详情① 准备工作② 步行路线详情③ 骑行路线详情④ 驾车路线详情⑤ 公交路线详情⑥ 手动输入目的地和出发地 十一、源码 前言 2020年的时候我写了关于高德地图的使用,在当时你按照文章是没有问题,然而现在到了2024年了,这几年高德的SDK发生了变化,Android Studio发生了变化,不变的是什么呢?就是学校的老师还是让一个没接触过Android的学生去完成相关的功能,定位地图之类的,然后不会怎么办呢?就搜索到我的文章了,一操作发现不对,几百个人问同样的问题,我是真的回答累了,因此我打算重新写一遍,根据最新的内容来写,从内容上和之前的文章大概相同,下面进入正文。 正文 在此之前呢,默认都没有账号,因此需要先注册一个账号才行,点击高德开放平台进入主页面。 完成账号的注册,注册的类型如果没有公司就选择个人开发者,注册完成之后登录,登录之后就创建应用。 一、创建应用 点击 控制台 → 应用管理 → 我的应用 然后点击右上角 创建新应用 按钮,会出现弹窗,输入内容。 点击创建按钮。完成之后我们需要添加Key。 点击 添加Key,出现弹窗,弹窗中需要我们配置Android工程中的内容,弹窗如下图所示: 你可以和我写的一样,这里选择Android平台,还有3个输入框需要我们填写值,其中有红色 * 号的是必填项,也就是说,这个调试版安全码SHA1我们可以不填,但是我还是会说明该怎么获取。这个网页先保留好,先别关了。 ① 发布版安全码SHA1就是你的应用发布正式版本时的安全码,常规是使用jks秘钥来生成release包。② 调试版安全码SHA1就是你的应用通过usb直接运行在手机或者虚拟机时的安全码,同一个项目在不同的电脑上运行,这个安全码各不相同。③ PackageName 就是你的应用包名。 ① 获取PackageName 要获取PackageName 就需要创建一个Android 项目,而这个项目创建也有很多细节可以说明,先看看我的Android Studio版本:

Kafka小白:从下载到运行简单示例

目录 概述 一、安装 1.1 下载Kafka 1.2 解压 二、运行一个简单示例 2.1 启动服务 2.2 运行简单示例 2.3 关闭 2.4 重新开始 概述 本文针对小白快速入门,不涉及过多Kafka概念,只讲解如何实操(不详细解释代码)。只要按照步骤进行,就能运行Kafka。 提供的简单示例使用Kafka默认配置文件,不需要修改配置文件,过程十分简单。读者可以自行学习使用自己的配置,如配置集群等。 演示操作系统:ubuntu(centos操作类似) 前置环境:JDK17+ 一、安装 1.1 下载Kafka 官网链接:Apache Kafka 我们选择下载二进制压缩文件 下载较慢可以使用清华镜像源下载:https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/3.7.0/kafka_2.13-3.7.0.tgz 1.2 解压 我们进入下载目录(找到下载的压缩包) 如果是在虚拟机中直接下载,而不是主机下载拷贝的,默认在主目录的下载文件夹里 进入目录后右击,在终端中打开 然后输入代码解压 tar -zxf kafka_2.13-3.7.0.tgz -C /usr/local 若运行出错,centos请使用管理员身份,ubuntu使用sudo语句 sudo tar -zxf kafka_2.13-3.7.0.tgz -C /usr/local 解压成功后会解压到/usr/local中 二、运行一个简单示例 Kafka可以依赖ZooKeeper运行,且安装包内内置ZooKeeper,直接运行即可 2.1 启动服务 打开安装后的目录usr/local/kafka_xxx,右击打开终端 启动ZooKepper: sudo bin/zookeeper-server-start.sh config/zookeeper.properties sudo是ubundu中使用管理员身份的方法,下文不再阐述 centos系统删去sudo,运行后面的代码即可 运行起来后显示的是ZooKeeper运行日志,可以不用关注,终端开在后台即可 同样的方法打开一个新终端,启动kafka: sudo bin/kafka-server-start.sh config/server.properties 稍等片刻后出现上图代码后启动成功。 运行起来后显示的是kafka运行日志,可以不用关注,终端开在后台即可 2.2 运行简单示例 同样的方法打开一个新终端,在该终端中创建名为test的主题: bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1 运行结束后,在该终端中创建生产者(发送消息方):

内网穿透的原理:实现远程访问的技术揭秘

内网穿透的原理:实现远程访问的技术揭秘 引言 内网穿透是一种允许外部网络访问内网服务的技术。这对于远程办公、访问家庭服务器或进行开发测试非常有用。本文将探讨内网穿透的工作原理及其实现方式。 基础知识 内网(LAN):局域网,通常由路由器和交换机构成,内部设备拥有私有IP地址。外网(WAN):广域网,如互联网,由多个网络互联而成,使用公有IP地址。 核心概念 NAT(网络地址转换):一种技术,允许多个设备共享单个公有IP地址。端口映射:在路由器上设置,将外网请求的端口转发到内网特定设备的端口。隧道协议:一种通信协议,通过公网建立一条虚拟的通信通道,实现内网与外网之间的数据传输。 原理详解 NAT穿透原理: NAT设备维护一个转换表,记录内部私有IP地址与公网IP地址及端口的映射关系。当外网数据包到达时,NAT设备根据转换表将目标IP和端口转换为内网的IP和端口,并将数据包转发到内网。 端口映射实现: 用户在路由器上设置端口映射规则,指定外网请求的端口号与内网设备IP及端口号的对应关系。路由器接收到发往指定端口的外网数据包后,根据端口映射规则将其转发到内网的指定设备。 隧道协议实现: 隧道协议通过在内网设备和外网服务器之间建立一条虚拟的通信通道,实现数据的加密传输。内网设备通过隧道协议连接到外网的中继服务器,中继服务器接收到数据后,根据隧道协议将数据转发到请求者。 技术实现 端口映射实现步骤: 登录路由器管理界面。进入端口映射或转发设置。添加映射规则,指定外网端口、内网IP和内网端口。保存设置并应用。 隧道协议实现步骤: 在内网设备上安装隧道客户端。配置隧道客户端,指定中继服务器地址和通信参数。启动隧道客户端,建立与中继服务器的连接。通过隧道传输数据。 示例演示 使用端口映射的内网穿透: +-----------+ +-----------+ | 内网 | --(端口映射)--> | 路由器/NAT | --(外网IP)--> | 外部设备 | +-----------+ +-----------+ 使用隧道技术的内网穿透: +-----------+ +-----------+ | 内网 | --(建立隧道)--> | 中继服务器 | --(连接)--> | 外部设备 | +-----------+ +-----------+ 实际应用 远程办公:员工可以安全地访问公司内网资源。家庭服务器:用户可以远程访问家中的NAS或家庭媒体服务器。 学习资源 相关技术文档和教程,例如Ngrok官方文档 安全性考量 使用加密隧道协议,如SSH、TLS,确保数据传输的安全性。限制隧道协议的访问权限,仅允许特定的IP地址或用户连接。定期更新隧道协议的软件,修复安全漏洞。 学习资源 网络协议相关书籍,如《TCP/IP详解》。网络安全相关书籍,如《网络安全基础》。 互动环节 讨论内网穿透技术在不同领域的应用案例。分享内网穿透技术在实际使用中的安全防护经验。 结语 内网穿透技术通过NAT穿透和隧道协议,实现了内网服务的远程访问。理解其原理有助于我们更安全、更有效地应用内网穿透技术。

普通人如何入门AI人工智能?最短学习路线分享

学AI能干什么? 首先说一下我个人的观点,我认为未来一定会有很多很多人工的重复工作会被AI替代,并且这个趋势无法逆转,不管是你想象得到的行业还是想象不到的行业,从实体到互联网,从工业到家用,历史的车轮滚滚向前,你不上车,就只能开11路了。 很多人看见AI,会觉得很高端,距离自己很远,可能一辈子都跟自己没啥关系,自己也不可能学会,其实AI并没那么高端复杂,普通人通过学习,3-4个月的业余时间完全可以达到初级的应用状态,做个图像分类,人脸识别,语音识别什么的都不在话下,你每天打打游戏看看电视,三四个月也就那么过去了,而学习AI可能会彻底改变你一生的思维方式,最起码当你看到一个很神奇的东西,你可能会知道它内部是如何实现的。 AI的应用范围到底有多广?你现在用的值得买客户端的推荐算法一定是基于机器学习算法的,不信你问问程序猿小哥哥去,你家里的小爱同学回答你的问题也是AI算法给出的,你天天用的翻译软件,后面的实现基本都是AI,你家里摄像头的人脸识别功能和手机的人脸识别功能,也是AI算法,实在太多了,无法一一列举,基本所有已知的行业都有用武之地,果农用AI来给水果自动分级你能想到吗? 我18年开始系统的学习机器学习算法,期间看过很多教程很多书,走了不少弯路,现在我已经把AI用在自己的投资生涯上,并且效果还不错。 这篇文章想和大家分享一下,如何从一个数学知识都忘干净的小白最快速的成为AI的使用者和受益者,分享自己的学习路线,让大家少走弯路。 资源分享 大模型AGI学习包 资料目录 成长路线图&学习规划配套视频教程实战LLM人工智能比赛资料AI人工智能必读书单面试题合集 《人工智能\大模型入门学习大礼包》,可以扫描下方二维码免费领取! 1.成长路线图&学习规划 要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。 对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。 2.视频教程 很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。 3.LLM 大家最喜欢也是最关心的LLM(大语言模型) 《人工智能\大模型入门学习大礼包》,可以扫描下方二维码免费领取!

Android --- 异步操作

同步和异步的差异 同步:在发生某件事后什么也不做,直到该事件完成后,再继续进行 异步:在某件事发生后,可以在等待他完成的时候去处理其他事件,等到该事件发生完成后,再回过头来处理它。 异步操作的核心思想就是将耗时操作放到子线程中执行,避免阻塞主线程,从而保持界面的流畅性。 异步实现方法 Thread + Looper + handler Android 提供了 Handler 机制来进行线程之间的通信,我们可以使用 Android 最基础的异步方式:Thread + Looper + handler 来进行异步任务 Handler mHandler = newHandler(){ @Override publicvoid handleMessage(Message msg){ if(msg.what == 1){ textView.setText("Task Done!!"); } } }; mRunnable = new Runnable() { @Override publicvoid run() { SystemClock.sleep(1000); // 耗时处理 mHandler.sendEmptyMessage(1); } }; private void startTask(){ new Thread(mRunnable).start(); } 优点: 操作简单,无学习成本。 缺点: 代码规范性较差,不易维护。每次操作都会开启一个匿名线程,系统开销较大。 AsyncTask AsyncTask是较为轻量级的异步类,封装了 FutureTask 的线程池、ArrayDeque 和 Handler 进行调度。AsyncTask 主要用于后台与界面持续交互。

基于C#、Visual Studio 2017以及.NET Framework 4.5的Log4Net使用教程

在使用Log4Net记录日志时,以下是一个基于C#、Visual Studio 2017以及.NET Framework 4.5的详细步骤教程。这个教程适合初学者,会从添加Log4Net库、配置日志、编写日志记录代码等方面进行说明。 步骤1:安装Log4Net 通过NuGet安装 打开您的Visual Studio 2017。右键点击解决方案资源管理器中的项目,选择“管理NuGet程序包”。在浏览标签页中,搜索“log4net”。从搜索结果中选择“log4net”,点击“安装”。 步骤2:配置Log4Net 创建配置文件段 如果是Windows窗体应用或控制台应用,您应该在App.config文件中添加配置;对于ASP.NET应用,则在Web.config中添加。在相应的配置文件内添加以下XML配置段作为示例,定义一个控制台Appender和一个滚动文件Appender: <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <!-- 控制台Appender --> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date{ABSOLUTE} %level %logger - %message%newline"/> </layout> </appender> <!-- 滚动文件Appender --> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="Logs\\log-file.txt"/> <appendToFile value="true"/> <rollingStyle value="Size"/> <maxSizeRollBackups value="5"/> <maximumFileSize value="10MB"/> <staticLogFileName value="true"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date{ABSOLUTE} %level %logger - %message%newline"/> </layout> </appender> <!-- 根记录器配置 --> <root> <level value="

一分钱不花!本地部署Google最强开源AI大模型Gemma教程

谷歌发布了轻量级开源系列模型Gemma,其性能强大,可与主流开源模型竞争。通过Ollama可轻松部署Gemma模型,并使用JANAI美化UI界面。显卡在AIGC应用中至关重要,推荐选择性能强、显存大的NVIDIA系列显卡。 半个月前,谷歌搞了一波突然袭击,毫无预兆地发布了新一代AI模型Gemma,并宣称这是全球性能最强大的轻量级开源系列模型。 根据Google介绍,开源模型Gemma使用了和Gemini同源的技术,总共有20亿参数和70亿参数两种规模,每个规模又分预训练和指令微调两个版本。 在Gemma官方页面上,Google给出了Gemma在语言理解、推理、数学等各项标准测试中的得分,其中70亿参数模型击败了主流开源模型Llama-2和Mistral,直接登顶Hugging Face开源大模型排行榜,成为目前全球最火热的开源大模型之一。 与Gemini的全家桶路线不同,Gemma这次主打轻量高性能,拥有2b、2b全量版、7b、7b全量版4种版本。 其中最基础的2b模型即便是在没有独显的笔记本电脑上都能尝试运行,而规模更大的7b、7b全量版分别需要8GB和16GB显存。 经过实测,虽然Gemma的使用体验不如ChatGPT-4等成熟的闭源大模型,但是本地运行模式还是有其存在的意义的,对于私密性要求较强的用户,也可以在断网的情况下本地加载运行,不用担心相关信息泄露等等。 本次就为大家分享本地部署Gemma的操作流程,并演示如何使用JAN AI来实现UI界面访问Gemma。 一、安装Ollama Ollama 是一个专为运行、创建和分享大型语言模型而设计的开源项目,为开发者和研究者提供了一个平台,使得他们可以更方便地部署、管理和使用这些大型语言模型。目前Ollama支持支持 macOS、Windows、Linux 和 Docker等多种安装方式,还能通过 API 方式为本地 AI 服务提供便捷途径。 目前Ollama支持的模型如下图所示: 这里我们以Windows系统为例来演示,首先去Ollama的官网或者GitHub页面下载最新的Windows版本安装包: https://ollama.com/ https://github.com/ollama/ollama 下载安装包后,一路点击“下一步”安装即可。 完成安装后,点击桌面图标运行Ollama,此时桌面右下角Windows系统托盘里有正在运行羊驼图标: 接下来我们进入CMD命令提示符,输入“ollama --version",当看到ollama版本号正确显示时,就已经完成安装了。 二、拉取并运行Gemma模型 这一步我们直接使用最简单的方法,使用Ollama来拉取Gemma的模型文件。请注意,由于文件服务器在国外,所以我们需要一些魔法上网的技巧,请自行研究。 以对电脑配置要求最低的Gemma 2b基础版模型为例,在命令提示符中,我们输入ollama run gemma:2b代码并回车,Ollama会自动从模型库中拉取模型文件并进行运行。当模型加载后,会显示success的标识,此时我们就可以输入汉字与Gemma:2b进行对话了。 如果想要结束对话,我们可以在Gemma的信息输入框中输入/bye即可。 到底为止,Gemma在我们本地已经部署成功了,这里顺带说些其他的事儿。 1.首先Ollama虽然在GitHub页面中只列出了Gemma 2b和7b基础版模型的拉取代码,但实际上我们还是能通过它来拉取全量版模型的,代码分别如下: ollama run gemma:2b-instruct-fp16 ollama run gemma:7b-instruct-fp16 2.想要知道目前Ollama中已经拉取了哪些模型,可以用ollama list来实现: Ollama的其他命令可以参考下图: 三、使用JAN AI美化UI界面 通过Ollama在本地部署Gemma后,我们虽然能在命令提示符中与模型对话,但是这种方式未免也太过麻烦了,所以还是需要有一个类似nextChat之类的软件来美化一下UI界面,同时还可以实现更多功能。 本来Ollama官方推出了open-webui这个开源项目,不过目前该项目尚未推出Windows安装包,在wsl中使用docker安装的方式又有点儿麻烦,所以经过实现,这里还是选择UI非常好看的JAN AI来与Ollama进行链接吧。 首先我们要到JAN的官方网站下载Windows客户端,并直接安装: https://jan.ai/ 在JAN的官网上,有非常详细的操作手册,我们可以在其中找到关于如何链接Ollama的方法。 1.启动 Ollama 服务器 首先我们要通过命令提示符启动 Ollama 服务器,并且加载运行我们要跑的Gemma版本,这里以7b全量版为例: 根据有关 OpenAI 兼容性的 Ollama 文档,Ollama在运行时会提供类似OpenAI的API服务,我们可以使用网址 http://localhost:11434/v1/chat/completions 连接到 Ollama 服务器。

快去复习吧+++常用算法及参考算法 递推法++穷举法++排序(冒泡、选择)++查找(顺序、折半)++字符串处理++方程求根++无穷级数求和

接上:常用算法及参考算法 (1)累加 (2)累乘 (3)素数 (4)最大公约数 (5)最值问题 (6)迭代法 常用算法及参考算法 7. 递推法 递推法通常用于通过已知的前一项或几项来计算数列的下一项。例如,斐波那契数列: #include <stdio.h> int fibonacci(int n) { if (n <= 1) return n; return fibonacci(n - 1) + fibonacci(n - 2); } int main() { int n = 10; printf("The %dth Fibonacci number is %d\n", n, fibonacci(n)); return 0; } (注意:上述斐波那契实现是递归的,但对于大数可能效率较低。通常使用迭代递推实现。) 8. 穷举法 穷举法用于遍历所有可能的解。例如,找出1到100之间的所有素数: #include <stdio.h> #include <stdbool.h> bool is_prime(int num) { if (num <= 1) return false; for (int i = 2; i * i <= num; i++) { if (num % i == 0) return false; } return true; } int main() { for (int i = 2; i <= 100; i++) { if (is_prime(i)) printf("

教程丨免费离线AI大模型,断网也能用

Ollama本地部署大模型教程 我们一般聊的大模型,基本都是闭源的,比如ChatGPT、Bard、Claude、文心一言、智谱清言等等。我们登录别人的网站就可以使用。现在还有一些模型是开源的,这些一般可以本地部署,就是你不上网也可以用的大模型。 开源模型通常有自己的开发者社区,你可以去huggingface和GitHub上找到它们。 Hugging Face:https://huggingface.co/GitHub:https://github.com/ 正常来说,本地模型的部署,涉及配置复杂的依赖关系、管理硬件资源、处理可能出现的兼容性问题等。这对我们这种缺乏技术背景的用户来说太复杂了。 这时候就有人想办法了:能不能简化流程,让操作方式更友好一点? ollama就应运而生了。自动化的安装过程、简化的配置选项和易于使用的界面,立刻就降低了部署的门槛。Ollama 主要面向 macOS 和 Linux 用户,Windows也快了。 1.官网下载客户端 首先第一步,来这个网站: Ollama:https://ollama.ai/ 先把客户端下载了。这一步很简单,下载下来双击安装包就装完了。启动后,很意外,你会发现没有反应,除了状态栏里多了一个小图标。点一下没有想象中那样弹出来一个窗口,就只是出来这么一行小字——Quit Ollama。 是不是完全不适应?跟我们想的那种东西一点也不一样。不过这个确实就安装完了。 2.认识终端app 这个ollama你可以把它理解成是一个大模型的加载程序。使用这个ollama,需要你打开终端,这个终端app在启动台可以搜到。长这样: 点开终端以后终于弹出来一个像记事本一样的界面: 这就是我们操作的地方了。现在你可以先感受一下,在上面输入ollama,然后点回车,你会发现界面出现了如下变化: 上面serve、create、show、run等等都是ollama的命令。其中这几个我们经常会用: # 列出模型list# 启动模型run# 移除模型rm 使用的时候,前面要加上ollama。比如:我要看看自己下载的全部的模型,那我就要在终端输入: ollama list 然后点回车。我要启动一个模型,假如这个模型叫ph2,那就需要输入: ollama run ph2 然后点回车。我要删除一个不想要的模型,比如ph2,那就要输入: ollama rm ph2 然后点回车。比如,我自己想看看都下载了什么模型,我就在终端输入ollama list,结果是这样的: 这里面显示我下载了5个模型。 llama2-uncensored:7b-chat-fp16nous-hermes2-mixtral:latestphi:latestqwen:14b-chatyi:6b-chat 那么我想启动一下我已经下载好的yi:6b-chat这个模型,那我就在下面输入: ollama run yi:6b-chat 箭头所指出的地方就会动,这个表示正在启动中: 然后,等下面这样就是启动完成了: 你在这里可以跟它对话,就像聊天一样: 如果此时,你想换个模型,可以先输入/bye结束这个,然后换下一个,比如nous-hermes2-mixtral:latest这个模型。那你需要输入: ollama run nous-hermes2-mixtral:latest 启动以后,我们来试试这个: 效果还不错对吧。等等,我们还没有说怎么下载模型呢。 3.本地大模型下载 实际上刚才下载也已经说完了。因为上面有几条命令,就很神奇,在下载好模型的情况下,它是启动,在没有下载好模型的情况下,它就会下载,然后启动: ollama run yi:6b-chat ollama run nous-hermes2-mixtral:latest 那么问题来了,ollama run这个知道,那后面的名字是哪里来的呢?是从这里来,你继续回到ollama的官网: Ollama:https://ollama.ai/ 上面有一个模型下载页: models:https://ollama.ai/library

Python制作一个无法拒绝的表白界面(完整代码)

运行时弹出界面 当点击“不要”时弹出 当点击“×”时弹出 文章目录 环境需求完整代码详细分析系列文章写在后面 环境需求 python3.11.4及以上版本PyCharm Community Edition 2023.2.5pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需要这个库哦~) 【注】 python环境搭建请见:https://want595.blog.csdn.net/article/details/134586653pyinstaller使用教程见:https://want595.blog.csdn.net/article/details/134106807 完整代码 import tkinter as tk import tkinter.messagebox root = tk.Tk() root.title('❤') root.resizable(0, 0) root.wm_attributes("-toolwindow", 1) screenwidth = root.winfo_screenwidth() screenheight = root.winfo_screenheight() widths = 300 heights = 100 x = (screenwidth - widths) / 2 y = (screenheight - heights) / 2 root.geometry('%dx%d+%d+%d' % (widths, heights, x, y)) # 设置在屏幕中居中显示 tk.Label(root, text='亲爱的,做我女朋友好吗?', width=37, font=('宋体', 12)).place(x=0, y=10) def OK(): # 同意按钮 root.

使用 Web Serial API 在浏览器中实现串口通讯(纯前端)

文章目录 目的相关资料使用说明代码与演示总结 目的 串口是非常常用的一种电脑与设备交互的接口。目前在浏览器上直接使用电脑上的串口设备了,这篇文章将介绍相关内容。 相关资料 Web Serial API 相关内容参考如下: https://developer.mozilla.org/en-US/docs/Web/API/Serial https://developer.mozilla.org/en-US/docs/Web/API/SerialPort https://wicg.github.io/serial/ 这个API目前还处于实验性质,只有电脑上的Chrome、Edge、Opera等浏览器支持: 另外还需要注意的是从网页操作设备是比较容易产生安全风险的,所以这个API只支持本地调用或者是HTTPS方式调用。 对于这个API谷歌有提供示例工程: 在线使用:https://googlechromelabs.github.io/serial-terminal/ 项目地址:https://github.com/GoogleChromeLabs/serial-terminal 下面这个项目做的挺不错的,直接拿来用也很好: 在线使用:https://itldg.github.io/web-serial-debug/ 项目地址:https://gitee.com/itldg/web-serial-debug or https://github.com/itldg/web-serial-debug 使用说明 使用下面方法可以侦测电脑上串口设备插入与拔出: // 全局串口设备插入事件 navigator.serial.onconnect = (event) => { console.log("Serial connected: ", event.target); }; // 全局串口设备拔出事件 navigator.serial.ondisconnect = (event) => { console.log("Serial disconnected: ", event.target); }; // 也可以对单个的串口设备设置插入与拔出事件 使用下面方法可以显示电脑上的串口设备选择授权,或者显示已授权的串口设备列表: // requestPort方法将显示一个包含已连接设备列表的对话框,用户选择可以并授予其中一个设备访问权限 // 对于USB虚拟串口而言该方法还可以传入一个过滤器,指定PID&VID的串口 const port = await navigator.serial.requestPort(); // port.forget(); // 取消授权 // port.getInfo() // 获取PID&VID (对于蓝牙串口好像是显示服务号) // getDevices方法可以返回已连接的授权过的设备列表 const ports = await navigator.

除了OpenAI ChatGPT !还有这9个不可错过的中文AI工具,甚至能平替

ChatGPT 是一种人工智能聊天机器人,它能够通过自然语言处理技术与用户进行互动对话。它通常被设计为能够理解和生成人类语言,提供信息、回答问题、进行对话甚至参与角色扮演等。ChatGPT 可以应用于多种场景,包括客户服务、教育、娱乐和个人助理等。 但是,2024年的今天,除了openAI的chatGPT,很多中文聊天机器人如雨后春笋般集体涌现出来。并且,效果,功能都不错,反而更实用中文使用习惯。 1.kimi(月之暗面) 一个由月之暗面科技有限公司开发的人工智能助手。我能够通过文本对话与用户互动,提供信息、解答问题、阅读和理解文档内容,以及结合搜索结果提供帮助。我的设计宗旨是确保内容安全合规,同时遵循用户的指令,提供有帮助和准确的回答。我擅长中文和英文对话,并且能够处理多种文件格式和网页内容。 具有以下特色: 多语言对话能力:Kimi 擅长中文和英文的对话,能够理解和生成两种语言的文本。 长文本处理:Kimi 能够支持多轮对话,总和最多20万字的输入和输出,单轮输出最多3000字。 文件阅读:用户可以将TXT、PDF、Word文档、PPT幻灯片、Excel电子表格等格式的文件发送给Kimi,Kimi能够阅读并理解文件内容。 网页内容解析:Kimi 能够解析用户发送的网页链接,阅读网页内容后结合这些信息回答问题。 搜索能力:Kimi 可以结合搜索结果为用户提供更加全面和准确的回答。 安全性和合规性:Kimi 的回答遵守中华人民共和国的法律,拒绝涉及不当内容的问题。 角色扮演:在接到角色扮演要求后,Kimi 能够根据用户的要求以特定角色进行对话。 幽默与专业并存:Kimi 在介绍自己时保持幽默和简短,在交流时根据场景采用口语化或专业严谨的语言风格。 用户指令遵循:Kimi 会直接遵循用户的指令,对于模糊不清的指令会询问以获取更具体的指导。 Kimi+功能:在网页端,Kimi 提供了“Kimi+”功能,允许用户根据特定需求自定义Kimi模型。 2.文心一言 "文心一言"(Wenxin Yiyan)是百度公司推出的一款人工智能(AI)聊天机器人,它具备自然语言处理能力,能够与用户进行对话,理解用户的问题,并提供相应的回答或服务。文心一言通常被集成在百度的搜索服务和各种应用程序中,以增强用户体验,提供个性化的搜索结果和智能助手服务。 文心一言的特色可能包括: 智能对话:能够理解用户的自然语言查询,并给出准确的回答。 搜索集成:与百度搜索引擎紧密结合,提供搜索结果的智能解读。 个性化服务:根据用户的搜索习惯和偏好提供个性化的服务和建议。 多场景应用:可能被应用于不同的场景,如在线客服、教育辅助、生活咨询等。 3.通义千问 通义千问是阿里云推出的一款大型语言模型,它在AI领域具有显著的性能和影响力。根据1,通义千问2.5版本在模型性能上全面赶超了GPT-4 Turbo,成为地表最强的中文大模型。该模型专注于基础模型的技术研发,并且在理解能力、逻辑推理、指令遵循、代码能力等方面都有显著提升,特别是在中文能力方面持续领先业界 具有以下特色: 技术领先:在中文理解和多模态能力上表现突出。 开源贡献:发布了业界领先的1100亿参数开源模型。 多模态和专业模型:涵盖视觉理解、智能编码等多个领域。 广泛应用:支持API调用和模型下载,适用于企业和个人用户。 持续创新:在文生图、文档解析等方面不断推出新能力。 坚定开源:推动大模型技术的普及和应用落地。 全能助手:致力于成为集成多种智能服务的AI助手。 4.讯飞星火 讯飞星火是科大讯飞推出的一款认知智能大模型589,具备文案创作、图片生成、智能搜索、数据分析、提炼总结、智能翻译、灵感获取、创作润色以及代码编程等多项能力。它能够提升用户的工作效率,解决生活中的难题59。 具有以下特色: 多语种语音识别与合成:星火语音大模型在包括中文、英语、法语、俄语等37种主要语言的语音识别性能上超越了OpenAI Whisper V3,并在多语种语音合成方面取得突破性进展。 情绪识别与表达:星火语音大模型在情绪识别和表达上取得了显著进展,使得人工智能与人类交互更加流畅和富有同理心。 文本生成与理解:星火具备强大的文本生成、知识问答、逻辑推理等能力,能够在多种语言上提供准确、自然和贴近人类交流的体验。 多模态能力:星火支持多模态输入和表达,能够处理图文并茂的内容,并提供相应的文本和语音反馈。 代码生成:星火还具备代码生成能力,能够基于自然语言生成业务流程和RPA脚本,帮助企业员工完成重复性工作。 方言识别:星火展现出方言识别的能力,这是其多语言理解能力的一部分。 产品级应用:与仅提供模型API不同,讯飞星火通过硬件产品提供实际的应用体验,用户购买相关硬件后即可升级系统体验大模型带来的能力。 教育领域应用:星火在教育领域有广泛应用,例如,搭载认知大模型的AI学习机能够实现中英文作文的类人批改。 智能办公应用:星火还能够提升智能办公本、录音笔等产品的体验,例如通过自动校对和润色提升工作效率。 向全民开放:科大讯飞宣布讯飞星火向全民开放,使得更多的人能够体验到其高度逼近人类的认知智能能力。 5.豆包AI 豆包是字节跳动开发的一款人工智能产品,它基于大语言模型技术,具备文本生成、语言理解、知识问答、逻辑推理、数学计算、代码生成等能力。豆包可以应用于多种场景,如内容创作、对话交流、信息检索等,旨在提高用户的工作和学习效率,丰富日常生活体验。 豆包的特点可能包括: 多轮对话:能够理解上下文,进行流畅的对话交流。 内容创作:支持文学创作、文本摘要、角色扮演等。 逻辑推理:能够基于输入数据进行推理和分析。 知识增强:解决事实性、时效性问题,提升内容生成效果。 6.腾讯元宝 腾讯元宝是腾讯公司基于其自研的混元大模型开发的一款C端AI助手App。它提供了包括AI搜索、AI总结、AI写作在内的多项核心能力,能够解析多种格式的文档,如PDF、Word、txt等,并支持超长的上下文窗口20。此外,腾讯元宝还面向日常生活场景,提供了AI绘画、AI头像、角色扮演等特色AI功能,并允许用户创建个人智能体1213。腾讯元宝的AI搜索功能接入了微信搜一搜、搜狗搜索等,覆盖了腾讯生态内容及互联网权威信源,具备腾讯特色的搜索体验。腾讯元宝致力于成为用户生活和工作中的智能助手。