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

微服务架构便于创建边界明确定义的灵活独立服务。这种可扩展的方法使开发人员能够在不影响整个应用程序的情况下单独维护和完善服务。然而,若要充分发挥微服务架构的潜力、特别是针对基于人工智能的聊天应用程序,需要与最新的大语言模型(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.hqwc.cn/news/171809.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git推送本地代码到远程仓库

Git推送本地代码到远程仓库 1、首先需要安装Git,如果已经安装,请跳过。下载地址:https://git-for-windows.github.io/ 2、安装好git服务器后。首先找到你项目的文件夹,比如项目名称为Item,进入到这个文件夹&#xff0…

k8s-实验部署 1

1、k8s集群部署 更改所有主机名称和解析 开启四台实验主机,k8s1 仓库;k8s2 集群控制节点; k8s3 和k8s4集群工作节点; 集群环境初始化 使用k8s1作为仓库,将所有的镜像都保存在本地,不要将集群从外部走 仓库…

C 语言指针怎么理解?

今日话题,C 语言指针怎么理解?让我用更简洁的方式来表达这个内容:就像桌面上的快捷方式一样,指针也可以有多层引用。我们可以将指针比作快捷方式的图标,快捷方式可以指向游戏(普通指针)&#xf…

MyBatis研究

入门级使用 参照MyBatis官网的简介与入门部分&#xff0c;尝试使用MyBatis&#xff0c;可创建新的Maven项目&#xff0c;引入以下依赖&#xff1a; <dependencies> <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</…

CTFhub-RCE-读取源代码

源代码&#xff1a; <?php error_reporting(E_ALL); if (isset($_GET[file])) { if ( substr($_GET["file"], 0, 6) "php://" ) { include($_GET["file"]); } else { echo "Hacker!!!"; } } else {…

主流接口测试框架对比,究竟哪个更好用

公司计划系统的开展接口自动化测试&#xff0c;需要我这边调研一下主流的接口测试框架给后端测试&#xff08;主要测试接口&#xff09;的同事介绍一下每个框架的特定和使用方式。后端同事根据他们接口的特点提出一下需求&#xff0c;看哪个框架更适合我们。 需求 1、接口编写…

Jenkins 质量扫描

代码质量扫描工具&#xff08;SonarQube&#xff09; 质量评审 SonarQube有四个关键组件 ◼ SonarQube Server运行有三个组件 ◆ Web Server&#xff1a;UI ◆ Search Server&#xff1a;为UI提供搜索功能&#xff0c;基于ElasticSearch ◆ Compute Engine Server&#xff1a…

kube-bench-CIS基准的自动化扫描工具学习

仓库地址&#xff1a;GitHub - aquasecurity/kube-bench: Checks whether Kubernetes is deployed according to security best practices as defined in the CIS Kubernetes Benchmark kube-bench,检查 Kubernetes 是否根据 CIS Kubernetes 基准中定义的安全最佳实践部署,下载…

堆的应用-----Top k 问题

目录 前言 Topk问题 1.问题描述 2.解决方法 3.代码实现&#xff08;C/C&#xff09; 前言 在人工智能算法岗位的面试中&#xff0c;TopK是问得最多的几个问题之一&#xff1a; 到底有几种方法&#xff1f; 这些方案里蕴含的优化思路究竟是怎么样的&#xff1f; 为啥T…

高德地图添加信息弹窗,信息弹窗是单独的组件

//弹窗组件 <template><el-card class"box-card" ref"boxCard" v-if"showCard"><div slot"header" class"clearfix"><div class"title">{{ model.pointName }}</div><div class…

MySQL锁机制详解

概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中&#xff0c;除了传统的计算资源&#xff08;如CPU、RAM、I/O等&#xff09;的争用以外&#xff0c;数据也是一种供需要用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一…

git快速上传代码

① git init&#xff1b; 初始化git&#xff0c;之后在文件夹里有.git文件&#xff0c;这个需要 勾选才能查看。 ② git remote add test myFisrtTest: 测试专用 这里的test是自定义的&#xff0c;myFisrtTest: 测试专用 是远程仓库 ③ git branch -a 这里是查看分支 ④ …