window.ai 开启你的内置AI之旅

成功是得你所想,幸福是享你所得

大家好,我是柒八九。一个专注于前端开发技术/RustAI应用知识分享Coder

此篇文章所涉及到的技术有

  1. AI( Gemini Nano)
  2. Chrome
  3. Ollama

因为,行文字数所限,有些概念可能会一带而过亦或者提供对应的学习资料。请大家酌情观看。


前言

在几天在AI赋能前端:你的Chrome 控制台需要AI(爱)中我们介绍了如何在ChromeDevTool开启AI功能,来帮助我们更好的识别在DevTool-Console中显示的警告Warning)和错误Error)。

其中,当我们介绍如何配置AI功能时,我们提到了一个Plan B方案,就是在升级Chrome还无法开启AI功能时,我们可以选择下载一个Chrome Dev[1],这是一款开发者专用的 Google Chrome

alt

并且在行文中提到,我们下载了Chrome Dev浏览器,我们还可以使用window.ai的最新功能。

alt

这也意味着

我们不仅可以在Devtool-Console中使用AI,而且还可以在代码中使用AI

所以,今天我们就来聊聊这个话题。


好了,天不早了,干点正事哇。

alt

我们能所学到的知识点

  1. 环境配置
  2. AI的初体验
  3. UI界面
  4. 问题解答

1. 环境配置

需要登录Google账号,未登录状态或者游客模式是无法使用内置AI的,关于如何申请一个Google账号,可以看我们上一篇文章AI赋能前端:你的Chrome 控制台需要AI(爱)

硬件要求

由于启动内置AI功能需要很多内存和资源,所以只有在桌面版的Chrome才能开启该项功能。也就是移动端的Chrome还无法体验该功能。

虽然,我们可以在桌面端的Chrome来体验内置AI。但是,要想上手它,还是需要一定的硬实力的。

  • 操作系统
    • Windows(10,11)
    • MacOS(≥13)
    • Linux
  • 存储空间
    • 至少需要 22 GB 的存储空间
  • GPU
    • 集成 GPU 或独立 GPU(如显卡)
  • VRAM
    • 4 GB(最低)

下载Chrome浏览器

在官方文档中,有两种浏览器可以开启AI功能。

  1. Chrome Canary [2]:开发者专用的每日构建版
  2. Chrome Dev [3]:开发者专用的版本

上面两个浏览器任意下载一个即可,如果你之前就下载过对应的浏览器,别忘记将浏览器升级到最新版本。因为,只有Chrome版本大于等于 128.0.6545.0.才有AI功能。

我本机Chrome Dev 版本
我本机Chrome Dev 版本

然后,有些不信邪的小伙伴就用自己的Chrome进行测试,发现压根不存在window.ai的信息,如果你在控制台输出window.ai那么迎接你的就是undefined嘲讽。

因为,我们平时开发所用的chrome最新的版本才是126+

截图于2024-7-4日
截图于2024-7-4日

开启配置

通过以上步骤,我们已经下载了最新的Chrome。但是,想要开启AI功能,我们还需要对Chrome进行配置。

我们可以在输入框中输入chrome://flags/#optimization-guide-on-device-model,然后选择Enabled BypassPerfRequirement选项,此配置可以绕过性能检查(可能会阻止我们设备上下载 Gemini Nano

随后输入chrome://flags/#prompt-api-for-gemini-nano,并选择Enabled

alt

配置后,对应的信息如上所示。

最后,最后,我们重启Chrome

手动下载 Gemini Nano

有时候,重启大法是能解决一下问题的。但是,它也不是啥万能大法。所以,当我们按照上面的指示重启Chrome后,发现我们还无法使用AI,那我们就需要手动下载 Gemini Nano

在重启Chrome无果后,我们可以新开一个标签页,并且输入chrome://components

chrome://components/Chrome 浏览器中的一个内部页面,用于管理和查看 Chrome 组件的状态和版本。通过访问这个页面,我们可以看到浏览器中各种组件的列表,包括每个组件的当前版本号。如果某些组件需要更新,我们可以在这里手动检查并触发更新。

此时,我们就会看到各种组件信息。此时,我们比较关心的就是Optimization Guide On Device Model

alt

可以看到,它此时的版本是0,也就意味着我们本机上没有安装此组件。

那么,我们就可以通过检查是否有更新来更新它。这个下载过程也比较慢,还需要耐心等待。 alt

当出现如下的信息时,就说明我们下载完成了,此时我们下载的版本为2024.6.5.2205。根据官网的指导,只要版本大于2024.5.21.1031即可开启AI功能。 alt

验证模型是否可行

既然,我们按照官方的指导按照了模型,我们可以通过在控制台输入 await window.ai.canCreateTextSession();来验证模型是否生效。

根据模型下载情况,对应的结果会有三种:

  1. readily:模型在设备上可用,因此创建会话会很快发生
  2. after-download:模型在设备上不可用,但设备有能力创建会话,创建会话将启动下载过程(这可能需要一些时间)
  3. no:模型不适用于此设备。

如果在控制台输入为readily,那么恭喜你,你可以在Chrome中使用内置AI了。


2. AI的初体验

通过上一节的操作,我们已经具备了在Chrome本地运行AI的能力。

此时,我们可以在window对象上看到对应的信息。

alt

让我们来通过几个例子来了解一下它的能力。

非联网时可运行

之前我们就说过,Chrome内置AI是一个完全本地化的模型。像Ollama[4]一样,通过在本机下载对应的模型来实现模型的本地化运行。

其实,针对Chrome内置AI,也是相同的道理,只不过我们不是用Ollama而是我们用Chrome作为模型容器,然后下载对应的AI模型(Gemini Nano)。从而实现Gemini本地化运行。

alt

AI能力展示

我们在DevTool-Sources-Snippet中验证代码,这样可以有更好的书写体验。

一次性返回结果

const canCreate = await window.ai.canCreateTextSession();

if (canCreate !== "no") {
  const session = await window.ai.createTextSession();
  const result = await session.prompt("Write me a poem");
  console.log(result);
}

我们将上述代码输入对应位置。然后点击右侧的运行,就会看到如下结果。

alt

流式输出

OpenAI等模型,都支持流式输出,而内置AI也同样支持。

我们可以使用session.promptStreamingAPI来获取对应的数据信息。

alt

支持中文

我们也可以通过向prompt中提供非英文的提示信息,来获取对应的数据。

alt

翻译文本

alt

3. UI界面

像上一节中,我们只是通过window.aiAPI来使用能力。有的朋友就会想,我们是否有对应的UI界面来直接允许内置AI

嘿,你还真别说,还真有。

这里提供两个比较好的,当然我们也可以基于window.ai自行搭建一个AI界面。

ChromeAI

chromeai[5] 然后,我们就可以像使用OpenAI一样询问一下有趣的问题。 alt

chrome-ai

chrome-ai[6]

alt

4. 问题解答

alt

虽然,有些场景Chrome内置AI的能力有些鸡肋,但是如果Chrome如果将此功能真正的嵌入到真实环境,在某些例如文本翻译/文本总结等需求中,AI会有更好的体验感。


后记

分享是一种态度

全文完,既然看到这里了,如果觉得不错,随手点个赞和“在看”吧。

alt
Reference
[1]

Chrome Dev: https://www.google.com/chrome/dev/

[2]

Chrome Canary: https://www.google.com/chrome/canary/

[3]

Chrome Dev: https://www.google.com/chrome/dev/

[4]

Ollama: https://ollama.com/

[5]

chromeai: https://chromeai.org/

[6]

chrome-ai: https://chrome-ai.cc/zh

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/774963.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

让你的 Rabbids Rockstar人物化身加入欢乐行列!

让你的 Rabbids Rockstar 人物化身加入欢乐行列! https://www.youtube.com/watch?vwLBd20BxbS8 当这些调皮的小兔子以狂野的装扮、超棒的吉他弹奏和搞笑滑稽的动作登上舞台中央时,你将感受到它们异想天开的魅力。通过人物化身释放你内心的摇滚明星魅力&…

2024年7月3日 (周三) 叶子游戏新闻

老板键工具来唤去: 它可以为常用程序自定义快捷键,实现一键唤起、一键隐藏的 Windows 工具,并且支持窗口动态绑定快捷键(无需设置自动实现)。 卸载工具 HiBitUninstaller: Windows上的软件卸载工具 《魅魔》新DLC《Elysian Fields…

使用Spring Boot生成并下载包含下拉多选功能的Excel模板

步骤 1: 引入依赖 在pom.xml文件中添加EasyExcel <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.2.1</version></dependency> 步骤2: 准备xlsm模板 首先&#xff0c;需要在Exc…

案例精选 | 聚铭综合日志分析系统为江苏省电子口岸构建高效安全的贸易生态

江苏省电子口岸有限公司&#xff0c;成立于2009年&#xff0c;由江苏省贸促会携手南京海关、江苏检验检疫局及江苏海事局等部门共同出资组建。公司承载着推动江苏乃至长三角地区国际贸易便利化的重大使命&#xff0c;致力于打造一个集先进性、创新性、高效性于一体的电子口岸综…

关于 VuePress 的插件

插件就好比第三方功能&#xff0c;例如增加一个阅读进度条、增加光标效果等。VuePress 官网对插件的介绍&#xff1a;插件通常会为 VuePress 添加全局功能。 这里简单介绍几个本站用的插件吧&#xff01; ‍ ‍ 插件就好比第三方功能&#xff0c;例如增加一个阅读进度条、增…

nginx安装演示(离线安装,直接安装在Linux中)

文章目录 1、创建文件夹 tool / nginx2、把安装文件放到 /opt/tool/nginx 目录下面3、yum install gcc4、yum install gcc-c5、tar -zxvf pcre-8.37.tar.gz6、./configure7、make8、make install9、tar -zxvf openssl-1.0.1t.tar.gz10、./config11、/config 1、创建文件夹 tool…

防静电监控系统在电子制造业智能化转型中的应用价值

在电子制造业迅速向智能化转型的当下&#xff0c;防静电监控系统正发挥着日益重要的作用&#xff0c;其应用价值体现在多个关键方面。 一、ESD防静电监控系统简介 ESD防静电监控系统是对企业防静电设备&#xff08;机器、台垫、离子风机&#xff09;和人员进行实时监控、数据存…

护航端侧大模型平稳健康发展,百度大模型内容安全Lite版正式发布

6月28日&#xff0c;WAVE SUMMIT深度学习开发者大会 2024 “智变应用、码动产业”平行论坛在北京召开。与会&#xff0c;百度大模型内容安全Lite版正式发布&#xff0c;可面向低算力和超低算力的终端大模型提供离线场景下的一站式安全解决方案&#xff0c;为各类终端大模型平稳…

数据结构_线性表

线性表的定义和特点 线性表是具有相同特性的数据元素的一个有限序列 :线性起点/起始节点 :的直接前驱 :的直接后继 :线性终点/终端节点 n:元素总个数,表长 下标:是元素的序号,表示元素在表中的位置 n0时称为空表 线性表 由n(n>0)个数据元素(结点),组成的有限序列 将…

【系统架构设计师】计算机组成与体系结构 ⑩ ( 磁盘管理 | 磁盘移臂调度算法 | 先来先服务算法 | 最短寻道时间优先 | 扫描算法 | 循环扫描算法 )

文章目录 一、磁盘移臂调度算法1、磁盘移臂调度算法简介2、先来先服务算法3、最短寻道时间优先4、扫描算法5、循环扫描算法 二、最短寻道时间优先算法示例 一、磁盘移臂调度算法 1、磁盘移臂调度算法简介 磁盘 数据块读取 的 性能 主要由 寻道时间旋转延时 决定 ; 旋转延时 …

[SAP ABAP] 子例程

子例程 示例1 主程序(Z437_TEST_2024) INCLUDE文件(Z437_TEST_2024_F01) 输出结果如下所示 示例2 主程序(Z437_TEST_2024) INCLUDE文件(Z437_TEST_2024_F01) 输出结果如下所示 补充扩展练习 主程序(Z437_TEST_2024) INCLUDE文件(Z437_TEST_2024_F01) 输出结果如下所示 提示…

react+customize-cra使用less+less-loader时,可能遇到的问题及解决办法

目录 1、先附上各依赖版本和config-overrides.js配置代码&#xff0c;按这个版本和配置就没问题 2、问题&#xff08;注意&#xff1a;问题顺序没有先后之分哦&#xff09; 2.1、TypeError: Cannot read property tap of undefined 2.2、No module factory available for d…

谷歌地图Google JS API 实现

demo实现 实现源码&#x1f447; // 谷歌地图Google JS API 实现 <template><div class"myMap"><gmp-map :center"center" zoom"15" map-id"ab6b6643adfa1a70"><gmp-advanced-markerv-for"(res, index) in…

梅特勒同步热分析仪维修热重分析仪SDT650

仪器说明&#xff1a; 1、主要功能及应用范围&#xff1a; 一般可用于测量物质的晶态转变、熔融、凝固、纯度、蒸发、吸附水及结晶水含量、升华、吸附、解吸、吸收、玻璃化转变、液晶转变、热容的变化、燃烧、聚合、固化、催化反应、动力学。 2、主要规格及技术指标&#xff…

Redisson分布式锁、可重入锁

介绍Redisson 什么是 Redisson&#xff1f;来自于官网上的描述内容如下&#xff01; Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格客户端&#xff08;In-Memory Data Grid&#xff09;。它不仅提供了一系列的 redis 常用数据结构命令服务&#xff0c;还提供了…

前端面试题14(贝塞尔曲线)

贝塞尔曲线在前端开发中经常用于创建平滑的动画路径或绘制复杂的矢量图形。贝塞尔曲线可以是一次、二次或三次的&#xff0c;其中三次贝塞尔曲线是最常见的&#xff0c;因为它提供了足够的灵活性来创建各种形状&#xff0c;同时保持计算上的可行性。 下面我将解释三次贝塞尔曲…

指标和量化交易那些事儿

最近很多朋友都在给我说&#xff0c;我要盘中打板的指标&#xff0c;我要盘中自动交易。今天我们来梳理下关于指标和量化交易这些事儿&#xff01; 第一&#xff1a;什么是指标&#xff1f;股票指标是属于统计学的范畴&#xff0c;依据一定的数理统计方法&#xff0c;运用一些…

【C++】认识使用string类

【C】STL中的string类 C语言中的字符串标准库中的string类string类成员变量string类的常用接口说明成员函数string(constructor构造函数)~string(destructor析构函数)默认赋值运算符重载函数 遍历string下标[ ]迭代器范围for反向迭代器 capacitysizelengthmax_sizeresizecapaci…

Outlook发送大文件的问题是什么?怎么解决?

Outlook不仅是一款电子邮件客户端&#xff0c;还包括日历、任务、笔记、联系人等功能&#xff0c;同时与Microsoft Office套件中的其他应用程序&#xff08;如Word、Excel、PowerPoint等&#xff09;集成紧密&#xff0c;方便用户在不同应用程序之间切换&#xff0c;提高工作效…