You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel应用集成AWS Lex机器人?Postman测试遇阻求助

解决AWS Lex机器人端点查找与Postman测试问题

一、正确获取AWS Lex机器人端点

AWS Lex的端点获取方式分V1、V2两个版本,对应操作如下:

Lex V2版本

  1. 登录AWS控制台进入Lex服务,选中目标机器人
  2. 切换到渠道标签页,在「文本/语音」区域点击「创建渠道」→ 选择「REST」
  3. 配置渠道名称、IAM角色(需包含AmazonLexRunBotsFullAccess权限),完成配置后即可生成Invoke URL,这就是你需要的请求端点
  4. 注意:每个机器人别名对应独立端点,测试阶段可使用默认TEST_ALIAS,生产环境建议创建自定义别名

Lex V1版本

  1. 选中机器人后点击发布,选择或创建别名完成发布
  2. 在机器人详情页的端点区域,会显示POST请求URL,格式示例:
    https://runtime.lex.{region}.amazonaws.com/bot/{botName}/alias/{aliasName}/user/{userId}/text
    

二、Postman测试正确配置

1. 请求基础配置

  • 请求方法:POST
  • 认证方式:选择AWS Sigv4,填入你的AWS Access Key、Secret Key、机器人所在区域、服务名称填lex,Postman会自动生成签名头
  • 必须添加Header:Content-Type: application/json

2. 请求Body示例

{
  "inputText": "你好,我想查询订单状态",
  "sessionId": "test-user-001",
  "requestAttributes": {},
  "sessionAttributes": {}
}

3. 常见问题排查

  • 确认IAM用户拥有lex:RecognizeText(V2)或lex:PostText(V1)权限
  • 检查端点区域与机器人创建区域完全匹配
  • 验证机器人别名已完成发布操作
  • 若手动生成签名,确保日期格式为YYYYMMDD'T'HHMMSS'Z',签名计算逻辑正确

三、Laravel集成实现步骤

  1. 安装AWS SDK for PHP:
    composer require aws/aws-sdk-php
    
  2. 在.env中配置AWS凭证:
    AWS_ACCESS_KEY_ID=你的密钥ID
    AWS_SECRET_ACCESS_KEY=你的密钥
    AWS_DEFAULT_REGION=机器人所在区域(如us-east-1)
    
  3. 创建Lex服务类封装请求逻辑:
    use Aws\LexRuntimeV2\LexRuntimeV2Client;
    
    class LexService
    {
        public function sendMessage(string $inputText, string $sessionId): string
        {
            $client = new LexRuntimeV2Client([
                'version' => 'latest',
                'region' => env('AWS_DEFAULT_REGION'),
                'credentials' => [
                    'key' => env('AWS_ACCESS_KEY_ID'),
                    'secret' => env('AWS_SECRET_ACCESS_KEY'),
                ]
            ]);
    
            $response = $client->recognizeText([
                'botId' => '你的机器人ID',
                'botAliasId' => '你的别名ID',
                'localeId' => 'zh_CN', // 替换为机器人对应的语言Locale
                'sessionId' => $sessionId,
                'text' => $inputText
            ]);
    
            return $response->get('messages')[0]['content'];
        }
    }
    
  4. 在控制器中调用该服务,接收前端请求并返回机器人响应

内容的提问来源于stack exchange,提问作者Muhammad Umair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 09:25:04