要使用 OpenAI 总结长文档,您可以利用 API 结合文本分块、提示工程和迭代处理。首先,将文档分割成易于管理的部分,使其适应 OpenAI 的 Token 限制(例如,gpt-3.5-turbo
为 4,096 个 Token)。使用简单的文本分割逻辑,例如按段落或句子分割,或者使用 tiktoken
等库来精确计算 Token 数量。将每个分块发送到 API,并附带清晰的提示,例如“用 3-4 句话总结以下文本”,并收集结果。对于非常长的文档,您可能需要递归地总结分块——首先总结各个部分,然后将这些摘要组合成最终摘要。
这是一个使用 Python 的实用示例。安装 openai
库并设置您的 API 密钥。加载您的文档,将其分割成分块,并循环遍历每个部分
import openai
openai.api_key = "YOUR_KEY"
text_chunks = [chunk1, chunk2, ...] # Your preprocessed chunks
summaries = []
for chunk in text_chunks:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": f"Summarize this in 3 sentences: {chunk}"}]
)
summaries.append(response.choices[0].message.content)
final_summary = "\n".join(summaries)
如果组合后的摘要仍然太长,请在 final_summary
文本上重复该过程。调整提示或模型参数(如 temperature=0.3
,以获得更集中的输出)以提高清晰度。
为了获得最佳结果,请预处理文本以删除不相关的内容(例如,页眉、页脚)并测试不同的提示。例如,“以 2 个要点的形式确定关键点”可能比一般请求产生更好的结构。监控 API 成本和性能——总结大型文档可能需要多次调用。如果您需要更高的 Token 限制,请考虑使用 gpt-4
(8k 或 32k Token 上下文),但要权衡成本。始终验证输出的准确性,因为模型有时可能会省略关键细节或误解复杂的部分。