”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Offload - 一个统一的 javascript SDK,支持浏览器内 AI

Offload - 一个统一的 javascript SDK,支持浏览器内 AI

发布于2024-11-07
浏览:665

今天我想分享Offload,一个直接在用户浏览器上运行AI的javascript SDK。

Offload - A unified javascript SDK that enables in-browser AI

什么是卸载?

这是一个 SDK,您可以使用它向您的网站添加 AI,但有一个特点:它允许您的用户在本地运行 AI 任务,将数据保存在设备上,从而无需发送数据到第三方推理 API。

此外,它降低了您的成本并帮助您以低廉的成本扩展应用程序。随着更多的推理转移到用户的设备,您需要分配或花费在第三方 API 上的资源就越少。

如果您是应用程序开发人员,集成 Offload 只会改进您的应用程序,因为它将继续照常工作,同时为您的用户提供本地处理数据的能力,而无需您付出任何努力。

卸载功能

您可以集成 Offload 作为您现在使用的任何 SDK 的直接替代品,只需更改您的推理函数调用即可。

Offload 自动为您的用户提供**不同尺寸的模型**,具体取决于设备及其资源。如果用户的设备没有足够的资源,Offload 将不会向用户显示在本地处理数据的选项,并将回退到您通过仪表板指定的任何 API。

在仪表板中,您可以配置和管理提示,针对不同模型自定义和测试它们,并从用户那里获取分析等等。一切都不会将用户数据暴露给任何第三方,因为一切都在设备上处理。

Offload 支持生成文本响应、通过 JSON 模式强制执行结构化数据对象、流式传输文本响应等等。

如果还有什么我们不支持您想看的,请留言!

为什么卸载很重要?

我相信本地人工智能是未来。然而,随着人工智能的不断进步,我越来越关心我们的数据是如何处理的。

如今实现人工智能功能的每个应用程序都使用远程 API,在其中发送用户数据。这些应用程序大多数都使用公共 API,例如 OpenAI、Anthropic 等。流程很简单:应用程序收集用户数据并将其与提示一起发送到远程 API,远程 API 会回复生成的文本或图像。

这种方法的一个大问题是,当您授予应用程序访问文档(或照片、视频或任何数据)的权限时,它会将您的文档发送到远程 API,其中可能包含任何敏感信息包含。远程 API 可能会记录提示、使用数据来训练新模型或出于其他目的出售您的数据。

我认为既然我们有了法学硕士,数据隐私问题就更加严重了。法学硕士允许以以前不可能的新方式索引大量非结构化信息,这增加了暴露任何个人信息的危险。

例如,假设您有一本日记。它可能包括你住在哪里、你的日程安排、你的朋友是谁、你在哪里工作、也许你赚了多少钱等等。就算不是直接写出来,从日记的内容中也大概能推断出来。到目前为止,要推断该信息,需要有人完整阅读它。然而,有了法学硕士,人们可以在几秒钟内获得足够的数据来冒充你。

通过使用应用程序与您的日记聊天,您可能会暴露您的信息,因为它会发送到某些 API。
另一方面,如果此类应用程序使用 Offload,您可以安全地使用它,因为您的数据不会离开您的设备,因此不会被公开。

这对于使用高度敏感数据的行业尤其重要,例如医疗保健、法律、文档处理应用程序、个人助理等。

立即将 Offload 集成到您的应用程序中!

版本声明 本文转载于:https://dev.to/miguelaeh/offload-a-unified-javascript-sdk-that-enables-in-browser-ai-2aii?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • Java数组中元素位置查找技巧
    Java数组中元素位置查找技巧
    在Java数组中检索元素的位置 利用Java的反射API将数组转换为列表中,允许您使用indexof方法。 (primitives)(链接到Mishax的解决方案) 用于排序阵列的数组此方法此方法返回元素的索引,如果发现了元素的索引,或一个负值,指示应放置元素的插入点。
    编程 发布于2025-05-05
  • 如何在其容器中为DIV创建平滑的左右CSS动画?
    如何在其容器中为DIV创建平滑的左右CSS动画?
    通用CSS动画,用于左右运动 ,我们将探索创建一个通用的CSS动画,以向左和右移动DIV,从而到达其容器的边缘。该动画可以应用于具有绝对定位的任何div,无论其未知长度如何。问题:使用左直接导致瞬时消失 更加流畅的解决方案:混合转换和左 [并实现平稳的,线性的运动,我们介绍了线性的转换。这...
    编程 发布于2025-05-05
  • 在Oracle SQL中如何提取下划线前的子字符串?
    在Oracle SQL中如何提取下划线前的子字符串?
    [ 在oracle sql 解决方案: Explanation:SUBSTR function extracts a substring starting from the specified position (0) and continuing for a specified length.IN...
    编程 发布于2025-05-05
  • Python中何时用"try"而非"if"检测变量值?
    Python中何时用"try"而非"if"检测变量值?
    使用“ try“ vs.” if”来测试python 在python中的变量值,在某些情况下,您可能需要在处理之前检查变量是否具有值。在使用“如果”或“ try”构建体之间决定。“ if” constructs result = function() 如果结果: 对于结果: ...
    编程 发布于2025-05-05
  • 为什么尽管有效代码,为什么在PHP中捕获输入?
    为什么尽管有效代码,为什么在PHP中捕获输入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,输出...
    编程 发布于2025-05-05
  • 如何使用Depimal.parse()中的指数表示法中的数字?
    如何使用Depimal.parse()中的指数表示法中的数字?
    在尝试使用Decimal.parse(“ 1.2345e-02”中的指数符号表示法表示的字符串时,您可能会遇到错误。这是因为默认解析方法无法识别指数符号。 成功解析这样的字符串,您需要明确指定它代表浮点数。您可以使用numbersTyles.Float样式进行此操作,如下所示:[&& && && ...
    编程 发布于2025-05-05
  • 反射动态实现Go接口用于RPC方法探索
    反射动态实现Go接口用于RPC方法探索
    在GO 使用反射来实现定义RPC式方法的界面。例如,考虑一个接口,例如:键入myService接口{ 登录(用户名,密码字符串)(sessionId int,错误错误) helloworld(sessionid int)(hi String,错误错误) } 替代方案而不是依靠反射...
    编程 发布于2025-05-05
  • 为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    查询模式实现缺失:解决“无法找到”错误在Silverlight应用程序中,尝试使用LINQ建立LINQ连接以错误而实现的数据库”,无法找到查询模式的实现。”当省略LINQ名称空间或查询类型缺少IEnumerable 实现时,通常会发生此错误。 解决问题来验证该类型的质量是至关重要的。在此特定实例中...
    编程 发布于2025-05-05
  • 如何有效地转换PHP中的时区?
    如何有效地转换PHP中的时区?
    在PHP 利用dateTime对象和functions DateTime对象及其相应的功能别名为时区转换提供方便的方法。例如: //定义用户的时区 date_default_timezone_set('欧洲/伦敦'); //创建DateTime对象 $ dateTime = ne...
    编程 发布于2025-05-05
  • 如何使用Python有效地以相反顺序读取大型文件?
    如何使用Python有效地以相反顺序读取大型文件?
    在python 反向行读取器生成器 == ord('\ n'): 缓冲区=缓冲区[:-1] 剩余_size- = buf_size lines = buffer.split('\ n'....
    编程 发布于2025-05-05
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    在Microsoft Visual C 中,Microsoft consions用户strate strate strate strate strate strate strate strate strate strate strate strate strate strate strate st...
    编程 发布于2025-05-05
  • C++成员函数指针正确传递方法
    C++成员函数指针正确传递方法
    如何将成员函数置于c 的函数时,接受成员函数指针的函数时,必须同时提供对象的指针,并提供指针和指针到函数。需要具有一定签名的功能指针。要通过成员函数,您需要同时提供对象指针(此)和成员函数指针。这可以通过修改Menubutton :: SetButton()(如下所示:[&& && && &&华)...
    编程 发布于2025-05-05
  • 如何检查对象是否具有Python中的特定属性?
    如何检查对象是否具有Python中的特定属性?
    方法来确定对象属性存在寻求一种方法来验证对象中特定属性的存在。考虑以下示例,其中尝试访问不确定属性会引起错误: >>> a = someClass() >>> A.property Trackback(最近的最新电话): 文件“ ”,第1行, AttributeError: SomeClass...
    编程 发布于2025-05-05
  • eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    称量()和ast.literal_eval()中的Python Security 在使用用户输入时,必须优先确保安全性。强大的Python功能Eval()通常是作为潜在解决方案而出现的,但担心其潜在风险。本文深入研究了eval()和ast.literal_eval()之间的差异,突出显示其安全性含义...
    编程 发布于2025-05-05
  • Python读取CSV文件UnicodeDecodeError终极解决方法
    Python读取CSV文件UnicodeDecodeError终极解决方法
    在试图使用已内置的CSV模块读取Python中时,CSV文件中的Unicode Decode Decode Decode Decode decode Error读取,您可能会遇到错误的错误:无法解码字节 在位置2-3中:截断\ uxxxxxxxx逃脱当CSV文件包含特殊字符或Unicode的路径逃...
    编程 发布于2025-05-05

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3