我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

审校 | 重楼

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

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

本教程介绍使用Node.jsExpress在微服务架构中针对LLama V2ChatGPTIntelliNode集成

聊天机器人集成选项

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

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

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

2. ChatGPT通过简单地提供OpenAI API密钥,IntelliNode模块允许在简单的聊天界面中与模型集成。您可以通过GPT 3.5GPT 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的无数业务场景打开了大门。

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

原文Building Microservice for Multi-Chat Backends Using LLama and ChatGPT,作者:Ahmad Albarqawi

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

微服务架构便于创建边界明确定义的灵活独立服务。这种可扩展的方法使开发人员能够在不影响整个应用程序的情况下单独维护和完善服务。

如何使用树莓派和Rocket.Chat构建一个私人聊天服务器

这篇文章主要为大家展示了“如何使用树莓派和Rocket.Chat构建一个私人聊天服务器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用树莓派和Rocket.Chat构建一个私人聊天服务器”
2023-06-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录