IntelliNode:Node.js大模型访问统一接口库【Gen AI】

news2024/11/15 21:07:30

使用最新的 AI 模型更新你的应用程序可能具有挑战性,因为它涉及了解不同 AI 模型的复杂性并管理许多依赖项。 IntelliNode 是一个开源库,旨在通过提供统一且易于使用的界面来解决集成 AI 模型的挑战。 这使开发人员能够快速构建 AI 原型并使用高级 AI 功能增强其应用程序,从而开辟广泛的业务场景。

在这里插入图片描述> 推荐:用 NSDT场景设计器 快速搭建可编程3D场景。

1、为什么要使用不同的AI模型?

每个 AI 模型都有自己的优势和独特的功能。 Cohere 擅长生成自定义文本模型,而 OpenAI 的 ChatGPT 可增强用户交互和上下文理解。 谷歌的 DeepMind 文本转语音模型提供高质量的合成音频,而 DALL·E 和 Stable Diffusion 以其图像生成能力而闻名。 通过利用这些模型,开发人员可以获得尖端的人工智能技术,并根据他们的应用程序对其进行定制。
在这里插入图片描述

IntelliNode 简化了将多个 AI 模型与单个客户端集成的过程,将应用程序的业务逻辑与模型差异分离开来。 借助 IntelliNode,开发人员可以使用 Cohere 语言模型快速生成文本、使用 ChatGPT 生成图像描述、使用 Stable Diffusion 生成图像,或者使用 Google DeepMind 的模型合成音频,所有这些只需几行代码。

2、快速上手IntelliNode

为了演示使用 IntelliNode 集成 AI 模型的简单性,让我们考虑构建一个生成产品描述、图像和动态音频内容的电子商务工具的示例。
在这里插入图片描述

首先,将以下模块添加到你的NodeJS项目:

npm i intellinode

让我们为打算销售的游戏椅生成产品文本描述:

const {RemoteLanguageModel,LanguageModelInput} = require('intellinode');

const textModelInput = 'Write a creative product description for gaming chair with black and red colors';
const textProductDesc = await generateProductDescription(textModelInput, MyKeys.cohere, 'cohere', 'command-xlarge-20221108');

// common function to use it with any text generation
async function generateProductDescription(textInput, apiKey, modelBackend, modelName) {
  const langModel = new RemoteLanguageModel(apiKey, modelBackend);
  const results = await langModel.generateText(new LanguageModelInput({
    prompt: textInput,
    model: modelName,
    maxTokens: 300
  }));
  return results[0].trim();
}

下一步是使用产品详细信息生成图像描述:

const { Chatbot, ChatGPTInput } = require('intellinode');

const imageDescription = await getImageDescription(textProductDesc, MyKeys.openai, 'openai');

// common function to use with any future code
async function getImageDescription(textInput, apiKey, modelBackend) {
  const chatbot = new Chatbot(apiKey, modelBackend);
  const input = new ChatGPTInput('generate image description from paragraph to use it as prompt to generate image from DALL·E or stable diffusion image model. return only the image description to use it as direct input');
  input.addUserMessage(textInput);
  const responses = await chatbot.chat(input);
  return responses[0].trim();
}

此时,我们可以利用图像描述,使用稳定扩散或DALL·E 2生成高质量图像; 在下面的代码中,我们将使用扩散,但如果你想使用其他模型,则需要进行一些更改:

const {RemoteImageModel,SupportedImageModels,ImageModelInput} = require('intellinode');

const images = await generateImage(imageDescription, MyKeys.stability, SupportedImageModels.STABILITY);

// common function for future use
async function generateImage(imageText, apiKey, modelBackend) {
  const imgModel = new RemoteImageModel(apiKey, modelBackend);
  const imageInput = new ImageModelInput({
    prompt: imageText,
    numberOfImages: 3,
    width: 512,
    height: 512
  });
  return await imgModel.generateImages(imageInput);
}

如果想使用 Openai 生成图像并比较适合你的案例的输出,只需修改两个参数并保持代码和输出流程相同:

// optional code change to use DALL·E instead of Diffusion
// 1. MyKeys is a dictionary to store multiple keys.
// 2. SupportedImageModels provided by the library.
const images = await generateImage(imageDescription, 
                    MyKeys.openai, 
                    SupportedImageModels.OPENAI);

输出:

在这里插入图片描述

对于交互式体验,我们可以为产品描述生成音频:

const {RemoteSpeechModel, Text2SpeechInput, AudioHelper} = require('intellinode');

const decodedAudio = await generateSpeech(textProductDesc, MyKeys.google, 'google');

// common function for future use
async function generateSpeech(textProductDesc, apiKey, modelBackend) {
  const speechModel = new RemoteSpeechModel(apiKey);
  const input = new Text2SpeechInput({ text: textProductDesc, language: 'en-gb' });
  const audioContent = await speechModel.generateSpeech(input);
  const audioHelper = new AudioHelper();
  return audioHelper.decode(audioContent);
}

输出:
在这里插入图片描述

我们看到了如何无缝集成各种 AI 模型,使开发人员能够专注于其应用程序的核心功能,并利用 AI 功能来增强用户体验。

3、深入探索业务用例

IntelliNode 为各行各业的企业开辟了许多机会。 除了电子商务应用程序之外,这里还有一些我们可以使用该库构建的其他潜在用例:

  • 客户支持:通过实施能够理解用户查询并及时提供相关响应的人工智能聊天机器人来改善客户服务体验。 我们可以利用库中的语言和音频模型来实现这一点。
  • 语音助手:使用 Google DeepMind 的文本转语音模型创建语音驱动的应用程序或将语音命令功能集成到现有产品中。
  • 视觉内容生成:利用图像和语言模型为数字营销活动、社交媒体帖子或网站设计自动生成具有视觉吸引力的内容。 企业可以通过将 DALL·E 的创意能力与 GPT-3 或 Cohere.ai 等强大的语言模型相结合来创建独特的视觉效果。

4、结束语

随着 AI 随着许多模型和库的不断发展,利用 IntelliNode 等工具对于在竞争中保持领先地位并将你的业务应用程序与模型集成解耦至关重要。 这个开源库提供对流行模型的简化和统一访问,使开发人员能够在各个领域利用 AI 的力量,而不必受限于特定技术。


原文链接:IntelliNode - Node.js AI | BimAnt

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT QFormLayout表单布局控件

本文详细的介绍了QFormLayout控件的各种操作,例如:新建界面、控件布局、添加控件、添加标签、标签插入、删除控件行、显示格式、总行数、列间距、行间距、行列间距、其它文章等等操作。 实际开发中,一个界面上可能包含十几个控件,…

【22-23 春学期】AI作业7-卷积

一、简单描述卷积、卷积核、多通道、特征图、特征选择概念。 卷积是一种数学运算,其实质是在两个函数之间进行积分运算。在计算机视觉领域中,卷积主要是通过滑动卷积核在输入数据上进行特征提取和图像处理。 卷积核是一组固定的权重参数,用于…

三星SmartThings Find设备数量超3亿,苹果Find My设备遍布全球

三星在发布的新闻稿中,表示 SmartThings Find 服务经历了爆炸式增长,全球累计注册、加入设备数量超过 3 亿台。 SmartThings Find 类似于苹果的“Find My”服务,用户可借助这项服务,定位三星 Galaxy 智能手机、平板电脑、手表、…

JAVA开发运维(软件一体化可观测平台的功能)

软件可观测是软件度量的一种。旨在对软件的数字体验、业务运营、网络性能、应用性能、基础设施、IT流程进行监控和数据刻画。使开发人员和运维人员更好的对软件进行优化维护。 一、数字体验: 用户会话 了解用户使用路径,追查使用过程中影响用户体验的…

代码随想录 LeetCode数组篇 移除元素

文章目录 27. 移除元素26. 删除有序数组中的重复项283. 移动零844. 比较含退格的字符串977. 有序数组的平方 27. 移除元素 我的思路: 简单来说,将要删除的元素放到数组的最后 当数组中的元素和val的值相同时,就和数组末尾的值进行交换。 所…

【JavaEE进阶】——第五节.SpringMVC学习介绍(下)(获取Cookies、Session和Header、IDEA热部署)

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:JavaEE进阶 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录 前言…

​射频PCB 设计​的六大条技巧

即使是最自信的设计人员,对于射频电路也往往望而却步,因为它会带来巨大的设计挑战,并且需要专业的设计和分析工具。这里将为您介绍六条技巧,来帮助您简化任何射频PCB 设计任务和减轻工作压力! 1、保持完好、精确的射频…

如何将 Elasticsearch 和时间序列数据流用于可观察性指标 - 8.7

作者:Nicolas Ruflin Elasticsearch 用于多种数据类型 —— 其中之一就是指标。 随着多年前 Metricbeat 的推出以及后来我们的 APM 代理的推出,指标用例变得更加流行。 多年来,Elasticsearch 在如何处理指标聚合和稀疏文档等方面做出了许多改…

ES6-Class类

ES6 提供了更接近传统语言的写法,引入了 Class (类)这个概念,作为对 象的模板。通过 class 关键字,可以定义类。基本上, ES6 的 class 可以看作只是 一个语法糖,它的绝大部分功能&…

低代码开发重要工具:jvs-logic逻辑引擎的循环处理配置

循环操作是我们常常所见的业务处理方式,那么我们需要如何配置循环操作呢,我们接下来先看个简单的例子, 如下图所示,在一个列表页上,有个表级按钮,这个按钮是将本列表页的所有 “数量” 都 1 配置的思路通…

PostgreSQL+repmgr高可用部署

REPMGR 是一套在PostgreSQL服务器集群中用于管理复制和故障转移的开源工具 。它支持并增强了PostgreSQL的 内置流式复制,提供单个读/写主服务器 以及一个或多个只读备用数据库,其中包含主数据库的近实时副本服务器的数据库。 它提供了两个主要工具&#…

配电室设备监测怎么办?管理高手都是这样做的!

随着智能电网的不断推进,供配电安全也逐渐进入人们的视野,传统人工巡检的方式与当前智能化配电室的建设显得格格不入。 配电室,作为分配多路低压负荷开关的重要节点,其安全系数不言而喻,在管理和监控方面需要慎之又慎。…

数据结构初阶--链表OJ

目录 前言移除链表元素思路分析代码实现 链表的中间节点思路分析代码实现 反转链表思路分析代码实现 链表分割思路分析代码实现 合并两个有序链表思路分析代码实现 前言 本篇文章将对部分单链表的OJ题进行讲解 移除链表元素 我们先来看题 思路分析 我们可以采用双指针的方…

测试常见概念

文章目录 需求测试用例BUG软件生命周期开发模型scrum测试模型 需求 需求的概念:满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求 用户需求:可以简单理解为甲方提出的需求,如果没有甲方&…

java错题总结(19-21页)

链接:关于Java中的ClassLoader下面的哪些描述是错误的_用友笔试题_牛客网 来源:牛客网 B:先讲一下双亲委派机制,简单来说,就是加载一个类的时候,会往上找他的父类加载器,父类加载器找它的父类加…

Netty(1)

Netty 文章目录 Netty1 Netty 基本介绍2 why Netty2.1 原生 NIO 问题2.2 Netty 优点 3 I/O 线程模型3.1 传统阻塞 I/O 模型3.2 Reactor 模式3.2.1 Reactor 模式解决传统 I/O 方案3.2.2 Reactor 模式原理图3.2.3 Reactor 的核心组件3.2.4 单 Readcot 单线程(NIO模型)3.2.5 单 Re…

非科班转码,春招总结!

作者:阿秀 校招八股文学习网站:https://interviewguide.cn 这是阿秀的第「263」篇原创 小伙伴们大家好,我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈,目前已经超过 2300 小伙伴加入!去年认真准备和走下来的基…

Twitter 推荐算法底有多牛? 已斩获11.7K star

点击上方“Github中文社区”,关注 看Github,每天提升第070期分享 ,作者:Huber | Github中文社区 大家好,我是Huber。 在美国当地时间 3 月 31 日,马斯克履行当初的诺言,他宣布了 Twitter 算法的…

《编程思维与实践》1048.解密字符串

《编程思维与实践》1048.解密字符串 题目 思路 主要到密码是升序的,所以先将每个数字对应的个数求出,之后升序排列输出即可得到结果. 求每个数字(0-9)对应的个数可以考虑每个英文单词中特有的字符(出现单次), zero,one,two,three,four,five,six,seven,eight,nine; 下面提供其中…

系统性能压力测试

系统性能压力测试 一、压力测试 压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内&…