searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

在 Chrome 中 window.ai

2024-11-19 09:21:46
1
0

想象一下,有一个强大的 AI 模型可以直接在您的浏览器中提供帮助,而无需任何大量下载。在此演示中,我们将逐步介绍如何使用 window.ai 在 Chrome 中使用 Gemini Nano。

背景:

Chrome 推出了 Gemini Nano,这是一种专为设备使用而设计的 AI 模型,以及用于提示它的 API。虽然基于浏览器的模型已经存在了一段时间,但它们也存在局限性,尤其是用户需要下载大型模型。这会显著影响带宽和用户体验。

输入 window.ai 和 Gemini Nano。window.ai 是用于与本地模型通信的 API,而 Gemini Nano 是旨在在用户设备上高效运行的高级模型。

开始:

(注意:更新于 2024 年 9 月 3 日。 本文已更新,以反映 Chrome API 中的最新变化。此 API 是实验性的,将来可能会发生重大变化。)

在我们深入研究之前,让我们确保您可以访问此功能。在撰写本文时,它在 Chrome 主版本中不可用。要检查 AI 是否可用,请在 Chrome Dev Console 中运行以下命令:

(await window.ai?.assistant.capabilities()).available

如果返回 'readily',则可以跳到“使用 window.ai”部分。

启用 window.ai:

自 2024 年 7 月 18 日起,Chrome 在稳定版本中不支持此 API。您需要下载 Chrome Dev 版本并启用特定标记。安装后,打开浏览器并按照以下步骤操作:

第 1 步:

chrome://flags/#prompt-api-for-gemini-nano

选择 'Enabled'

第 2 步:

chrome://flags/#optimization-guide-on-device-model

选择“启用 BypassPrefRequirement”

第 3 步:

chrome://components

点击 “Optimization Guide On Device Model” 中的 'Check for Update' 下载模型。

使用 window.ai:

API 非常简单:

await window.ai?.assistant.capabilities();

const session = await ai.assistant.create();

await session.prompt("What is Apple?");

await session.promptStreaming("What is Apple?");

await session.destroy();

如何使用:

与 API 一样,使用非常简单。您只需创建一个会话,并将文本提示传递给 session.prompt。您可以在 Chrome Dev Console 中演示此功能,只需将以下内容放入:

const session = await window.ai.assistant.create();
await session.prompt("What is Apple?");

详细例子:

<html>

<head>
  <meta charset="utf-8">
  <title>window.ai</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>
  <div id="ui">
    <h1>Chat with Gemini Nano</h1>
    <ul id="messages"></ul>
    <input type="text" id="input" placeholder="Type something here">
    <button id="chat">Chat</button>
    <button id="destory">Destory Sesion</button>
  </div>

  <script>
    let session = null;

    document.getElementById('chat').addEventListener('click', async function () {
      const input = document.getElementById('input');
      const message = input.value;
      input.value = '';

      appendMessage('User', message);

      const response = await session.prompt(message);

      appendMessage('AI', response);
    });

    document.getElementById('destory').addEventListener('click', async function () {
      if (session) {
        await session.destroy();
        alert('Session destroyed');
      }
    });

    document.addEventListener('DOMContentLoaded', async function () {
      if (!session && (await window.ai?.assistant.capabilities())?.available !== 'readily') {
        alert('window.ai is not available in your browser')
      } else {
        session = await window.ai.assistant.create();
      }
    });

    function createMessage(role, message) {
      const li = document.createElement('li');
      li.textContent = `${role}: ${message}`;
      return li;
    }

    function appendMessage(role, message) {
      const messages = document.getElementById('messages');
      messages.appendChild(createMessage(role, message));
    }
  </script>

</body>

</html>

总结:

API 很简单,因此无需复杂化。此功能是高度实验性的,可能会更改或永远不会进入主 Chrome 版本。它也特定于 Chrome,尽管其他浏览器可能会使用自己的模型实现类似的 API。

0条评论
作者已关闭评论
陈****伟
10文章数
1粉丝数
陈****伟
10 文章 | 1 粉丝
原创

在 Chrome 中 window.ai

2024-11-19 09:21:46
1
0

想象一下,有一个强大的 AI 模型可以直接在您的浏览器中提供帮助,而无需任何大量下载。在此演示中,我们将逐步介绍如何使用 window.ai 在 Chrome 中使用 Gemini Nano。

背景:

Chrome 推出了 Gemini Nano,这是一种专为设备使用而设计的 AI 模型,以及用于提示它的 API。虽然基于浏览器的模型已经存在了一段时间,但它们也存在局限性,尤其是用户需要下载大型模型。这会显著影响带宽和用户体验。

输入 window.ai 和 Gemini Nano。window.ai 是用于与本地模型通信的 API,而 Gemini Nano 是旨在在用户设备上高效运行的高级模型。

开始:

(注意:更新于 2024 年 9 月 3 日。 本文已更新,以反映 Chrome API 中的最新变化。此 API 是实验性的,将来可能会发生重大变化。)

在我们深入研究之前,让我们确保您可以访问此功能。在撰写本文时,它在 Chrome 主版本中不可用。要检查 AI 是否可用,请在 Chrome Dev Console 中运行以下命令:

(await window.ai?.assistant.capabilities()).available

如果返回 'readily',则可以跳到“使用 window.ai”部分。

启用 window.ai:

自 2024 年 7 月 18 日起,Chrome 在稳定版本中不支持此 API。您需要下载 Chrome Dev 版本并启用特定标记。安装后,打开浏览器并按照以下步骤操作:

第 1 步:

chrome://flags/#prompt-api-for-gemini-nano

选择 'Enabled'

第 2 步:

chrome://flags/#optimization-guide-on-device-model

选择“启用 BypassPrefRequirement”

第 3 步:

chrome://components

点击 “Optimization Guide On Device Model” 中的 'Check for Update' 下载模型。

使用 window.ai:

API 非常简单:

await window.ai?.assistant.capabilities();

const session = await ai.assistant.create();

await session.prompt("What is Apple?");

await session.promptStreaming("What is Apple?");

await session.destroy();

如何使用:

与 API 一样,使用非常简单。您只需创建一个会话,并将文本提示传递给 session.prompt。您可以在 Chrome Dev Console 中演示此功能,只需将以下内容放入:

const session = await window.ai.assistant.create();
await session.prompt("What is Apple?");

详细例子:

<html>

<head>
  <meta charset="utf-8">
  <title>window.ai</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>
  <div id="ui">
    <h1>Chat with Gemini Nano</h1>
    <ul id="messages"></ul>
    <input type="text" id="input" placeholder="Type something here">
    <button id="chat">Chat</button>
    <button id="destory">Destory Sesion</button>
  </div>

  <script>
    let session = null;

    document.getElementById('chat').addEventListener('click', async function () {
      const input = document.getElementById('input');
      const message = input.value;
      input.value = '';

      appendMessage('User', message);

      const response = await session.prompt(message);

      appendMessage('AI', response);
    });

    document.getElementById('destory').addEventListener('click', async function () {
      if (session) {
        await session.destroy();
        alert('Session destroyed');
      }
    });

    document.addEventListener('DOMContentLoaded', async function () {
      if (!session && (await window.ai?.assistant.capabilities())?.available !== 'readily') {
        alert('window.ai is not available in your browser')
      } else {
        session = await window.ai.assistant.create();
      }
    });

    function createMessage(role, message) {
      const li = document.createElement('li');
      li.textContent = `${role}: ${message}`;
      return li;
    }

    function appendMessage(role, message) {
      const messages = document.getElementById('messages');
      messages.appendChild(createMessage(role, message));
    }
  </script>

</body>

</html>

总结:

API 很简单,因此无需复杂化。此功能是高度实验性的,可能会更改或永远不会进入主 Chrome 版本。它也特定于 Chrome,尽管其他浏览器可能会使用自己的模型实现类似的 API。

文章来自个人专栏
AI实践
3 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0