使用LLama和ChatGPT为多聊天后端构建微服务

news2024/11/25 0:31:51

微服务架构便于创建边界明确定义的灵活独立服务。这种可扩展的方法使开发人员能够在不影响整个应用程序的情况下单独维护和完善服务。然而,若要充分发挥微服务架构的潜力、特别是针对基于人工智能的聊天应用程序,需要与最新的大语言模型(LLM,比如Meta LLama V2和OpenAI的ChatGPT)以及基于各种应用程序用例发布的其他经过微调的LLM进行强大的集成,从而为多样化的解决方案提供多模型方法。

LLM是大规模模型,可以基于不同数据训练生成类似人类的文本。通过从互联网上数十亿的单词中学习,LLM了解上下文并生成不同领域的调整后内容。然而,由于需要独特的接口、访问端点和每个模型的特定载荷,将各种LLM集成到单个应用程序中常常带来挑战。因此,拥有可以处理各种模型的单一集成服务就能改进架构设计,并加大独立服务的规模。

本教程将介绍使用Node.js和Express在微服务架构中针对LLama V2和ChatGPT的IntelliNode集成。

聊天机器人集成选项

以下是IntelliNode提供的几个聊天集成选项:

1. LLama V2:您可以通过Replicate的API集成LLama V2模型,以实现简单的流程,也可以通过AWS SageMaker主机集成LLama V2模型,以实现额外的控制。

LLama V2是一种功能强大的开源LLM,它已经过预训练,并使用多达700亿个参数进行了微调。它擅长处理众多领域的复杂推理任务,包括编程和创意写作等专业领域。它的训练方法包括自我监督数据,并通过从人类反馈中强化学习(RLHF)与人类偏好保持对齐。LLama V2超越了现有的开源模型,在易用性和安全性方面可与ChatGPT和BARD等闭源模型相媲美。

2. ChatGPT:通过简单地提供OpenAI API密钥,IntelliNode模块允许在简单的聊天界面中与模型集成。您可以通过GPT 3.5或GPT 4模型访问ChatGPT。这些模型已使用了大量数据进行训练,并经过微调,以提供与上下文高度相关的、准确的响应。

逐步集成

不妨从初始化一个新的Node.js项目开始。打开终端,浏览到项目所在目录,然后运行以下命令:

npm init -y

这个命令将为您的应用程序创建一个新的“package.json”文件。

接下来,安装Express.js,它将用于处理HTTP请求和响应以及用于LLM模型连接的intellinode:

npm install express
npm install intellinode

安装完成后,在项目的根目录下创建一个名为“app.js”的新文件,然后,在“app.js”中添加express初始化代码。

使用Replicate的API集成LLama V2

通过API密钥,Replicate提供了与LLama V2快速集成的路径,IntelliNode提供了聊天机器人接口,将您的业务逻辑与Replicate后端实现分离,允许您在不同的聊天模型之间切换。

不妨从与托管在Replica后端的LLama集成开始:

从replicate.com获取试用密钥以激活集成。

使用AWS SageMaker集成LLama V2

现在介绍通过AWS SageMaker集成LLama V2,提供隐私和额外的控制层。

集成需要从您的AWS帐户生成API端点,首先我们将在微服务应用程序中设置集成代码:

下列步骤是在您的帐户中创建一个LLama端点,一旦您设置了API网关,复制用于运行“/LLama /aws”服务的URL。

在您的AWS帐户中设置LLama V2端点:

1.SageMaker服务:从您的AWS帐户中选择SageMaker服务,然后点击域。

2.创建SageMaker域:先在您的AWS SageMaker上创建一个新域。这一步为您的SageMaker操作建立了受控空间。

3.部署LLama模型:利用SageMaker JumpStart来部署计划集成的LLama模型。建议从2B模型开始,因为运行70B模型的每月成本较高。

4.复制端点名称:一旦您已部署了模型,确保注意端点名称,这对后面的步骤至关重要。

5.创建Lambda函数:AWS Lambda允许运行后端代码而无需管理服务器。创建一个Node.js lambda函数,用于集成部署的模型。

6.设置环境变量:在Lambda中创建一个名为LLama_endpoint的环境变量,附有SageMaker端点的值。

7.Intellinode Lambda导入:您需要导入准备好的Lambda zip文件,该文件建立到SageMaker LLama部署的连接。这个导出是一个zip文件,可以在lambda_LLama_sagemaker目录中找到。

8.API网关配置:点击Lambda函数页面上的“添加触发器”选项,从可用触发器列表中选择“API网关”。

9.Lambda函数设置:更新Lambda角色以授予访问SageMaker端点所需的权限。此外,应该延长函数的超时时间以适应处理时间。可以在Lambda函数的“Configuration”选项卡中进行这些调整。

点击角色名称以更新权限,并提供访问SageMaker的权限:

ChatGPT集成

最后,我们将阐述集成Openai ChatGPT、作为微服务架构中另一个选项的步骤:

从platform.openai.com获取试用密钥。

进行实验

先在终端中导出API密钥,如下所示:

然后运行node应用程序:

node app.js

在浏览器中输入以下url以测试chatGPT服务:

http://localhost:3000/chatgpt?message=hello

我们构建了一个微服务,基于LLama V2和OpenAI的ChatGPT等LLM具有的功能。这种集成为充分利用基于高级AI的无数业务场景打开了大门。

通过将机器学习需求转换成解耦的微服务,您的应用程序可以获得灵活性和可扩展性的好处。不用配置您的操作,以适应整体式模型的约束,语言模型功能现在可加以单独管理和开发,这有望提高效率,更容易进行故障排查和升级管理。

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

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

相关文章

机器学习——实践

目录 一、数据集划分 1、交叉验证 2、不平衡数据的处理 代价敏感学习 二、评价指标 三、正则化、偏差和方差 为什么要标准化/归一化? 过拟合的处理——Dropout 过拟合的处理——Early stopping 过拟合的处理——数据增强 偏差和方差 ​编辑 一、数据集划分…

【Git】gui图形化界面的使用、ssh协议以及idea集成Git

目录 gui图形化界面的使用 介绍 特点 gui图形的使用 ssh协议 介绍 步骤及概念 ssh协议的使用 配置公钥 idea集成Git idea配置git IDEA安装gitee IDEA中登入Git ​编辑 项目分享 克隆分享的项目 ​编辑 ​编辑 idea上传远程 gui图形化界面的使用 介绍 GUI&#xff08…

单链表按位序插入

按位序插入(带头结点) #define NULL 0typedef struct LNode {int data;struct LNode *next; }LNode,*LinkList;//在第i个位置插入数据e&#xff08;带头结点&#xff09; bool ListInsert(LinkList &L, int i, int e){if (i<1)return false;LNode *p L; //指…

canvas 曲线图 双数值轴 山峰图

下面的代码本人亲自撰写&#xff0c;原生不易啊。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>D…

从单体到微服务:使用Spring Boot构建事件驱动的Java应用程序

Spring Boot是Pivotal团队设计的一种微服务框架&#xff0c; 基于Spring开发&#xff0c;用于简化新Spring应用的初始搭建及开发过程&#xff0c;提升Spring 开发者的体验。它秉持“约定大于配置”的思想&#xff0c;集成了大量开箱即用的第三方库&#xff0c;支持绝大多数开源…

HCIP---VRRP

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一. VRRP概述 VRRP---虚拟路由器冗余协议 VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;是一种用于在多个路由器之间创建虚拟路由器的协议。 VRRP使用了一系列协议来实现路…

win11 idea 错误: 找不到或无法加载主类

买了新电脑win11系统&#xff0c;配置环境之后运行项目&#xff0c;始终运行不起来&#xff0c;一直报 刚开始以为是环境没装好&#xff0c;但是我创建其他项目运行时是正常的 纠结了好久突然发现&#xff0c;是不是因为项目路径中有中文造成的找不到编译文件 最后把项目改为…

【Python】AppUI自动化—appium自动化元素定位、元素事件操作(17)下

文章目录 前言一.Appium 元素定位1.定位方式种类2.如何定位2.1 id定位2.2 className定位2.3 content-desc 定位2.4 Android Uiautomator定位4.1 text定位4.2 text模糊定位4.3 text正则匹配定位4.4 resourceId定位4.5 resourceId正则匹配定位4.6 className定位4.7 className正则…

P6入门:项目初始化2-项目详情之日期Date

前言 使用项目详细信息查看和编辑有关所选项目的详细信息&#xff0c;在项目创建完成后&#xff0c;初始化项目是一项非常重要的工作&#xff0c;涉及需要设置的内容包括项目名&#xff0c;ID,责任人&#xff0c;日历&#xff0c;预算&#xff0c;资金&#xff0c;分类码等等&…

RPC 框架 openfeign 介绍和学习使用总结

一、基本概念 RPC 远程过程调用&#xff08;Remote Procedure Call&#xff09;的缩写形式 Birrell 和 Nelson 在 1984 发表于 ACM Transactions on Computer Systems 的论文《Implementing remote procedure calls》对 RPC 做了经典的诠释。 RPC 是指计算机 A 上的进程&am…

元核云亮相金博会,智能质检助力金融合规

11月初&#xff0c;第五届中新&#xff08;苏州&#xff09;数字金融应用博览会&#xff5c;2023金融科技大会在苏州国际博览中心举办&#xff0c;围绕金融科技发展热点领域及金融行业信息科技领域重点工作&#xff0c;分享优秀实践经验&#xff0c;探讨数字化转型路径与未来发…

C# OpenCvSharp DNN HybridNets 同时处理车辆检测、可驾驶区域分割、车道线分割

效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Numerics; using System.Text; using System.Windows.Forms;namespace OpenCvSharp_D…

设备零部件更换ar远程指导系统加强培训效果

随着科技的发展&#xff0c;AR技术已经成为了一种广泛应用的新型技术。AR远程指导系统作为AR技术的一种应用&#xff0c;具有非常广泛的应用前景。 一、应用场景 气象监测AR教学软件适用于多个领域&#xff0c;包括气象、环境、地理等。在教学过程中&#xff0c;软件可以帮助学…

Day26力扣打卡

打卡记录 搜索旋转排序数组&#xff08;二分&#xff09; 链接 class Solution {int findMin(vector<int> &nums) {int left -1, right nums.size() - 1; // 开区间 (-1, n-1)while (left 1 < right) { // 开区间不为空int mid left (right - left) / 2;if…

Antd G6实现自定义工具栏

在使用g6实现知识图谱可视化中&#xff0c;产品经理提出了有关图谱操作的不少功能&#xff0c;需要放置在工具栏中&#xff0c;其中有些功能不在g6自带的功能里&#xff0c;且工具栏样式、交互效果也和官方自定义工具栏不同。那我们怎么去实现呢&#xff1f; g6官方的工具栏案例…

Azure 机器学习 - 使用自动化机器学习训练计算机视觉模型的数据架构

目录 一、用于训练的数据架构图像分类&#xff08;二进制/多类&#xff09;多标签图像分类对象检测实例分段 二、用于联机评分的数据架构输入格式输出格式图像分类&#xff08;二进制/多类&#xff09;多标签图像分类对象检测实例分段 在线评分和可解释性 (XAI) 的数据格式支持…

Linux的目录的权限

目录 目录的权限 目录的权限 1、可执行权限: 如果目录没有可执行权限, 则无法cd到目录中. 2、可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容. 3、可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件. 上面三个权限是…

SpringBoot3+Vue3+Mysql+Element Plus完成数据库存储blob类型图片,前端渲染后端传来的base64类型图片

前言 如果你的前后端分离项目采用SpringBoot3Vue3Element Plus&#xff0c;且在没有OSS&#xff08;对象存储&#xff09;的情况下&#xff0c;使用mysql读写图片&#xff08;可能不限于图片&#xff0c;待测试&#xff09;。 耗时三天&#xff0c;在踩了无数雷后&#xff0c…

深度学习 python opencv 动物识别与检测 计算机竞赛

文章目录 0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存…

如何帮助 3D CAD 设计师实现远程办公

当 3D CAD 设计师需要远程办公时&#xff0c;他们可能需要更强的远程软件&#xff0c;以满足他们的专业需求。比如高清画质&#xff0c;以及支持设备重定向、多显示器支持等功能。3D CAD 设计师如何实现远程办公&#xff1f;接下来我们跟随 Platinum Tank Group 的故事来了解一…