python - 使用 Python 流式传输来自 Lambda 函数的 OpenAI 结果

标签 python lambda streaming openai-api

我正在尝试使用 OpenAI Python 库在 AWS 上使用 Lambda 函数流式传输 Open AI 的结果。对于调用模式,我有:RESPONSE_STREAM。并且,使用示例 provided for streaming ,我可以在函数日志中看到流式结果(下面缩写):

回应 空

函数日志 开始请求 ID:3e0148c3-1269-4e38-bd08-e29de5751f18 版本:$LATEST { “选择”:[ { “完成原因”:空, “索引”:0, “logprobs”:空, “文本”:“\n” } ], “创建”:1685755648, “id”:“cmpl-7NALANaR7eLwIMrXTYJVxBpk6tiZb”, “型号”:“文本-davinci-003”, “对象”:“文本完成” } { “选择”:[ { “完成原因”:空, “索引”:0, “logprobs”:空, “文本”:“\n” } ],....

但是,响应为空。我通过在浏览器中输入 URL 并通过 cURL 执行 get 请求来对此进行了测试:两者都以 null 响应。下面是我使用的确切代码(更改了 key ),但也可以在提供的链接上找到它:

import json
import openai
import boto3

def lambda_handler(event, context):
    
    model_to_use = "text-davinci-003"
    input_prompt="Write a sentence in 4 words."
    
    openai.api_key = 'some-secret key'
    response = openai.Completion.create(
      model=model_to_use,
      prompt=input_prompt,
      temperature=0,
      max_tokens=100,
      top_p=1,
      frequency_penalty=0.0,
      presence_penalty=0.0,
      stream=True
    )
    for chunk in response:
        print(chunk)

最佳答案

您遇到了麻烦,因为 python 运行时当前不支持流响应。从 4/7/2023 AWS announcement of streaming responses :

Response streaming currently supports the Node.js 14.x and subsequent managed runtimes.

截至 2023 年 6 月 8 日,这仍然成立。

关于python - 使用 Python 流式传输来自 Lambda 函数的 OpenAI 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76394246/

相关文章:

python - 添加与 Firefox webdriver 一起工作但不在 PhantomJS 中工作的 Cookie

python - 从 PowerShell 输出文本,读入 Python

python - 使用 Pyinstaller 编译 Gekko

python - 相关矩阵的滚动平均值

linq - ERROR 静态方法需要空实例,非静态方法需要非空实例

java - lambda 中的 Spring Request 作用域 bean

javascript - 在 iOS 上将视频流式传输到浏览器

linux - 使用 avconv 通过无线接入点将实时音频从在线 (alsa hw :0, 0) 流式传输到客户端。

node.js - 如何在 Lambda 函数中使用 AWS.CloudFront.Signer

Powershell:如何从非常大的文件中流式传输、分页文本?