【问题标题】:Make a call to Amazon LEX asynchronously异步调用 Amazon LEX
【发布时间】:2022-06-12 04:23:30
【问题描述】:

我有调用 Amazon Lex 并从机器人获得响应的工作代码。这是代码的sn-p:

client = boto3.client(
    'lexv2-runtime', 
    region_name=region_name, 
    aws_access_key_id=aws_access_key_id,
    aws_secret_access_key=aws_secret_access_key
)

    response = client.recognize_text(
        botId=bot_id,
        botAliasId=bot_alias_id,
        localeId='en_US',
        sessionId=session_id,
        text=user_message,
    )

我现在想让这个调用异步。如何使用 boto3 或 Amazon Lex 支持的任何其他 python 库来实现这一目标

【问题讨论】:

    标签: python amazon-web-services boto3 python-asyncio amazon-lex


    【解决方案1】:

    据我了解,RecognizeTextAsync 仅在 DotNet SDK 中可用。因此,它在 Python、Java 或 JavaScript SDK 中不可用。

    您需要使用异步库来包装您的 boto3 调用。我对以下内容没有经验,但这可能是解决您问题的答案。

    https://pypi.org/project/aioboto3/

    【讨论】:

    • 谢谢,我会试试这个,但它似乎支持其他服务,如 s3 而不是 amazon lex
    【解决方案2】:

    aiboto3一起工作

        async with session.client('lexv2-runtime', region_name=region_name, aws_access_key_id=access_key_id,
                                  aws_secret_access_key=secret_access_key) as client:
            response = await client.recognize_text(
                botId=bot_id,
                botAliasId=bot_alias_id,
                localeId='en_US',
                sessionId=session_id,
                text="hi",
            )
    

    【讨论】:

      【解决方案3】:

      我也遇到了同样的问题。唐克斯斯科特。请让我知道aiboto3中如何管理会话ID。我必须跨 50,000 行话语运行此识别文本 API 调用,如果我使用相同的 sessionID,它会在并发客户端请求上引发错误。它是否涉及创建一个新会话来检查每个话语?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多