使用 Python 流式传输来自 OpenAI API 的响应:分步指南

这篇具有很好参考价值的文章主要介绍了使用 Python 流式传输来自 OpenAI API 的响应:分步指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

OpenAI API 提供了大量可用于执行各种 NLP 任务的尖端 AI 模型。但是,在某些情况下,仅向 OpenAI 发出 API 请求可能还不够,例如需要实时更新时。这就是服务器发送事件 (SSE) 发挥作用的地方。

SSE 是一种简单有效的技术,用于将数据从服务器实时流式传输到客户端。如何在 Windows 计算机中备份驱动程序在本文中,我们将探讨如何使用 Python 和 SSE 实时流式传输来自 OpenAI API 的响应。到本教程结束时,您将对如何实现此技术有深入的了解,并且能够轻松地将响应从 OpenAI API 流式传输到您的应用程序。

检索您的 OpenAI API 密钥

为了能够从您的 Python 脚本中访问 OpenAI API,我们需要使用 API 密钥。

要检索您的 OpenAI API 密钥,您需要在 https://openai.com/ 创建一个用户帐户并访问 OpenAI 仪表板中的 API 密钥部分以创建一个新的 API 密钥。

使用 Python 流式传输来自 OpenAI API 的响应:分步指南

此密钥是秘密的,不得与任何其他人共享。稍后在实现 Python 脚本以访问 OpenAI 的 API 时,我们将需要使用此密钥。

执行脚本

在一个新文件夹中创建一个文件 main.py 并通过插入以下四行代码开始实施:

import requests
import json
import sseclient
 
API_KEY = '[INSERT YOUR OPENAI API KEY HERE]'

这段代码在 Python 中导入了三个模块:requests、json 和 sseclient。

requests 是一个流行的 Python 库,用于向服务器发送 HTTP 请求并接收响应。

json 是一个提供处理 JSON 数据的函数的库。它允许您编码和解码 JSON 数据。sseclient 是一个用于处理服务器发送事件 (SSE) 的库——一种在客户端和服务器之间通过 HTTP 进行的事件驱动通信。

如果您之前没有在 Python 开发环境中安装这些库,您首先需要使用 pip 命令来安装这些包:

pip install requests json sseclient-py

该代码还定义了一个用于存储 OpenAI API 密钥的变量 API_KEY。请将占位符文本 [INSERT YOUR OPENAI API KEY HERE] 替换为您之前从 OpenAI 帐户中检索到的 API 密钥。

接下来通过实现和执行 performRequestWithStreaming() 函数来进一步完成实现,该函数包含向 OpenAI API 完成端点执行 POST 请求并以流模式接收答案所需的所有逻辑:

import requests
import json
import sseclient
 
API_KEY = '[INSERT YOUR OPENAI API KEY HERE]'

def performRequestWithStreaming():
    reqUrl = 'https://api.openai.com/v1/completions'
    reqHeaders = {
        'Accept': 'text/event-stream',
        'Authorization': 'Bearer ' + API_KEY
    }
    reqBody = {
      "model": "text-davinci-003",
      "prompt": "What is Python?",
      "max_tokens": 100,
      "temperature": 0,
      "stream": True,
    }
    request = requests.post(reqUrl, stream=True, headers=reqHeaders, json=reqBody)
    client = sseclient.SSEClient(request)
    for event in client.events():
        if event.data != '[DONE]':
            print(json.loads(event.data)['choices'][0]['text'], end="", flush=True),

if __name__ == '__main__':
    performRequestWithStreaming()

该函数使用请求模块向 URL https://api.openai.com/v1/completions 发出 POST 请求。请求标头包括 Accept 和 Authorization 字段,授权标头使用代码中前面定义的 API_KEY 变量。

请求正文定义为 reqBody 变量,包含 API 请求的多个参数,包括模型名称、提示文本、要返回的最大令牌数、温度以及对流式响应的要求。

来自 API 请求的响应被分配给请求变量。然后,使用 sseclient 库处理响应,并将请求对象传递给 SSEClient 构造函数以创建新的客户端对象。

然后代码使用 for 循环迭代客户端对象中的事件。对于每个事件,事件数据都会打印到控制台,除非事件数据等于“[DONE]”,在这种情况下什么都不打印。json.loads()函数用于解析事件中的JSON数据,提取结果字典的choices字段,得到补全的文本。print() 函数的 end 和 flush 参数用于确保输出不被缓冲并立即显示在控制台上。

执行脚本

执行脚本

$ python main.py

然后您应该能够看到 OpenAI 提供的答案(提示“什么是 Python?”)被流式传输到命令行。

结论

总之,使用 SSE 和 Python 实时流式传输来自 OpenAI API 的响应是在应用程序中访问 AI 模型的一种强大而高效的方式。按照本文中的分步指南,您现在应该能够实施此技术并从 OpenAI API 接收实时更新。SSE 是一种简单有效的解决方案,用于将数据从服务器流式传输到客户端,对于那些希望将其应用程序的 AI 功能提升到一个新水平的人来说,它是一个很好的选择。文章来源地址https://www.toymoban.com/news/detail-418716.html

到了这里,关于使用 Python 流式传输来自 OpenAI API 的响应:分步指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python django StreamingHttpResponse流式响应中文是乱码

    在 Django 中,StreamingHttpResponse 用于实现流式响应,即在响应过程中逐步发送数据。如果在使用 StreamingHttpResponse 时,返回的中文内容出现乱码,可能是因为编码设置不正确。 要解决这个问题,请确保在设置 StreamingHttpResponse 时,正确设置了字符编码。以下是一个示例: 在这个

    2024年03月10日
    浏览(41)
  • OpenAI Whisper 语音识别 API 模型使用 | python 语音识别

    OpenAI 除了 ChatGPT 的 GPT3.5 API 更新之外,又推出了一个 Whisper 的语音识别模型。支持96种语言。 Python 安装 openai 库后,把需要翻译的音频目录放进去,运行程序即可生成音频对应的文字。 以上。

    2024年02月16日
    浏览(60)
  • 在 Python 中使用 OpenAI 的新 Whisper API 进行语音转文本

    您是否厌倦了手动转录数小时的录音?您想节省时间并提高工作效率吗?然后,您会很高兴听到 OpenAI 用于语音到文本转换的新 Whisper API!借助这项尖端的 AI 技术,您现在可以在 Python 程序中轻松地将音频文件转换为文本。让我们在下面探讨这是如何工作的! 创建一个新文件

    2024年02月09日
    浏览(49)
  • 如何使用OpenAI API和Python SDK构建自己的聊天机器人

    近日,OpenAI公司的ChatGPT模型走红网络。同时,OpenAI也推出了Chat API和gpt-3.5-turbo模型,让开发者能够更轻松地使用与ChatGPT类似的自然语言处理模型。 通过OpenAI API,我们可以使用gpt-3.5-turbo模型,实现多种任务,包括:撰写电子邮件或其他文本内容,编写Python代码,创建对话代

    2024年02月01日
    浏览(46)
  • 使用SSE技术调用OPENAI接口并实现流式输出,用PHP语言实现

    作为AI语言模型服务提供商,OpenAI 提供了一系列的 API 接口,其中大部分需要通过 HTTP 请求访问。对于大量数据的请求,传统的同步请求会导致网络响应变慢,无法满足实时数据处理和分析的需求。因此,为了优化这些接口的调用效率,我们可以利用 SSE(Server Sent Events) 技术来

    2024年02月11日
    浏览(47)
  • 为减少来自环境使用的无线传感器网络的传输次数而开发的方法(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 随着无线

    2024年02月08日
    浏览(43)
  • 使用Builder AST 转换为流式API

    从Groovy 2.3开始,我们可以使用 @Builder AST转换轻松地为我们的类创建一个流畅的API。 我们可以将注释应用于我们的类,结果类文件将具有支持流畅API的所有必要方法。 我们可以自定义如何使用不同的注释参数生成流畅的API。 在Groovy代码中,我们已经可以使用 with 方法 有一个

    2024年02月07日
    浏览(37)
  • python+flask+eventSource打造流式chatGPT生成式API接口

    后端用python,前端用web,怎么打通chatGPT API连接? 如果你遇到这样的情况: 科学上网登chat.openai.com开启一个新聊天,总是出现网页错误,刷新几次就没有对话的想法了。 获取了chatGPT的APIkey,用网上一大堆PHP/JSP/CURL的代码去试,效果很差,不是反应慢,就是兼容性不好。 用

    2024年02月04日
    浏览(48)
  • openai开放gpt3.5-turbo模型api,使用python即可写一个基于gpt的智能问答机器人

    使用 pip 安装openai库,注意 gpt3.5-turbo 模型需要 python=3.9 的版本支持,本文演示的python版本是 python==3.10.10 需要提前在 openai 官网上注册好账号,然后打开 https://platform.openai.com/account/api-keys 就可以创建接口 keys 每个账号注册完成会有18美元在里面,每次调用api,就会花费里面的

    2024年02月06日
    浏览(63)
  • 【AI大模型应用开发】【LangChain系列】9. 实用技巧:大模型的流式输出在 OpenAI 和 LangChain 中的使用

    大家好,我是同学小张,日常分享AI知识和实战案例 欢迎 点赞 + 关注 👏, 持续学习 , 持续干货输出 。 +v: jasper_8017 一起交流💬,一起进步💪。 微信公众号也可搜【同学小张】 🙏 本站文章一览: 当大模型的返回文字非常多时,返回完整的结果会耗费比较长的时间。如果

    2024年04月09日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包