Model: GPT-4
Avatar of the person chatting

请你帮我写一段代码,实现这样的需求: 1. 接收一个 URL 作为输入 2. 获取这个 URL 的网页,并且通过 readability 这个库提取网页里的正文内容 3. 将正文内容调用 OpenAI 的 API 做一个 Summarize

以下是一段使用Python编写的示例代码,以完成你的需求。这段代码主要使用了requestsBeautifulSoupreadabilityopenai库。由于你想要使用OpenAI的API做一个Summarize,我写的代码使用了OpenAI的GPT-3模型。请注意,你需要在使用OpenAI API之前设置你的OpenAI API密钥。如果你没有密钥,你需要去OpenAI的官网申请。

在运行下面的代码之前,确保已经安装了所有必需的库。你可以使用pip install命令进行安装。

pythonCopy code
import requests from bs4 import BeautifulSoup from readability import Document import openai # 确保在使用OpenAI API之前设置你的OpenAI API密钥 openai.api_key = 'your-api-key' def summarize_web_content(url): response = requests.get(url) doc = Document(response.text) content = doc.summary() # 使用 BeautifulSoup 去除 HTML 标签,仅提取纯文本 soup = BeautifulSoup(content, features="html.parser") content_text = soup.get_text() # 使用OpenAI的GPT-3模型生成摘要 result = openai.Completion.create( engine="text-davinci-002", prompt=content_text[:2048], temperature=0.3, max_tokens=150 ) return result.choices[0].text.strip() # 示例用法 url = "http://example.com" summary = summarize_web_content(url) print(summary)

注意,这段代码仅作为示例,并可能需要根据实际使用场景进行调整。例如,你可能需要处理网络请求失败、HTML解析失败、OpenAI API请求失败等可能出现的错误情况。同时,因为OpenAI的GPT-3模型的prompt长度限制是2048个token,所以如果网页内容非常长,可能需要使用其他方法截取或分段处理。

Avatar of the person chatting

ImportError: cannot import name 'Document' from 'readability' (/Users/huangjiabao/GitHub/SourceCode/MacBookPro16-Code/PythonCoder/venv/lib/python3.11/site-packages/readability/__init__.py)

根据你给出的错误信息,看来你可能安装的是一个名为readability的库,但这并不是我们想要的库。我们想要的是readability-lxml库,它包含Document这个我们需要的类。

在Python中,有一些库的名字可能会相似,或者说有时会有多个库具有相同的名字,但它们可能由不同的开发者开发,功能也可能不同。

为了解决这个问题,你可以试试以下的步骤:

  1. 卸载当前的readability库:在你的命令行中输入pip uninstall readability
  2. 安装readability-lxml库:在你的命令行中输入pip install readability-lxml

完成上述步骤后,你应该就可以导入并使用Document了。