基于Amazon部署 Intelli-Agent,利用 DeepSeek 快速构建 LLM 应用

基于Amazon部署 Intelli-Agent,利用 DeepSeek 快速构建 LLM 应用

Intelli-Agent 提供一个高效简洁的工作流程,用于开发可扩展的、生产级别的 LLM 应用。在 Intelli-Agent,可选择多种模式(Chat,RAG,Agent)以满足不同业务需求,如问答系统,知识库,聊天助手。

本文将介绍 Intelli-Agent 部署并接入 DeepSeek 接口,快速构建属于自己的企业知识库。

1. 前置条件

  1. 创建并登录亚马逊云科技账号

亚马逊云科技为开发者提供了众多免费云产品。可以访问亚马逊云科技免费体验更多云产品资源。

  1. 拥有一个在亚马逊云科技中国区域北京或宁夏 ICP 备案的域名,如果在其他云备案, 需要将亚马逊云科技账号新增接入/提前完成 ICP exception 申请
  2. Limit 相关:新用户至少保证有 1 个 VPC 和 2 个 EIP 可用,Sagemaker Endpoint 至少需要 1 个 ml.g4dn.2xlarge,1 个 ml.g4dn.4xlarge quota,Lambda 的内存最低 4096M
  3. 在亚马逊云科技中国区域 Marketplace上订阅硅基流动的 API
    链接如下:API订阅

2. 环境准备

准备一台 Amazon Linux 2023 的 EC2(规格推荐: M6i.large),并保证至少有 100GB 的 EBS。确保该 EC2 部署在公有子网中。

进入控制台,在上方搜索栏输入搜索 EC2,选择 EC2 服务进入。点击启动实例,创建新实例

选择镜像:选择 Amazon Linux 2023 AMI

选择实例类型:搜索框中输入 m6i,选择推荐机型 M6i.large

通过密钥对来登录

配置存储:请修改存储配置到 100GB(推荐大小)

点击右下角启动实例

实例列表中显示正在运行,证明实例创建成功。

连接到 EC2 的方式:

SSH登陆 EC2:ssh -i "xxx.pem" ec2-user@public ip address

若遇到"Permissions 0644 for 'xxx.pem' are too open "的问题,请修改密钥权限 chmod 400 xxx.pem

3. 安装所需的依赖项

执行以下命令以安装 Python、Git、npm、Docker 等依赖项。**如果这些依赖项已经安装,可以跳过此步骤。**setup_env.sh 脚本适配 Amazon Linux 2023,如果使用其他操作系统,请手动安装这些依赖。

plainText 复制代码
wget https://aws-gcr-industry-assets.s3.cn-northwest-1.amazonaws.com.cn/mfg-kb-code/setup_env.sh
sh setup_env.sh

执行以下命令安装 Amazon CLI 工具(请跳过此步骤如果 已经安装)。

plainText 复制代码
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

进入 IAM 控制面板,创建用户。

完成用户创建后,进入用户,点击添加权限,并附加 AdministratorAccess 权限策略,创建访问密钥(AKSK)并下载保存。

执行 aws configure

输入 IAM User 的 access key, secret access key 和 default region, region 为 cn-north-1(北京)或者 cn-northwest-1(宁夏)

复制代码
aws configure
aws iam create-service-linked-role --aws-service-name opensearchservice.amazonaws.com
  • 添加 Secret

切换到方案部署的区域,进入 Secret manager,选择其他类型 secret

Key/value pairs: key 对应的填 key,value 填写在步骤一中获取的硅基流动 api key。

注意:secret name 必须是 siliconflow-api-key,不能填其他名称

再次检查 ICP Exception 及域名

  • 请确保部署此方案的亚马逊云科技中国区域账号已经进行过 ICP Exception 或 ICP 备案。在方案部署完成后,会自动创建一个 CloudFront 分配, 需要对其关联一个可用域名

在目标账户和区域上引导 Amazon CDK

shell 复制代码
npx cdk bootstrap aws://<Your account ID>/<Region>

4.项目部署

shell 复制代码
python3 -m venv mfg-kb-env
cd mfg-kb-env
source bin/activate
wget https://aws-gcr-industry-assets.s3.cn-northwest-1.amazonaws.com.cn/mfg-kb-code/deepseek-on-aws-workshop.zip
unzip deepseek-on-aws-workshop.zip
cd Intelli-Agent-gcr-custom

进入source/infrastructure 目录

shell 复制代码
cd source/infrastructure

安装项目依赖

shell 复制代码
npm cache clean --force
npm config set registry https://registry.npmmirror.com/
npm install
export CDK_MAX_RETRY_ATTEMPTS=3
export CDK_RETRY_BACKOFF_RATE=1.5

运行配置命令以设置所需功能的解决方案

shell 复制代码
npm run config	

准备所需的部署资源,包括前端和模型资产

shell 复制代码
npm run build

部署解决方案

shell 复制代码
npx cdk deploy --require-approval never --all
  • 确认部署结果

部署后,可以在 CloudFormation 控制台中找到包含 ai-customer-service 的堆栈。在堆栈的 Output 标签页中,可以找到关键的解决方案信息,常用的信息解释如下:

A B
1 名称 描述
2 WebPortalURL Intelli-Agent 前端网站链接。
3 APIEndpointAddress RESTful API 地址,主要用于数据预处理、聊天记录等功能。
4 WebSocketEndpointAddress WebSocket API 地址,主要用于聊天功能。

部署成功后,可以在 Cloudformation 中找到如下堆栈:

  • 关联域名

进入 CloudFront 控制台,根据上一步的 WebPortalURL 找到其 CloudFront 分配

点击编辑按钮,将域名添加到 Alternate domain name (CNAME) 中,生效后即可以通过域名来访问本方案。

5.构建知识库

进入知识库

通过浏览器输入 关联的域名网址进入首页

选择左侧边栏 **设置 > 聊天机器人,**进入到聊天机器人页面

在聊天机器人的列表中已经列出新创建的聊天机器人,创建完成

选择左侧边栏 设置>文档库,进入页面,点击右上角创建文档按钮

点击右上角创建文档,点击选择文件 上传文本,点击附加设置, 可以查看这个文件要注入到哪个聊天机器人的知识库,以及索引类型。索引类型 固定选择 qd 索引类型。

点击上传后等待上传完成,根据文件大小上传时间为 2-10 分钟(PDF 文件相对偏慢)

点击刷新查看是否上传完成,文档处理完成后状态如下:

注意:本页面不会自动刷新,请不定时刷新界面。

上传文本无需等待文件完全上传完成,可以同时同步上传多个文档。

  • 开启会话

选择左侧边栏 聊天 > 提示词,进入会话页面,选择刚才步骤 1 创建的聊天机器人。

展开配置,配置硅基流动 api,在 api 端点中输入 https://api.siliconflow.cn/v1,API 密钥 ARN 填入在安装步骤 > 环境准备 > 步骤 4 中在 Secret manager 配置的密钥 ARN

会话配置完成,可以从输入框输入消息开启对话

通过使用 Intelli-Agent,我们可以快速部署 LLM portal,并一键部署私有模型。基于 Intelli-Agent, 可以创建聊天机器人与注入知识库。这个方案简单易行,能够满足大多数企业级别 LLM 场景的需求。