Type something to search...
利用 Chrome 浏览器的设备上人工智能构建项目

利用 Chrome 浏览器的设备上人工智能构建项目

使用 Gemini-nano-in-Chrome 进行原型设计指南

在Chrome上使用实验性提示API构建具有AI功能的原型

设备端 / 边缘 AI

设备端 AI 是指直接在终端用户设备上运行的 AI 模型,例如智能手机、平板电脑或物联网设备,而不依赖于云计算或服务器来托管这些模型。

这在很多方面都很有用:

  1. 由于模型在设备上,我们可以进行离线推理。
  2. 我们可以通过将某些推理卸载到客户端设备来降低运行 AI 功能的运营成本。
  3. 由于数据从未离开设备,我们可以通过设备端模型提供更多的隐私和数据安全。

然而,由于这些模型运行在内存有限的设备上,它们无法执行云中托管的大型语言模型所能完成的通用推理。相反,这些是具有特定能力的较小模型

Chrome 自带一个这样的模型。让我们来看看它:

Gemini Nano 在 Chrome 中

最新版本的 Google Chrome 配备了一个设备内 AI 模型,即 Gemini-nano。然而,与之交互的 API 仍处于实验阶段,并被隐藏在一个标志后面。

因此,如果我们打算使用实验性 API,我们需要通过以下步骤先启用这个功能标志:

  1. 更新到最新版本的 Chrome,然后访问 chrome://flags
  2. 搜索 Prompt API for Gemini Nano
  3. 启用该标志
  4. 重启浏览器

使用 Chrome 的设备内 AI 构建应用程序

一旦启用该功能,我们可以通过全局对象访问模型,如下所示:

window.ai

提示 API

我们可以通过以下方式创建一个带有系统提示的会话:

const inferenceSession = await window.ai.languageModel.create({
  systemPrompt: `You are an English teacher. 
                 Analyse a given word and come up with a sentence 
                 to demonstrate the usage of the word.
                 Always respond in English.`
});

一旦创建了推理会话,我们可以按如下方式调用 prompt 方法:

await inferenceSession.prompt('Precarious');

一个示例项目

让我们将上述想法构建成一个简单的Web应用程序。我们项目的系统设计可以如下架构:

我们的最终产品将如下所示:

为了使文章的重点集中在AI集成上,让我们仅关注该部分代码的组成:

完整代码的GitHub仓库链接位于本文底部。

AI助手方法

我们为该工具设计的模块可以如下面的图片所示:

我们可以通过以下代码实现上述功能:

// src/utils/ai.js
export async function setupAI() {
  if(!window.ai?.languageModel){
    throw new Error("AI feature is not enabled on this browser.");
  }
  const inferenceSession = await window.ai.languageModel.create({
    systemPrompt: `You are an English teacher. For a given word and come up with a sentence to demonstrate the usage of the word.
    Always respond in English in the following format: 
    <h3>Usage:</h3> <p>Your sentence here</p>
    <h3>Meaning:</h3>  <p>The meaning of the word</p>
    `,
  });
  return inferenceSession;
};

export async function prompt(inferenceSession, word){
    const response = await inferenceSession.prompt(word);
    return response;
}

注意系统提示,我们指示模型将响应作为HTML元素返回。这是为了简化我们的应用逻辑。如果我们要部署这个应用,最好在将其注入到DOM之前清理和验证响应。由于这只是一个概念验证,我们可以在这个上下文中跳过那部分。

在内容加载时设置推理会话

加载控制流程如下:

可以通过以下逻辑实现:

// main.js

import { setupAI } from "./src/utils/ai.js";

const initUI = () => {
  // ... code to initilize the user interface
};

let inferenceSession = null;

document.addEventListener("DOMContentLoaded", async () => {
  try{
    inferenceSession = await setupAI();
    initUI();
  }catch(error){
    console.error(error);
    alert("App failed to load. Please check the console for more details.");
  }
});


提示词汇用法和定义

推理控制流程可以如下可视化:

我们可以如下实现这个逻辑:

// main.js
import { setupAI, prompt } from "./src/utils/ai.js";

const initUI = () => {
  // ... existing code
  setupButtons(document.querySelector("#button-container"), {
    onSubmit: () => {
      const trimmedValue = input.value.trim();

      if (trimmedValue) {
        updateTitle(trimmedValue.charAt(0).toUpperCase() + trimmedValue.slice(1));
        updateContent(`
        <p>Asking the AI for the word usage instructions...Please wait...</p>
      `);

      prompt(inferenceSession, trimmedValue)
        .then((response) => {
          updateContent(`
          <div>${parseBold(response)}</div>
        `);
      })
        .catch((error) => {
          updateContent(`
          <p>Failed to get the usage instructions. Please try again.</p>
        `);
        console.error(error);
        });
      }
    },

  // ... exisitng code
  });

}

// ... existing code

由于这只是一个概念验证,我们故意跳过了输入验证和检查,当用户输入一个单词并点击 Submit 时。

GitHub 仓库

此演示的完整功能代码可以从 这个 GitHub 仓库 访问:

Related Posts

使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
10 个强大的 Perplexity AI 提示,让您的营销任务自动化

10 个强大的 Perplexity AI 提示,让您的营销任务自动化

在当今快速变化的数字世界中,营销人员总是在寻找更智能的方法来简化他们的工作。想象一下,有一个个人助理可以为您创建受众档案,建议营销策略,甚至为您撰写广告文案。这听起来像是一个梦想? 多亏了像 Perplexity 这样的 AI 工具,这个梦想现在成为现实。通过正确的提示,您可以将 AI 转变为您的 个人营销助理。在本文中,我将分享 10 个强大的提示,帮助您自动

阅读更多
10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

人工智能技术,如机器学习、自然语言处理和数据分析,正在重新定义传统设计方法。从自动化重复任务到实现个性化用户体验,人工智能使设计师能够更加专注于战略思维和创造力。随着这一趋势的不断增长,UI/UX 设计师越来越多地采用 AI 驱动的工具来促进他们的工作。利用人工智能不仅能提供基于数据的洞察,还为满足多样化用户需求的创新设计解决方案开辟了机会。 1. 用户角色开发 目的

阅读更多
在几分钟内完成数月工作的 100 种人工智能工具

在几分钟内完成数月工作的 100 种人工智能工具

人工智能(AI)的快速发展改变了企业的运作方式,使人们能够在短短几分钟内完成曾经需要几周或几个月的任务。从内容创作到网站设计,AI工具帮助专业人士节省时间,提高生产力,专注于创造力。以下是按功能分类的100个AI工具的全面列表,以及它们在现实世界中的使用实例。 1. 研究工具 研究可能耗时,但人工智能工具使查找、分析和组织数据变得更加容易。**ChatGPT, Cop

阅读更多
你从未知道的 17 个令人惊叹的 GitHub 仓库

你从未知道的 17 个令人惊叹的 GitHub 仓库

Github 隐藏的宝石!! 立即收藏的代码库 学习编程相对简单,但掌握编写更好代码的艺术要困难得多。GitHub 是开发者的宝藏,那里“金子”是其他人分享的精心编写的代码。通过探索 GitHub,您可以发现如何编写更清晰的代码,理解高质量代码的样子,并学习成为更熟练开发者的基本步骤。 1. notwaldorf/emoji-translate *谁需

阅读更多