Window.AI火了!在浏览器部署去中心化AI模型

前有科技后进阶 2024-02-15 18:45:38

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!

什么是 Window AI

Window AI 是一种浏览器扩展,可让开发者在一个地方配置 AI 模型并在 Web 上使用,具有以下好处:

对于开发人员:轻松制作多模型应用程序,不受 API 成本限制 ,只需使用注入的 window.ai 库, 实现去中心化人工智能。对于用户:控制在 Web 上使用的 AI,无论是外部的(如 OpenAI)、代理的还是本地的,以保护隐私。对于模型提供商:插入用户生态,无需开发人员更改其应用程序。

Window AI 具有以下特征:

配置密钥:将所有 API 密钥设置在一处,同时仅存储在本地。用户控制的模型:支持使用选择的外部、代理和本地模型。跨应用程序保存提示历史记录(也许用它来训练自己的模型)。

开发者只需在扩展中配置一次密钥和模型,应用程序可以请求权限通过注入的 window.ai 库向选择的模型发送提示,用户可以清楚地了解所询问的内容和时间。Window AI 适用于以下模型:

OpenAI 的 GPT-3.5、GPT-3.5 16k、GPT-4 和 GPT-4 32kGoogle 的 PaLM 2 聊天和代码聊天Anthropic 的 Claude、Claude Instant 和 100k 模型Together 的 GPT NeoXT 20BXlarge可以在本地运行的开放模型,例如 MPT 或 Dolly

目前 Window AI 在 Github 上已经开源,是一个值得关注的人工智能开源项目。

如何使用 Window AI

要在应用程序中利用用户管理的模型,只需使用提示和选项调用 await window.ai.generateText 即可。

const [response] : Output[] = await window.ai.generateText( {messages: [{role: "user", content: "Who are you?"}] }: Input )console.log(response.message.content) // 输出 "I am an AI language model"

所有公共类型,包括错误消息都可以在 window.ai 库中通过注释获得。 例如,Input 允许使用简单字符串和 ChatML。下面是将 GPT-4 结果流式传输到控制台的示例:

const [{message}] = await window.ai.generateText( { messages: [{role: "user", content: "Who are you?"}] }, { temperature: 0.7, maxTokens: 800, model: ModelID.GPT_4, // Handle partial results if they can be streamed in onStreamResult: (res) => console.log(res.message.content) })console.log("Full ChatML response:", message)

generateText 将返回一个数组 Output[],如果 numOutputs> 1,则该数组仅包含多个元素。但是,这并不能保证返回结果的长度等于 numOutputs。 如果模型不支持多项选择,则数组中只会出现一个选择。

onStreamResult 处理程序类似,应该依赖于 Promise 解析,并且仅使用此处理程序来改进用户体验,因为并非所有模型和配置选项都支持。

关于 Window AI 的更多用法和高级特性可以参考文末资料,本文不再过多展开。

参考资料

https://github.com/alexanderatallah/window.ai

https://windowai.io/

https://github.com/louisgv/local.ai

0 阅读:128

前有科技后进阶

简介:感谢大家的关注