我用OpenGlass做了一个AI眼镜【上篇】 | Rocket Lu

mikel阅读(544)

我用OpenGlass做了一个AI眼镜【上篇】

来源: 我用OpenGlass做了一个AI眼镜【上篇】 | Rocket Lu

在AI硬件领域,随着大型语言模型(LLM)的价格战愈演愈烈,文心、豆包都已经进入卷价格阶段,进入“厘时代”。5月,GPT-4o和Gemini家族的发布,OpenAI和Google也在将创新焦点转向多模态大型模型。
AI硬件的想象空间愈发广阔,逐渐从单纯的AI玩具逐步转向消费级AI电子设备。自去年以来,消费电子市场上涌现出几款颇具代表性的AI新品,其中包括智能眼镜Ray-Ban Meta、可穿戴投影设备Humane Ai Pin,以及在今年CES上亮相的掌上设备Rabbit R1。

消费级AI 硬件

01 Rabbit R1

在2024年CES展会上首次亮相的Rabbit R1,首批1万台迅速售罄,自推出以来销售额已突破1000万美元,显示出消费者对这款产品的极高接受度和需求。对于新一代AI硬件设备,市场充满了期待和想象。

02 Rewind(https://www.limitless.ai/

Rewind的外设主要是4月16日刚开放预售的Limitless Pendant,售价99美元,具备Wi-Fi和蓝牙功能,能够记录整日的对话和个人见解。它可以收集云端和现实世界中的数据,能够记录日常会议、即兴对话等,并通过配套的应用程序方便地回放。用户可以通过轻触吊坠来标记对话中的重要时刻,便于后续查找,并且可以随时与个性化AI进行互动,获取所需信息或帮助
notion image

03 AI PIN(https://humane.com/shop

notion image
AI PIN是初创公司Humane的首个产品,一款可以别在衣服上的AI设备,于在当地时间11月9日正式发布。Humane成立于2018年,由前苹果软件工程总监Bethany Bongiorno和前苹果设计师Imran Chaudhri 作为夫妻档共同创办。AI Pin在去年11月10日开始接受预定,今年4月11日开始发货,售价为699美元起,但每月还需额外支付24美元订阅费。

04 Meta Ray-Ban Glass(https://www.ray-ban.com/usa/ray-ban-meta-smart-glasses

notion image
Meta与雷朋(Ray-Ban)联名的第二代智能眼镜在2023年第四季度的发货量超30万副,远超Meta此前预期。Ray-Ban Meta发布于去年9月,当时它与Quest 3一同亮相,产品起售价299美元,与上一代保持一致,镜片可以定制,镜片起售价17美元起步。今年4月,Meta团队称已经提高眼镜的生产计划,并将为眼镜全面开放多模态AI能力。Meta AI是一个多模态人工智能,最早亮相于去年Meta Connect大会,当时Meta计划逐步将其引入到Facebook、Instagram、Quest 3以及Ray-Ban Meta等软硬件产品矩阵当中。对于Ray-Ban Meta而言,Meta AI于去年12月在美国地区启动了抢先体验,并于4月正式面向美国和加拿大用户推出。
根据测评来看,AI Pin在体验方面已经“翻车”,Rabbit R1被质疑与AI手机趋同,热度逐渐变淡。Ray-Ban Meta是目前相对较为成功的一个AI电子产品。但是我们可以看到整体AI设备的售价都是在100美元以上,还是偏贵。
5月13日,正好看到Nik Shevchenko分享了一个视频,展示他用20 美元制作了一个外设,挂在眼镜边上,就可以做一个AI智能眼镜,于是我准备复刻一个。
notion image

首先是准备工作

需要的硬件是一台电脑(我用的是MacPro M2芯片),一个芯片主板、一个电池、一个3D打印的外壳、一根质量好的TypeC数据线。
这些国内都能买到,需要购买清单的可以滴滴我(😄我找开发板老板,化缘了一个618粉丝专属福利,备注Rocket)
等硬件都拿到手后,可以开始软件工作了。

01 下载Arduino IDE

这个软件我在整合包里准备好了,大家可以直接回复“Glass”下载

02 设置ESP32S3主板程序

打开Terminal,输入下面代码,把OpenGlass项目代码下载到本地,你也可以手动下载。

shell

git clone https://github.com/BasedHardware/OpenGlass.git
Shell
然后打开找到OpenGlass文件夹里的 firmware folder 文件夹,并在 Arduino IDE 中打开 .ino 文件。
为ESP32S3 Sense主板设置 Arduino IDE:
notion image
先将 ESP32S3 板 添加到您的 Arduino IDE:

  • 菜单栏,选择“文件”>“首选项”(File > Preferences),然后在“其他 Boards Manager URL”(“Additional Boards Manager URLs” )填写这个链接: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  • 导航到“工具”>“开发板”>“开发板管理器…”(Tools > Board > Boards Manager),在搜索框中输入关键字 esp32 ,选择最新版本的 esp32 并安装它。我这两个都安了一下,但任意选一个就行。(esp32升级了,所以只下第二个的2.0.17版本就行,不要下两个了,也不要升级版本,不然都会报错!)
notion image
notion image
  • 选择您的主板和端口:
    • 在 Arduino IDE 顶部,选择开发板和端口。
    • 弹窗中搜索 xiao 并选择 XIAO_ESP32S3 。
notion image
notion image
  • “PSRAM:”设置为“PSRAM:”“OPI PSRAM”
在刷机之前,转到Arduino IDE中的“工具”下拉列表,并确保将“PSRAM:”设置为“PSRAM:”“OPI PSRAM”
notion image
官方的教程就到这了,但如果你这个时候进行编译的话,一定会发现哐哐报错。
因为还有一些依赖库没有安装。
我们还需要点击左边菜单的库,搜索并安装 ArduinoBLE
notion image
安装完后,基本就ok了,如果还有报错,可以看看是否还有依赖库没安上。
现在就可以,用一个type c数据线把板子和电脑连接,就可以进行烧录程序了。
  1. 点击 验证 按钮(对号图标),检查代码是否有错误。
  1. 点击 上传 按钮(箭头图标),将代码上传到XIAO ESP32S3开发板。

03 验证功能

  1. 打开Arduino IDE的 串口监视器,检查输出信息。
  1. 确保设备连接到蓝牙。
  1. 检查摄像头是否能够拍照,并通过蓝牙发送数据。
按照这些步骤进行操作,你应该能够成功地将固件上传到XIAO ESP32S3开发板,并实现摄像头和蓝牙的功能。
软件工作基本结束了,这个时候还有2个步骤需要完成。

04 完善硬件:XIAO ESP32S3开发板连接天线、摄像头、电池

天线的安装
在XIAO ESP32S3的正面左下角,巧妙地设计了一个独立的“WiFi/BT天线连接器”。为了捕获更清晰的WiFi和蓝牙信号,您需要从包装中取出附带的天线,并细心地将其安装至连接器上。
在安装天线时,您可能会发现直接用力按压并非易事,且可能对手指造成不适。这里有一个安装小窍门:首先,轻轻地将天线连接器的一侧嵌入到连接器块内,然后,从另一侧轻轻下压,您会发现天线便能顺滑地安装到位。
同样地,当需要拆卸天线时,也请避免使用蛮力直接拉扯。只需在一侧施力,轻轻地提起,天线便能轻松脱离。
notion image
安装扩展板(用于Sense)
XIAO ESP32S3 Sense,还包括一个扩展板。此扩展板具有1600*1200 OV2640摄像头传感器、板载SD卡插槽和数字麦克风。
通过使用XIAO ESP32S3 Sense安装扩展板,您可以使用扩展板上的功能。
安装扩展板非常简单,只需将扩展板上的连接器与XIAO ESP32S3上的B2B连接器对齐,用力按压并听到“咔嗒”一声,即可完成安装。
notion image
焊接电池
其实如果你不真的戴出门,其实可以不用接。这块需要焊接,没有焊接技能的人不推荐自己动手,容易把板子搞坏。焊接电池,电池负极焊接到开发板的负极,将正极焊接到开关上,然后再焊接回开发板的正极。这个部分我会在下篇里详细讲到。

05 启动照片的页面程序

烧录完主板,还需要设置一下 Groq 和OpenAI的API。
  1. 在位于 https://github.com/BasedHardware/OpenGlass/blob/main/sources/keys.ts keys.ts 的文件中添加 Groq 和 OpenAI 的 API 密钥。
  1. 对于 Ollama,从存储库中自行托管 https://github.com/ollama/ollama 的 REST API,并将 URL 添加到 keys.ts 文件中。
    1. 启动应用程序:

shell

npm start
Shell
如果使用 yarn 启动应用程序

shell

yarn start
Shell
启动成功,你在terminal能看到web页面地址,复制到浏览器可以打开。
notion image
目前这个阶段,我通过这个AI设备,实现的功能是可以每隔4秒自动拍照照片,并自动上传记录在本地电脑上。

0607更新-常见报错

好多小伙伴在最后启动这里遇到了问题,我再补充一下
如果在终端中收到“command not found: npm”的错误消息,这意味着你的系统中没有安装Node.js和npm,或者它们没有正确配置在你的系统路径中。以下是安装和配置Node.js和npm的步骤:

使用nvm(Node Version Manager)

    1. 安装nvm

shell

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
Shell
    1. 加载nvm(你可能需要将下面的命令添加到你的~/.zshrc~/.bashrc文件中):

shell

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
Shell
    1. 重启终端或重新加载配置文件

shell

source ~/.zshrc  # 如果你使用的是zsh
# 或者
source ~/.bashrc # 如果你使用的是bash
Shell
    1. 安装最新版本的Node.js

shell

nvm install node
Shell
    1. 验证安装

shell

node -v
npm -
Shell

直接安装Node.js

  1. 下载并安装Node.js
      • 下载适用于你操作系统的LTS(长期支持)版本并进行安装。
    1. 验证安装

shell

node -v
npm -v
Shell

配置项目

在安装Node.js和npm后,进入你的项目目录并运行以下命令:
    1. 安装项目依赖

shell

npm instal
Shell
    1. 启动项目

shell

npm start
Shell
如果安装和配置都正确,你的项目应该会成功启动。如果你在安装或启动过程中遇到问题,请确保你已经按照上述步骤正确安装了Node.js和npm,并且在正确的目录中运行命令。

安装Expo

Expo,这是一个用于构建React Native应用的工具。需要先安装Expo CLI,然后才能启动你的项目
以下是安装和使用Expo的步骤:
1. 安装Expo CLI
  1. 打开终端。
    1. 运行以下命令来全局安装Expo CLI:

shell

npm install -g expo-cli
Shell
    1. 验证安装:

shell

expo --version
Shell
如果显示Expo CLI的版本号,说明安装成功。
2. 启动项目
    1. 确保你在项目目录中:

shell

cd /path/to/OpenGlass
Shell
    1. 安装项目依赖(如果还没有安装):

shell

npm install
Shell
    1. 运行项目:

shell

npm start
Shell
3. 安装过程可能遇到的问题
权限问题
如果你在安装Expo CLI时遇到权限问题,可以使用以下命令在前面添加sudo(macOS和Linux):

shell

sudo npm install -g expo-cli
Shell
然后输入你的系统密码。
4. 使用Expo开发
安装并启动Expo后,你可以在项目目录中运行以下命令来启动开发服务器:

shell

expo start
Shell
这将启动一个本地开发服务器,并打开一个浏览器窗口,显示一个二维码。你可以使用Expo Go应用扫描这个二维码,在你的移动设备上预览你的应用(目前手机端还没开发,需要自己做个App。
版本提示
如果你的Node.js版本较高(17+),你可能需要降级到一个兼容的版本。你可以使用nvm来管理和切换不同版本的Node.js。
查看当前的Node.js版本:

shell

node -v
Shell
安装一个兼容的版本(比如16 LTS):

shell

nvm install 16
nvm use 16
Shell
确认使用的版本:

shell

node -v
Shell
然后重新运行项目:

shell

npx expo start
Shell
如果你nvm没有安装,那先安装一个Homebrew(Mac),那么接下来你需要
以下是使用 Homebrew 安装 nvm 的步骤:
  1. 打开终端:首先,您需要打开您的终端应用程序。
    1. 安装 Homebrew(如果您尚未安装):

shell

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Shell
安装过程中可能会提示您输入密码,并且可能需要输入 sudo 来获取必要的权限。
    1. 使用 Homebrew 安装 nvm

shell

brew install nvm
Shell
    1. 验证安装:安装完成后,您可以通过运行以下命令来验证 nvm 是否已正确安装:

shell

nvm --version
Shell
    1. 重新加载您的 shell 配置文件或重新启动终端,以确保 nvm 可以被正确识别:

shell

brew shell-nvm
Shell
    1. 安装 Node.js 版本:使用 nvm 安装您需要的 Node.js 版本,例如安装版本 16:

shell

nvm install 16
Shell
    1. 设置默认 Node.js 版本(如果需要):

shell

nvm alias default 16
Shell

下篇预告

连接LLM大模型,实现照片描述、Ask Photo照片内容对话
增加记录语音功能
文件按时间戳存储
加上控制开关,整个漂亮的外壳
💡
对这个话题感兴趣的小伙伴,欢迎加我一起探索交流~ 专门建了一个【OpenGlass交流群】欢迎大家互相交流!
notion image
notion image

又火一个惊艳的开源项目,诞生了!

mikel阅读(298)

来源: 又火一个惊艳的开源项目,诞生了!

大家好,今天继续聊聊科技圈发生的那些事。

一、ToonCrafter

ToonCrafter 可以通过预训练的图像到视频扩散先验来插值两个卡通图像。通俗点说,就是给出起始帧,给出结束帧,ToonCrafter会帮你补全中间的部分,生成一段完整的视频图像。另外,它还有个功能,基于给出的草图,给草图中的内容上色。

图片
图片

ToonCrafter基于图像条件的扩散模型,通过丰富的运动先验来合成复杂的非线性运动和现象。主要包括三个关键的技术:

  • 卡通矫正学习:通过对预训练的生成模型进行微调,使其能够更好地理解动画的上下文,并生成与卡通风格匹配的内容。
  • 细节注入与传播解码:引入一个基于双参考的3D解码器,使用混合注意力残差学习机制,将有损的帧潜在变量转换回像素空间,并注入输入图像中的细节信息。
  • 基于草图的可控生成:ToonCrafter配备了一个帧独立的草图编码器,使用户能够通过草图输入来引导生成过程。

我们来看一个具体的例子:

图片

将这两张图作为起始帧和结束帧,让 ToolCrafter 进行补全。

图片

成功补全风中凌乱的发型,效果生动逼真,灵动飘逸,毫无违和感。

这个工具最优秀的特点是,生成出的gif图体积极小,给出的这些demo示例大多都只有几百KB的大小。同时,还能兼顾生成质量。

图片

项目已经开源,也已经有了 HuggingFace 的在线体验,感兴趣的小伙伴,可以体验看看。

在线体验地址:

https://huggingface.co/spaces/Doubiiu/tooncrafter

项目地址:

https://github.com/ToonCrafter/ToonCrafter

二、Stable-Diffusion-3-Medium

备受瞩目的Stable Diffusion 3,终于开源了!

图片

SD3 自从二月份发布以来,其优秀的性能就一直好评不断。而在几天前的6月12日,Stability AI 正式宣布开源 SD3!

据悉,本次开源的Stable Diffusion 3 Medium 包含20万亿个参数,代表了Stability AI目前的最高水准。在 HuggingFace 上已经可以下载到模型权重文件了。

话不多说,我们先来看看效果:

图片
An astronaut riding a green horse

SD3相比起前代,主要提升了生成图像的细节处理,图像的质量会很高。同时,模型的尺寸非常优秀,即使是在常见的消费级GPU上,也有非常卓越的性能。

顺提一句,SD3已经能支持8k生成了,不过整出来的文件过大,这里就不直接放效果图了。

不过目前也有消息称,SD3在人像生成方面可能会出现一些比较“惊悚”的现象,针对整个人体的生成,SD3似乎有些不着调,就像这样…

图片

或许是数据集的问题,SD3无法理解完整的人类图像,在生成此类图像的时候,就略显尴尬了。

不过,抛开这个问题不谈,SD3绝对是一款优秀的文本生成图像模型!无论是生成图像的精细程度,还是生成效率,都有很大的提升。感兴趣的小伙伴,可以自行体验一下。

在线体验地址:

https://huggingface.co/spaces/stabilityai/stable-diffusion-3-medium

三、consistent-character

今天咱们要说的第三个项目 consistent-character,是一个偏娱乐向的项目。

这个项目在 HuggingFace 上的介绍非常简单:Create images of a given character in different poses,也就是让图像上的角色以不同的姿势出现。当然,既然要提供prompt生成,常见的换衣服功能也是必不可少的。

所以,我们要第N次请出咱们的皮衣刀客了,每次不知道拿谁当输入素材的时候,总会找到老黄的…

图片

作为示例,咱们就用默认的prompt吧,换身衣服就可以了。

图片

这里一定要记得打开这个选项,让生成的图像能有随机的pose,注入项目的灵魂。

图片
图片

效果还不错!咱们的皮衣刀客瞬间斯文了一把,穿上了笔挺的西装,一副大佬样。可以看到,项目生成的图片给老黄换了几个不同的姿势,甚至是个“无死角”的帅哥呢。

那么,如果我们再换一个prompt,来点不一样的风格呢?

a man, Mohican hairstyle, rocker style undershirt.

男子,莫西干发型,摇滚风格打底衫

图片

画风突变!这感觉,令人有点无法言说。

这个项目目前还没有开源,这里给出 HuggingFace 的地址,可以放上自己想操作的照片,给出prompt,就可以试试这个奇妙的效果了。不过,如果照片分辨率太高,等待时间可能会比较长。感兴趣的小伙伴可以自行体验看看!

在线体验地址:

https://huggingface.co/spaces/fffiloni/consistent-character

好了,本期的内容就是这么多,我们下期再见!

一周万星的文本转语音开源项目「GitHub 热点速览」 - 削微寒 - 博客园

mikel阅读(300)

来源: 一周万星的文本转语音开源项目「GitHub 热点速览」 – 削微寒 – 博客园

上周的热门开源项目让我想起了「图灵测试」,测试者在不知道对面是机器还是人类的前提下随意提问,最后根据对方回复的内容,判断与他们交谈的是人还是计算机。如果无法分辨出回答者是机器还是人类,则说明机器已通过测试,具有人类的智力水平。

​虽然现在大模型的回答还充满 AI “味”,可以一眼识破,但 GitHub 上有个开源项目:ChatTTS,它根据文本生成的语音,已经可以做到“以假乱真”,不单单是我这么觉得,一周飙升了 1w+ Star,已经足以说明大家对它的认可。

作者为了限制 ChatTTS 生成的语音,在 4 万小时模型的训练过程中添加了少量额外的高频噪音,并尽可能压缩了音质,让其更好分辨出来,从而防止不法分子用它进行诈骗等违法行为,看来生成效果已经好到作者自己都“害怕”的地步了😅

还有位开发者(lihaoyun6)因为看不惯 macOS 的录屏软件收费,就自己动手做了一个轻巧的 macOS 屏幕录制工具:QuickRecorder,它不仅功能齐全还免费开源。如果你觉得自己桌面有点单调,这有个小工具(RunCat_for_windows)可以在任务栏上显示一只奔跑的小猫,它会陪着你一起加班或写代码。文生图的效果很看提示词的质量,Omost 让你仅需一条极简的描述就能生成一张细节满满的图片,比如“一个有趣的卡通蝙蝠侠与小丑战斗”。

最后,推荐一个用当下最新的前端技术栈构建的管理后台模版:soybean-admin 和一个非常漂亮的终端文件管理器:superfile

  • 本文目录
    • 1. 开源新闻
      • 1.1 强大的对话式文本转语音模型:ChatTTS
    • 2. 开源热搜项目
      • 2.1 直接使用 ChatTTS 的 WebUI:ChatTTS-ui
      • 2.2 轻巧的 macOS 屏幕录制工具:QuickRecorder
      • 2.3 开源的在线办公套件:Univer
      • 2.4 清新优雅的管理后台模板:soybean-admin
      • 2.5 极简提示词的文生图工具:Omost
    • 3. HelloGitHub 热评
      • 3.1 在 Windows 任务栏飞奔的“小猫”:RunCat_for_windows
      • 3.2 非常漂亮的终端文件管理器:superfile
    • 4. 结尾

1. 开源新闻

1.1 强大的对话式文本转语音模型:ChatTTS

该项目是专门为对话场景设计的文本转语音模型,支持中、英双语。它不仅能够生成自然、流畅的语音,还能控制和添加笑声、停顿和语气词等。ChatTTS 生成较短的语音效果很好,几乎听不出 AI “味”。

import ChatTTS
from IPython.display import Audio

chat = ChatTTS.Chat()
chat.load_models(compile=False) # 设置为True以获得更快速度

texts = ["在这里输入你的文本",]

wavs = chat.infer(texts, use_decoder=True)

torchaudio.save("output1.wav", torch.from_numpy(wavs[0]), 24000)

GitHub 地址→github.com/2noise/ChatTTS

2. 开源热搜项目

2.1 直接使用 ChatTTS 的 WebUI:ChatTTS-ui

主语言:PythonStar:2.1k周增长:2k

该项目为 ChatTTS 提供了开箱即用的本地网页界面,可以直接在本地浏览器中使用 ChatTTS,支持文字合成语音、中英文、数字混杂等功能,并提供了 API 接口。

GitHub 地址→github.com/jianchang512/ChatTTS-ui

2.2 轻巧的 macOS 屏幕录制工具:QuickRecorder

主语言:SwiftStar:2.6k周增长:500

这是一个用 SWiftUI 编写、仅 10MB 的 macOS 屏幕录制工具,它只为做好录屏这一件事,不仅免费且功能丰富,支持窗口录制、应用录制、录制移动设备、窗口声音内录、鼠标高亮、隐藏桌面文件等功能。

GitHub 地址→github.com/lihaoyun6/QuickRecorder

2.3 开源的在线办公套件:Univer

主语言:TypeScriptStar:5.1k周增长:1k

这是一个功能丰富、易于集成的在线办公套件,它提供了类似 Google 文档、幻灯片(开发中)和表格的功能,支持富文本、表格公式、数据验证、国际化等功能。

GitHub 地址→github.com/dream-num/univer

2.4 清新优雅的管理后台模板:soybean-admin

主语言:TypeScriptStar:8.3k周增长:300

该项目是采用 Vu3、Vite5、Pinia 和 UnoCSS 等技术栈构建的管理后台模板,它不仅拥有漂亮的界面,还有清晰的项目结构、严格的类型检查、统一的代码规范,内置丰富的主题配置、国际化方案、页面组件,并且支持移动端。

GitHub 地址→github.com/soybeanjs/soybean-admin

2.5 极简提示词的文生图工具:Omost

主语言:PythonStar:2.6k周增长:2k

该项目基于 LLM 的编程能力帮用户自动完善文生图的提示词,可以根据用户输入的简短提示词生成高质量的图片,还支持图片局部修改等功能,比如将图片中的龙变成恐龙,极大地降低了编写文生图的门槛,无需复杂的提示词即可生成满意的图片。

GitHub 地址→github.com/lllyasviel/Omost

3. HelloGitHub 热评

在这个章节,将会分享下本周 HelloGitHub 网站上的热门开源项目,欢迎与我们分享你上手这些开源项目后的使用体验。

3.1 在 Windows 任务栏飞奔的“小猫”:RunCat_for_windows

主语言:C#

这是一个用 C# 写的小工具,它会在 Windows 任务栏显示一只奔跑的小猫动画,CPU 使用率越高它跑得越快。

项目详情→hellogithub.com/repository/7c37c2e3bf3142e7bf5891f5070e3606

3.2 非常漂亮的终端文件管理器:superfile

主语言:Go

这是一个现代终端文件管理器,为命令行文件操作提供了一个直观且漂亮的界面。它默认采用 Vim 风格的快捷键操作,还支持插件和主题自定义。

项目详情→hellogithub.com/repository/d791057ece4f4662be25202c21405a27

4. 结尾

以上就是本期「GitHub 热点速览」的全部内容,希望你能够在这里找到自己感兴趣的开源项目,如果你有其他好玩、有趣的 GitHub 开源项目想要分享,欢迎来 HelloGitHub 与我们交流和讨论。

WP精仿小刀娱乐网源码整套 带翻页和手机版并有3000+文章-壹软资源网

mikel阅读(263)

来源: WP精仿小刀娱乐网源码整套 带翻页和手机版并有3000+文章-壹软资源网

图片[1]-WP精仿小刀娱乐网源码整套 带翻页和手机版并有3000+文章-壹软资源网

本套源码是仿壹软资源网样式,基于WP程序开发的,改动了很多使其更简洁大方,源码无后门和加密,

可放心使用运营

 

从没有手机版到手机版发生了很大的变化这个源码我花费大概400多今天发布了!

源码无后门,我正在用的不用了,带3000+文章,带翻页,带手机版,

安装完可直接上手运营

全网首发如此完全的WP源码

上传好源码并到输入数据库,

配置数据库文件,

然后修改数据库里zige_options这个数据库,把里边的网站地址改成自己的就可以了!

后台:域名+admin_qqwang_666

源码需要伪静态才可以使用哦,记得配置上伪静态!

 

文章附件

百度网盘

 

© 版权声明

字节Coze实现多Agent模式,文内在线体验,实时给产品经理提需求_coze 多agent-CSDN博客

mikel阅读(825)

来源: 字节Coze实现多Agent模式,文内在线体验,实时给产品经理提需求_coze 多agent-CSDN博客

摘要:
多Agent模式是一种分布式计算范式,它通过将复杂任务分解为多个子任务,并由独立的智能体(Agents)并行处理,从而提高系统的处理能力和效率。这种模式在自然语言处理、机器学习和其他数据密集型应用中尤为有效。然而,多Agent系统的实施和运行需要显著的算力支持,尤其是在处理大型数据集和复杂模型时。为了满足这些需求,算力提供方正在探索新的供给模式,软硬件优化,存内计算等模式。

AI Agent 设计模式:
吴恩达教授在美国红杉 AI 活动上关于 Agent 的最新趋势与洞察,提出了目前有 4 种主要的 Agent 设计模式,分别是:

Reflection:让 Agent 审视和修正自己生成的输出;

Tool Use:LLM 生成代码、调用 API 等进行实际操作;

Planning:让 Agent 分解复杂任务并按计划执行;

Multiagent Collaboration:多个 Agent 扮演不同角色合作完成任务;

🤩 在 扣子(coze.cn)/Coze (coze.com)上,可以将上述四种模式快捷落地,本文重点介绍Reflection模式和多Agent模式。

1 Reflection模式
含义:让 Agent 审视和修正自己生成的输出。

背景:大模型的生成有时候会犯懒,可能只会部分执行Prompt导致效果有限。Reflection模式适用于让LLM自行审视和修正自己生成的输出,对生成内容进行多次自我调优,进而生成更加优质的内容。

场景:让 AI 或 LLM 说,写一个行业短评。开始写第一稿,自己阅读生成第一稿,思考哪些部分需要修改,然后,LLM进一步优化生成,可以一遍又一遍地进行。因此,这个工作流程是可迭代的,你可能让模型进行一些思考,然后修改文章,再思考,并通过多次迭代来完成这个过程。

流程图:

 

🔥 Workflow实现简单“行业短评”效果
👉 工作流拆解:

第一步:Start节点,用于接收用户的输入。

第二步: 大模型节点,行业短评Prompt:使用真实数据、案例、SWOT模型,并言简意赅表达。

第三步:基于其生成结果第二步中的大模型的生成结果,复制其Prompt,并进一步提示生成短评,达到审视和修正自己生成输出的效果,提高短评生成质量。

第四步: 输出结果。

👉 示意图参考:

 

👀 效果:汽车行业调研短评

 

第一次:大模型对于提示,仅生成比较概括性的短评,使用了真实数据。

 

第二次:大模型对生成结果进行迭代,生成了详细短评,不仅优化了表达内容,还增加了SWOT分析和案例分析。

 

2 Multiagent Collaboration 模式
🔥 使用coze的Multi-agent功能实现高质量旅行规划
第一步:定义3个用于旅行规划场景的专家Agents

目的地推荐专家: 调用搜索等能力,基于用户的需求推荐目的地。

机票酒店专家: 调用机票、酒店的查询工具,根据用户的背景信息和诉求,推荐合适的机票酒店。

行程规划专家: 根据用户的信息和其他专家产出的结果,帮助用户制定完整的行程规划,并将内容输出到PDF中。

第二步:将3个专家Agents排列到画布中,并为他们设置任务交接的条件。

第三步:开始对话

 

开放体验来袭:
直接登入Coze,创建属于你的Agent, 产品经理在线等你提需求,点击下方链接,开启测评:
https://bbs.csdn.net/topics/618354373
https://bbs.csdn.net/topics/618354373

 

效果演示图

多Agent模式的算力需求
多Agent模式在构建AI系统时,需要处理来自不同代理的任务和数据,这通常会导致算力需求的增加。在多Agent模式下,每个代理可能负责特定的任务或工作流程的一部分,它们需要进行通信和协作以完成更复杂的任务。这种模式的算力需求取决于多个因素,包括代理的数量、每个代理处理的任务复杂度、代理间的交互频率以及整体系统的优化程度。

软硬件层面的优化。
1. 硬件层面:
使用高性能的计算硬件,如多核CPU、GPU或TPU,以支持并行处理和快速的数据处理。
考虑使用高速网络接口和交换机,以减少Agent间通信的延迟。
采用分布式存储系统,如分布式数据库或对象存储,以高效管理大量数据。
2. 软件架构:
采用微服务架构,每个Agent可以作为一个独立的微服务运行,这样可以提高系统的可伸缩性和容错性。
实现一个高效的任务调度器,如FIFO或轮询(Round-Robin)调度算法,以合理分配任务和资源。
引入上下文管理器,以支持LLM的上下文快照和恢复,管理LLM的上下文窗口,确保Agent间的有效协作。
使用内存管理器来为每个Agent的交互日志提供短期内存,确保数据在Agent活跃时存储和可访问。
集成工具管理器,管理一系列API工具,增强LLM的功能,如网络搜索、科学计算等。
3. 操作系统层面:
考虑开发或使用专为多Agent系统设计的操作系统,如AIOS,它将LLM嵌入到操作系统中,优化Agent请求的调度,支持上下文切换,实现并发执行,并提供工具服务和访问控制。
4. 开发工具和框架:
利用多Agent框架,如AutoGen,它允许用户创建和管理多个智能体,以协同完成复杂的任务。
使用提供多Agent支持的开发工具包(SDK),简化Agent开发者的开发过程,专注于Agent的核心逻辑和功能。
存内计算架构火力支持
在多Agent模式中,如果每个代理都使用类似的大型模型,那么总体算力需求将是巨大的。此外,多模态大模型对算力的消耗呈指数级增长趋势,因为它们需要处理和整合来自不同模态(如文本、图像、音频等)的数据。这种类型的模型在多Agent模式下的应用将进一步推动对高性能计算资源的需求。

值得一提的是,在新一轮算力攻坚赛中,突破传统冯·诺依曼架构的范式探索成为主要方向之一。而“存算一体”架构打破了存算分离的壁垒,减少了数据的搬运,它就如同“在家办公”的新型工作模式,消除了数据“往返通勤“的能量消耗、时间延迟,并且节约了“办公场所”的运营成本,因而具备高能效比。加上“存算一体”架构对于工艺制程的“弱依赖”性(14nm展现4nm数字电路表现性能),使其成为了AI算力的重要发展方向。

Posit数字计算内存(CIM)模型(简称PD-CIM)的整体架构

上图为最新融入Posit系统的存内计算架构,在加载数据到PD-CIM时,FP-to-POSIT编码器将浮点数据转换为Posit格式以便于存储。CPCS会检测权重尾数的位宽,并预存逻辑值到备用的CIM单元中。在计算过程中,BRPU执行基于位移位或的区间处理。CIM核心结合CPCS有三种工作模式,包括3位模式、2-4位集合关联模式和正常模式。前两种模式使用预存的逻辑值来实现CIM内部的双比特乘累加(MAC)操作。CASU通过将加法操作替换为位级或操作来节省加法树的能量,并改变CPCS的计算顺序以增加无重叠尾数的数量。

整体而言,PD-CIM架构的设计旨在通过在存储器内部直接进行计算来提高能效和计算性能,同时支持多种计算精度和工作模式,以适应不同的计算需求。这种架构特别适合于需要处理大量数据和复杂计算任务的应用,如人工智能和大数据分析。

总结:
多Agent模式背后的算力需求通常较高,因为需要同时处理来自多个智能体的任务和数据。存内计算(Computing in memory,CIM)作为一种新兴的计算架构,能够在存储器阵列内完成逻辑运算,避免存储器和处理器之间频繁的数据搬移操作,从而提升算力,降低功耗。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_58966968/article/details/137691787

我用OpenGlass做了一个AI眼镜【更新中】 | Rocket Lu

mikel阅读(501)

来源: 我用OpenGlass做了一个AI眼镜【更新中】 | Rocket Lu

最近看见了一个开源眼镜的代码,而且需要的硬件只要100块左右,于是准备复刻一个。
notion image

准备工作

需要的硬件是一个芯片、一个电池、一个3D打印的外壳。
硬件拿到手后,可以开始软件工作了。
01 下载Arduino IDE
我在整合包里准备好了,大家可以直接回复“Glass”下载
02 下载Arduino IDE
打开 firmware folder 文件夹并在 Arduino IDE 中打开 .ino 文件。
按照软件准备步骤为 XIAO ESP32S3 板设置 Arduino IDE:
notion image
    • 将 ESP32 板 添加到您的 Arduino IDE:
      • Navigate to File > Preferences, and fill “Additional Boards Manager URLs” with the URL: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
导航到“文件”>“首选项”,然后使用以下 URL 填写“其他 Boards Manager URL”: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
      • Navigate to Tools > Board > Boards Manager…, type the keyword esp32 in the search box, select the latest version of esp32, and install it.
导航到“工具”>“开发板”>“开发板管理器…”,在搜索框中输入关键字 esp32 ,选择最新版本的 esp32 并安装它。
    • Select your board and port:
选择您的主板和端口:
      • On top of the Arduino IDE, select the port (likely to be COM3 or higher).
在 Arduino IDE 顶部,选择端口(可能是 COM3 或更高端口)。
      • Search for xiao in the development board on the left and select XIAO_ESP32S3.
在左侧开发板中搜索 xiao 并选择 XIAO_ESP32S3 。

开启智能眼镜新时代:OpenGlass-CSDN博客

mikel阅读(551)

来源: 开启智能眼镜新时代:OpenGlass-CSDN博客

开启智能眼镜新时代:OpenGlass
项目地址:https://gitcode.com/BasedHardware/OpenGlass

项目简介
OpenGlass是一个创新的开源项目,它能将普通眼镜转变为功能强大的智能眼镜,成本只需25美元以下。利用现成的组件,你可以记录生活、记住见过的人、识别物体、翻译文本等,让你的视野从此智能起来。

 

通过视频演示,进一步了解OpenGlass的神奇之处。

技术分析
OpenGlass的核心是基于Seeed Studio XIAO ESP32 S3 Sense微控制器,这是一款集成了Wi-Fi和蓝牙功能的高性能芯片。结合EEMB LP502030电池和3D打印的眼镜架,构建出轻便且持久使用的智能眼镜框架。软件部分则采用了Node.js和Expo开发的移动端应用,实现了与硬件的无缝交互,为用户提供直观易用的界面。

关键功能实现依赖于各种API服务,如Groq和OpenAI用于数据处理和智能识别,而Ollama的REST API用于语音转文本功能。为了确保隐私,自托管选项也得到了支持。

应用场景
OpenGlass的应用广泛:

生活记录者: 随时随地记录你的日常生活,重要时刻不再错过。
社交达人: 记住新朋友的名字,减少尴尬的忘记瞬间。
户外探险: 辨识野生动植物,增加旅行的乐趣。
语言翻译: 实时翻译文字,跨国交流更无障碍。
视觉辅助: 对视力受限的人来说,它可以读取菜单或标签上的文字。
项目特点
低成本: 无需高昂费用,就能拥有智能眼镜体验。
可扩展性: 开源设计允许开发者和爱好者添加更多功能。
便捷安装: 易于组装的硬件和清晰的软件设置指南,任何人都可以尝试。
社区支持: 加入Based Hardware Discord社区,获取帮助、分享经验,共同进步。
隐私优先: 自主选择是否自托管API服务,尊重并保护个人数据。
如果你对预装版感兴趣,可以填写兴趣表单获得通知。现在就动手,开启属于你的智能眼镜时代吧!

注:文章中的链接可能无法直接点击,请复制到浏览器中打开。
1
项目地址:https://gitcode.com/BasedHardware/OpenGlass
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/gitblog_00012/article/details/139019634

uniapp table 组件-CSDN博客

mikel阅读(275)

来源: uniapp table 组件-CSDN博客

uniapp table 组件

滑动验证页面

 

  • uniapp是2019年非常的火爆的一个Dcloud开发跨平台前端工具,支持ios Android wap,小程序,除了Android有点卡外,其他暂时没有发现什么瑕疵。
  • 最近在捣鼓uniapp项目,恰好用到table组件,之前写了个demo,后面一直都想写一个像样的,可以分享给别人用的组件。
  • 自己的水平一般,开发出来的组件可能代码不咋地,还望路过大神斧正。
  • 下面是我写的uniapptable的说明,希望能够帮到别人

这里默认大家都非常熟悉vue和uniapp的包引入,不再阐述uniapp组件引入方法以及uniapp组件和vue的区别

插件市场更新会比github更新延后,查看github项目:

  • uniapp是2019年非常的火爆的一个Dcloud开发跨平台前端工具,支持ios Android wap,小程序,除了android有点卡外,其他暂时没有发现什么瑕疵。
  • 最近在捣鼓uniapp项目,恰好用到table组件,之前写了个demo,后面一直都想写一个像样的,可以分享给别人用的组件。
  • 自己的水平一般,开发出来的组件可能代码不咋地,还望路过大神斧正。
  • 下面是我写的uniapptable的说明,希望能够帮到别人

这里默认大家都非常熟悉vue和uniapp的包引入,不再阐述uniapp组件引入方法以及uniapp组件和vue的区别

插件市场更新会比github更新延后,查看github项目 GitHub – MTTTM/uniapp-elemnt-table: 模仿element-ui的表格组件

插件市场更新会比github更新延后,查看demo源码

插件市场更新会比github更新延后,查看demo使用引入方式

支持功能大概如下

点击查看demo,PC浏览器模拟显示和真实移动设备访问有差异

行合并

列合并

固定table高度

数据加载

数据为空

自定义行样式

自定义某行样式

自定义某行某列某个单元格样式

使用插槽自定义单元格内容

数据多选操作

数据单选操作

数据删除&&数据编辑或者更多操作方式

固定右边一列

固定左边一列

固定高度不支持同时固定某一列

已测试平台 ->ios,android,wap,微信小程序

部分效果预览

图片描述
图片描述
图片描述
图片描述
图片描述
图片描述

基本使用示例源码

html

<v-table :columns="columns" :list="data"></v-table>

JavaScript (data数组必须提供id)

  1. import vTable from “@/components/table.vue”
  2. export default{
  3. components: {
  4. vTable
  5. },
  6. data(){
  7. return {
  8. data: [{
  9. name: ‘John Brown’,
  10. age: 18,
  11. address: ‘New York No. 1 Lake Park’,
  12. id: “1”,
  13. }
  14. ],
  15. columns: [{
  16. title: “ID”,
  17. key: “id”
  18. },
  19. {
  20. title: ‘Name’,
  21. key: ‘name’
  22. },
  23. {
  24. title: ‘Age’,
  25. key: ‘age’
  26. },
  27. {
  28. title: ‘Address’,
  29. key: ‘address’
  30. }
  31. ],
  32. }
  33. }
  34. }

基本属性

html标签属性

属性 说明 类型 默认 必填
columns 列数据 Array 必填
dataColSpan 行数据 Array 必填
row-class-name 行样式 String或Function
height 表格高度(可用固定表头) Number
td-height 单元格高 Number 110
td-width 单元格宽 Number 30
td-padding 单元格间距 Number 10
border-color 表格边框颜色 String #666
th-td-height 表头单元格高 Number 30
loading 加载状态 Boolean false
selection 可选mulit和single String
span-method 行列合并 Function
slot-cols 插槽自定义列元素,对应columns的key Array
emptyText 插没数据提示文字 String
emptyClickFn 没数据点击响应函数 Function

事件

属性 说明 参数
@on-selection-change 单选 多选变更 {old:””,new:””}
@delete 自定义事件(它可以不叫delete,可以是任意事件,只要你在list里面定义了) {row:{},index:Number}

list 参数

属性 说明 类型
cellClassName 设置行内某一列的样式类名 Object
operate 数据操作的列 Object

columns 参数

属性 说明 类型
$width 设置列宽度 例如 “120px”,请务必使用px单位 String
$fixed 固定某一列,可选left和right String
$operateList 数据操作选项和list的operate对应 Array

插件市场更新会比github更新延后,查看demo源码

插件市场更新会比github更新延后,查看demo使用引入方式

支持功能大概如下

点击查看demo,PC浏览器模拟显示和真实移动设备访问有差异

行合并

列合并

固定table高度

数据加载

数据为空

自定义行样式

自定义某行样式

自定义某行某列某个单元格样式

使用插槽自定义单元格内容

数据多选操作

数据单选操作

数据删除&&数据编辑或者更多操作方式

固定右边一列

固定左边一列

固定高度不支持同时固定某一列

已测试平台 ->ios,android,wap,微信小程序

部分效果预览

图片描述
图片描述
图片描述
图片描述
图片描述
图片描述

基本使用示例源码

html

<v-table :columns="columns" :list="data"></v-table>

JavaScript (data数组必须提供id)

  1. import vTable from “@/components/table.vue”
  2. export default{
  3. components: {
  4. vTable
  5. },
  6. data(){
  7. return {
  8. data: [{
  9. name: ‘John Brown’,
  10. age: 18,
  11. address: ‘New York No. 1 Lake Park’,
  12. id: “1”,
  13. }
  14. ],
  15. columns: [{
  16. title: “ID”,
  17. key: “id”
  18. },
  19. {
  20. title: ‘Name’,
  21. key: ‘name’
  22. },
  23. {
  24. title: ‘Age’,
  25. key: ‘age’
  26. },
  27. {
  28. title: ‘Address’,
  29. key: ‘address’
  30. }
  31. ],
  32. }
  33. }
  34. }

基本属性

html标签属性

属性 说明 类型 默认 必填
columns 列数据 Array 必填
dataColSpan 行数据 Array 必填
row-class-name 行样式 String或Function
height 表格高度(可用固定表头) Number
td-height 单元格高 Number 110
td-width 单元格宽 Number 30
td-padding 单元格间距 Number 10
border-color 表格边框颜色 String #666
th-td-height 表头单元格高 Number 30
loading 加载状态 Boolean false
selection 可选mulit和single String
span-method 行列合并 Function
slot-cols 插槽自定义列元素,对应columns的key Array
emptyText 插没数据提示文字 String
emptyClickFn 没数据点击响应函数 Function

事件

属性 说明 参数
@on-selection-change 单选 多选变更 {old:””,new:””}
@delete 自定义事件(它可以不叫delete,可以是任意事件,只要你在list里面定义了) {row:{},index:Number}

list 参数

属性 说明 类型
cellClassName 设置行内某一列的样式类名 Object
operate 数据操作的列 Object

columns 参数

属性 说明 类型
$width 设置列宽度 例如 “120px”,请务必使用px单位 String
$fixed 固定某一列,可选left和right String
$operateList 数据操作选项和list的operate对应 Array
文章知识点与官方知识档案匹配,可进一步学习相关知识

移动端 触摸事件和mousedown、mouseup、click事件之间的关系_移动端 touch、click出发顺序-CSDN博客

mikel阅读(318)

来源: 移动端 触摸事件和mousedown、mouseup、click事件之间的关系_移动端 touch、click出发顺序-CSDN博客

一、移动端 触摸事件

ontouchstart、ontouchmove、ontouchend、ontouchcancel

1、Touch事件简介

pc上的web页面鼠 标会产生onmousedown、onmouseup、onmouSEOut、onmouSEOver、onmousemove的事件,但是在移动终端如iphone、ipod Touch、ipad上的web页面触屏时会产生ontouchstart、ontouchmove、ontouchend、ontouchcancel事件,分别对应了触屏开始、拖拽及完成触屏事件和取消。
当按下手指时,触发ontouchstart;
当移动手指时,触发ontouchmove;
当移走手指时,触发ontouchend。
当一些更高级别的事件发生的时候(如电话接入或者弹出信息)会取消当前的touch操作,即触发ontouchcancel。一般会在ontouchcancel时暂停游戏、存档等操作。

2、Touch事件与Mouse事件的出发关系

在触屏操作后,手指提起的一刹那(即发生ontouchend后),系统会判断接收到事件的element的内容是否被改变,如果内容被改变,接下来的事 件都不会触发,如果没有改变,会按照mousedown,mouseup,click的顺序触发事件。特别需要提到的是,只有再触发一个触屏事件时,才会 触发上一个事件的mouSEOut事件。

二、mousedown、mouseup、click事件之间的关系

点击select标签元素的时候,会弹出下拉。然而当option中没有元素时,就不希望弹出下拉(比如在某些浏览器中,点击select会默认出一个罩层效果,而此时没有数据选择的话,弹出比较不友好)。

首先想到是利用click事件控制,发现仍然会有下拉出现…实际这个是mousedown事件控制的。

这里就说明下click和mousedown、mouseup。规范要求,只有在同一个元素上相继触发 mousedown 和 mouseup 事件,才会触发 click 事件;如果 mousedown 或 mouseup 中的一个被取消,就不会触发 click 事件。

这句话也很好理解,有时候我们在浏览网页时,鼠标在一个按钮或者链接上按下了,但是突然却又改了主意,此时我们一般会移开鼠标,在另一个空白处松开鼠标哈哈~相信这个大家经常上网都有经验。实际这个就利用了click事件要求在同一个元素相继触发mousedown 和 mouseup 事件。

<script type=”text/JavaScript”>
var len = 0;
$(‘#sel’).mousedown(function(){
if(len == 0){// 模拟一下select标签没数据的标志
console.log(‘mousedown’);
return false;
}
}).mouseup(function(){
console.log(‘mouseup’);
}).click(function(){
console.log(‘click’);
});
</script>
点击后发现,log的顺序是:mousedown–>mouseup–>click

当在mousedown中return false后,就不会弹出下拉或者罩层了…

 

这里再介绍下鼠标的各个事件:

DOM3 级事件中定义了9个鼠标事件,简介如下。
click:在用户单击主鼠标按钮(一般是左边的按钮)或者按下回车键时触发。这一点对确保易访问性很重要,意味着onclick事件处理程序既可以通过键盘也可以通过鼠标执行。

dblclick:在用户双击主鼠标按钮(一般是左边的按钮)时触发。从技术上说,这个事件并不是DOM2级事件规范中规定的,但鉴于它得到了广泛支持,所以DOM3 级事件将其纳入了标准。

mousedown:在用户按下了任意鼠标按钮时触发。不能通过键盘触发这个事件。

mouseenter:在鼠标光标从元素外部首次移动到元素范围之内时触发。这个事件不冒泡,而且在光标移动到后代元素上不会触发。DOM2级事件并没有定义这个事件,但 DOM3级事件将它纳入了规范。IE、Firefox 9+和 Opera支持这个事件。

mouseleave:在位于元素上方的鼠标光标移动到元素范围之外时触发。这个事件不冒泡,而且在光标移动到后代元素上不会触发。DOM2级事件并没有定义这个事件,但 DOM3级事件将它 纳入了规范。IE、Firefox 9+和 Opera支持这个事件。

mousemove:当鼠标指针在元素内部移动时重复地触发。不能通过键盘触发这个事件。

mouseout:在鼠标指针位于一个元素上方,然后用户将其移入另一个元素时触发。又移入的另一个元素可能位于前一个元素的外部,也可能是这个元素的子元素。不能通过键盘触发这个事件。

mouseover:在鼠标指针位于一个元素外部,然后用户将其首次移入另一个元素边界之内时触 发。不能通过键盘触发这个事件。

mouseup:在用户释放鼠标按钮时触发。不能通过键盘触发这个事件。 页面上的所有元素都支持鼠标事件。除了 mouseenter 和 mouseleave,所有鼠标事件都会冒泡, 也可以被取消,而取消鼠标事件将会影响浏览器的默认行为。取消鼠标事件的默认行为还会影响其他事 件,因为鼠标事件与其他事件是密不可分的关系。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/muzidigbig/article/details/83276851

html页面实现自动适应手机浏览器(一行代码搞定)_layui html兼容手机-CSDN博客

mikel阅读(313)

来源: html页面实现自动适应手机浏览器(一行代码搞定)_layui html兼容手机-CSDN博客

    在互联网技术飞速发展的今天,用户通过各种设备上网,从桌面计算机、笔记本电脑到智能手机和平板电脑,每个设备的屏幕尺寸都不同。这就要求网站设计师和开发人员采用响应式设计,以确保用户在任何设备上都能获得最佳的网站访问体验。要实现这一点,<meta name=”viewport” content=”width=device-width, initial-scale=1.0″>这一简单但至关重要的元标签起到了关键作用。
   直接在<head>头标签中,添加    <meta name=”viewport” content=”width=device-width, initial-scale=1.0″>这行代码就可
示例:
<head>
    <meta charset=”UTF-8″>
<!– 适应手机浏览器屏幕 –>
<meta name=”viewport” content=”width=device-width, initial-scale=1.0″>
    <title>测试</title>
    <link rel=”stylesheet” href=”style.css”>
   <link rel=”stylesheet” href=”../../layui/css/layui.css” media=”all”>
</head>
一、什么是Viewport?
Viewport是用户在网页上可见区域的部分。在移动设备上浏览时,viewport的宽度通常小于网页的宽度,因此浏览器会缩放页面以适应屏幕。这就导致了用户需要放大、缩小和滚动才能浏览网站的情况,这显然不是一个理想的浏览体验。
二、Viewport 元标签的作用
Viewport 元标签允许网页开发者控制viewport的大小和比例。通过使用这个标签,网站可以指示浏览器如何响应不同尺寸的屏幕。这个元标签应该被添加到HTML文档的<head>部分中。
举例来说,添加了<meta name=”viewport” content=”width=device-width, initial-scale=1.0″>的网页会告诉浏览器:
width=device-width:将viewport的宽度设置为跟随设备屏幕的宽度。这意味着页面的宽度将自动调整以匹配设备屏幕的宽度,无论设备的宽度有多大或多小。
initial-scale=1.0:设置初始缩放比例为1.0,这表示页面初始加载时将按照实际大小显示,不会进行任何缩放。
三、响应式设计的好处
采用响应式设计,尤其是合理使用viewport元标签,可以带来许多好处:
用户体验:确保所有用户都能无论使用哪种设备都能获得良好的浏览体验。
维护成本:不需要创建多个版本的网站以适应不同设备,一个网站适用所有屏幕尺寸。
SEO优势:搜索引擎优先考虑适用于移动设备的网站,在搜索引擎结果页(SERPs)上有更好的排名。
四、实施响应式设计
除了在HTML中实现viewport元标签,响应式设计还包括其他技术和方法,例如:
使用百分比而不是固定的像素宽度来布局页面。
媒体查询(Media Queries),允许CSS根据设备的特定特征来应用不同的样式。
灵活图片和网格布局,图片和其他元素需要在不同屏幕尺寸上适当地缩放。
   总之,viewport元标签是实现响应式设计中不可或缺的一个环节,配合其他的前端技术手段,能提供跨设备一致性的访问体验。随着移动设备使用的日益普及,掌握并实施这些技术策略,对于每一个希望在数字领域保持竞争力的企业来说都是致关重要的。
————————————————
                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_53607413/article/details/135289002