TypeError when using openai-api

news2024/9/20 17:49:09

题意:使用 openai-api 时出现 TypeError(类型错误)

问题背景:

Using the code below and openai version 0.28.0 i get an error which i can't resolve:

使用以下代码和 openai 版本 0.28.0 时,我遇到了一个无法解决的错误:

File "", line 11, in TypeError: string indices must be integers, not 'str'

文件“”,第 11 行,出现 TypeError:字符串索引必须是整数,而不是 'str'

Which indice is it complaining about. Seems I'm a little blind today...

它在抱怨哪个索引呢?看来我今天有点盲目…

import requests
from bs4 import BeautifulSoup
from docx import Document
import openai

# Set your OpenAI API key
openai.api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"


# URL of the website you want to scrape
website_url = "https://somesite.com"


# Send a GET request to the website
response = requests.get(website_url)

# Parse the HTML content of the website using BeautifulSoup
soup = BeautifulSoup(response.content, "html.parser")

# Extract text blocks larger than 100 characters
text_blocks = []
for paragraph in soup.find_all("p"):
    text = paragraph.get_text().strip()
    if len(text) >= 100:
        text_blocks.append(text)

# Translate text blocks from English to German using OpenAI's Chat API
translated_text_blocks = []
for text_block in text_blocks:
    chat_input = f"Translate the following English text to German: '{text_block}'"
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",  # Use the language model
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": chat_input},
        ],
    )

    # Extract translated text from the API response
    translated_text = response.choices[0].message["content"]["body"]
    translated_text_blocks.append(translated_text)

# Create a new Word document
document = Document()

# Add translated text blocks to the Word document
for translated_text in translated_text_blocks:
    document.add_paragraph(translated_text)

# Save the Word document
document.save("translated_content.docx")

The full console output is:        完整的控制台输出信息如下

>>> # Send a GET request to the website
>>> 
>>> response = requests.get(website_url)
>>> # Parse the HTML content of the website using BeautifulSoup
>>> 
>>> soup = BeautifulSoup(response.content, "html.parser")      
>>> # Extract text blocks larger than 100 characters
>>> 
>>> text_blocks = []
>>> for paragraph in soup.find_all("p"):
...     text = paragraph.get_text().strip()
...     if len(text) >= 100:
...         text_blocks.append(text)
... # Translate text blocks from English to German using OpenAI's Chat API
...
>>> translated_text_blocks = []
>>> for text_block in text_blocks:
...     chat_input = f"Translate the following English text to German: '{text_block}'"
...     response = openai.ChatCompletion.create(
...         model="gpt-3.5-turbo",  # Use the language model
...         messages=[
...             {"role": "system", "content": "You are a helpful assistant."},
...             {"role": "user", "content": chat_input},
...         ],
...     )
...     # Extract translated text from the API response
...     translated_text = response.choices[0].message["content"]["body"]
...     translated_text_blocks.append(translated_text)
... # Create a new Word document
...
Traceback (most recent call last):
  File "<stdin>", line 11, in <module>
TypeError: string indices must be integers, not 'str'
>>> document = Document()
>>> # Add translated text blocks to the Word document
>>>
>>> for translated_text in translated_text_blocks:
...     document.add_paragraph(translated_text)
... # Save the Word document
...
>>> document.save("translated_content.docx")
>>> print("Translated text blocks have been saved to 'translated_content.docx'.")
Translated text blocks have been saved to 'translated_content.docx'.

问题解决:

Your problem is caused by this line of code:

你的问题是由这行代码引起的:

translated_text = response.choices[0].message["content"]["body"]

response.choices[0].message["content"] is already your response from openai api in str type and so you are getting this error because you are trying to get item from str by key what is wrong.

response.choices[0].message['content'] 已经是来自 OpenAI API 的字符串类型响应,因此你遇到这个错误是因为你试图通过键从字符串中获取项目,这是不正确的。

So just replace this line on this line:

所以只需将这一行替换为这一行:

translated_text = response.choices[0].message["content"]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2044571.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软中断、Tasklet 与工作队列的机制分析

文章目录 1 软中断&#xff08;Softirq&#xff09;1.1 概念与背景1.2 特点与执行1.3 触发与执行方式1.4 实现与使用1.5 软中断的替代机制 2 Tasklet2.1 概念与特点 3 Bottom Halves&#xff08;BH&#xff09;3.1 概念与历史 4 工作队列&#xff08;Workqueue&#xff09;4.1 …

ElasticSearch集群搭建与安全认证

文章目录 核心概念集群节点分片CAT API查看集群信息 搭建三节点ES集群安装ES安装Cerebro客户端安装kibana ES集群安全认证ES敏感信息泄露的原因免费的方案集群内部安全通信开启并配置X-Pack的认证 核心概念 集群 一个集群可以有一个或者多个节点不同的集群通过不同的集群名来…

百度百科创建收费吗

百度百科作为一个开放的网络百科全书&#xff0c;旨在为用户提供丰富的知识信息。根据百度百科的官方声明&#xff0c;创建百度百科词条是完全免费的。任何人都可以自由编辑、修改和添加条目。百度百科的创建和编辑过程是由用户自发进行的&#xff0c;不存在官方收费的情况。 百…

【流程引擎】springboot完美集成activiti工作流方案

前言 activiti工作流引擎项目&#xff0c;企业erp、oa、hr、crm等企事业办公系统轻松落地&#xff0c;一套完整并且实际运用在多套项目中的案例&#xff0c;满足日常业务流程审批需求。 项目源码配套文档获取&#xff1a;本文末个人名片直接获取。 一、项目形式 springboot…

聊一下软件测试中沟通的原则

目录 一、沟通要清晰&#xff0c;简洁&#xff0c;准确&#xff0c;透明 二、沟通要尽早&#xff0c;及时&#xff0c;适应 三、既要对事&#xff0c;也要对人 四、保持开放心态 五、亲自验证 从事多年测试工作&#xff0c;一项基本功必须练会&#xff0c;那就是“沟通”。…

Springboot项目中使用druid实现多数据源和动态数据源,因数据库不可用导致的项目挂起的处理方案

Springboot项目中使用druid因数据库不可用导致的项目挂起的处理方案 在Spring Boot项目中使用Druid实现多数据源和动态数据源管理是一个常见的场景。通过合理的配置和错误处理机制&#xff0c;您可以有效地管理数据源&#xff0c;避免因数据库不可用而导致整个项目挂起。 1.…

npm包更新发布:从准备到发布的全面指南

引言 在Node.js的生态系统中&#xff0c;npm&#xff08;Node Package Manager&#xff09;是不可或缺的一部分&#xff0c;它不仅是获取和管理Node.js项目依赖的核心工具&#xff0c;也是分享和发布自己开发的模块或库的关键平台。 由于一些长期不更新的依赖没有原作者没有及…

精通C++ STL(五):list的介绍及使用

目录 ​编辑 list的介绍 list的使用 list的定义方式 list的插入和删除 push_front和pop_front push_back和pop_back insert erase list的迭代器使用 begin和end rbegin和rend list的元素获取 front和back list的大小控制 size resize empty clear list的操作函数 sort splic…

内部排序(插入、交换、选择)

一、排序的部分基本概念 1. 算法的稳定性 若待排序表中有两个元素 Ri 和 Rj &#xff0c;其对应的关键字相同即 keyi keyj&#xff0c;且在排序前 Ri 在 Rj 的前面&#xff0c;若使用某一排序算法排序后&#xff0c;Ri 仍然在 Rj 的前面&#xff0c;则称这个排序算法是稳定的…

EMC学习笔记4——传导骚扰发射

传导骚扰发射是最基本的实验项目&#xff0c;主要是检测设备在工作时是否通过电源线产生过强的骚扰发射。 一、传导骚扰发射判断 可以通过两个方面来判断设备是否产生了传导发射&#xff1a; 1.电流的时域波形判断&#xff1a;电流波形与电压的波形不一样。如下图所示&#xf…

界面控件DevExpress .NET MAUI v24.1 - 发布TreeView等新组件

DevExpress拥有.NET开发需要的所有平台控件&#xff0c;包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress 今年第一个重要版本v23.1正式发布&#xff0c;该版本拥有众多…

探索谜题,畅享推理——海龟汤智能体来袭

本文由 ChatMoney团队出品 介绍说明 在神秘与智慧交织的世界里&#xff0c;有一种游戏能让您的思维飞速旋转&#xff0c;激发无限的想象力和推理能力&#xff0c;那就是海龟汤。现在&#xff0c;我们为您带来全新的海龟汤智能体&#xff0c;为您的娱乐时光增添无尽乐趣&#x…

YOLOv5改进 | 融合改进 | C3融合动态卷积模块ODConv【完整代码】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a; 《YOLOv5入门 改…

学生高性价比运动耳机有哪些?五大性价比高的运动耳机学生党分享

2024年春季&#xff0c;开放式蓝牙耳机就凭借“佩戴舒适、开放安全”等优势火热出圈&#xff0c;这让各大音频厂商更新迭代速度不断加快&#xff0c;新品层出不穷。而用户面对市场上琳琅满目的开放式蓝牙耳机&#xff0c;一时间也不知道如何选择。对于学生来说&#xff0c;比较…

RepQ-ViT 阅读笔记

RepQ-ViT: Scale Reparameterization for Post-Training Quantization of Vision Transformers ICCV 2023 中国科学院自动化研究所 Abstract RepQ-ViT&#xff0c;一种新的基于量化缩放因子&#xff08;quantization scale&#xff09;重参数化的PTQ框架 解耦量化和推理过程…

ios使用plist实现相册功能

第一步&#xff1a;照片复制到Assets文件夹再创建plist 第二步&#xff1a;页面设计 第三步&#xff1a;代码实现 // // PhotoViewController.m // study2024 // // Created by zhifei zhu on 2024/8/11. //#import "PhotoViewController.h"interface PhotoView…

JAVA打车小程序APP打车顺风车滴滴车跑腿源码微信小程序打车系统源码

&#x1f697;&#x1f4a8;打车、顺风车、滴滴车&跑腿系统&#xff0c;一键解决出行生活难题&#xff01; 一、出行新选择&#xff0c;打车从此不再难 忙碌的生活节奏&#xff0c;让我们常常需要快速、便捷的出行方式。打车、顺风车、滴滴车系统&#xff0c;正是为了满足…

通天星CMSV6代码审计

fofa指纹 body"./open/webApi.html"||body"/808gps/" /gpsweb/WEB-INF/classes/config/version.conf中可以查看版本。 框架分析 默认安装目录为C:\Program Files\CMSServerV6\ 默认账户&#xff1a;admin/admin 框架结构 跟进web.xml&#xff0c;可以看…

WebGL 入门:开启三维网页图形的新篇章(上)

一、引言 介绍 WebGL 的背景和意义 一、背景 WebGL 是一种 JavaScript API&#xff0c;用于在网页上呈现三维图形。 它是在 2009 年由 Khronos Group 提出的&#xff0c;并于 2011 年成为 W3C 的标准。 在 WebGL 出现之前&#xff0c;网页上的三维图形主要是通过插件&…

TEMU卖家们如何提高temu店铺排名、权重、流量、采购测评成功率?

一、什么叫做自养号测评&#xff1f; 自养号测评类似于国内的某宝S单&#xff0c;就是通过搭建海外的服务器和IP采用海外真实买家资料来注册、养号、下单。 二、自养号测评有哪些作用&#xff1f; 自养号快速提高产品的排名、权重和销量&#xff0c;可以提升订单量、点赞(rat…