LLM API接口主要作用是为开发者们提供一种非常便捷的方式来访问/利用大语言模型LLM的功能。想快速地使用部署到推理端点的模型服务,又不希望修改其应用代码怎么办?那么可以使用AWS项目所实现的与OpenAI API兼容的服务,使用Amazon SageMaker作为后端来生成文本响应。服务支持流式响应,可以实时将生成内容返回给客户端。
本解决方案提供了兼容OpenAI的功能,主要为了帮助大家将OpenAI应用轻松接入到Amazon SageMaker推理端点,主要具有如下特点:
与OpenAI API兼容,易于与现有工具集成;
- 支持流式响应(Server-Sent Events);
- API密钥认证;
- 使用Amazon SageMaker作为后端推理服务;
- 支持多种部署方式(Docker, ECS, EKS)。
以下涉及特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,(点击立即注册)亚马逊云科技海外账户,免费试用Amazon SageMaker和100+种云产品。
相关推荐:《亚马逊云科技海外账号注册流程图解》
一、工作流程
OpenAI Compatible API with Amazon SageMaker的架构如下图所示:
二、Amazon SageMaker部署通用LLM API接口
1、前提条件
(1)Amazon SageMaker端点
部署一个Amazon SageMaker推理端点。
(2)AWS服务权限:
- Amazon ECS部署权限
- Amazon SageMaker创建推理端点,调用推理端点权限
- Amazon EC2 ALB创建权限
- Amazon ECR推送权限
2、安装与部署
下载项目代码:
https://github.com/leoou331/openai-compatible-api-streaming.git
(1)环境变量配置
创建一个.env 文件,设置以下环境变量:
(2)构建和推送Docker镜像
先加载环境变量,然后构建Docker镜像并推送到ECR。
build_and_push.sh这个脚本会:
- 更新Dockerfile中的环境变量,特别是SAGEMAKER_ENDPOINT_NAME将被设置为环境变量MODEL的值;
- 构建Docker镜像;
- 推送镜像到Amazon ECR。
(3)部署服务
Aamazon ECS部署涉及多个步骤,包括创建集群、任务定义、服务和负载均衡器设置。以下是完整的部署流程:
创建Amazon ECS集群:
创建ALB (Application Load Balancer),记下返回的ALB ARN和DNS名称L:
创建目标组,记下返回的目标组ARN:
创建监听器,TARGET-GROUP-ARN为上一步记录的目标组ARN:
创建任务执行IAM角色,这个角色允许ECS任务拉取ECR镜像、访问CloudWatch日志等。如果还没有此角色,请创建:
创建任务定义:
创建一个名为”task-definition.json”的文件:
注册任务定义:
创建ECS服务:
创建一个名为 service-definition.json 的文件:
替换<TARGET-GROUP-ARN>为之前创建的目标组ARN,更新相应的subnet id和securityGroups,然后创建服务:
获取ALB的DNS名称,用于访问服务:
使用获得的DNS名称更新”.env”文件中的”OPENAI_BASE_URL”:
监控服务状态:
这个命令会显示一个简洁的表格,包含服务名称、状态、期望任务数、运行中任务数和使用的任务定义版本,如下图所示:
三、测试与使用
本方案包含一个测试脚本 OpenAI_Client_Test.debug.py,可用于验证API的功能。
首先加载环境变量:
运行测试脚本:
脚本会使用环境变量中设置的”OPENAI_BASE_URL”、”OPENAI_API_KEY”和”MODEL”,发送一个简单的问候消息”Hello!”,并以流式方式接收和显示响应。输出如下所示:
相关阅读:
《借助亚马逊Amazon SageMaker使用Llama 2模型教程》
《Amazon SageMaker AI结合DeepSeek构建AI Agents教程》
(本文由美国主机侦探原创,转载请注明出处“美国主机侦探”和原文地址!)

微信扫码加好友进群
主机优惠码及时掌握

QQ群号:938255063
主机优惠发布与交流