如何向ChatGPT API发送更长的文本输入?

25
我们在编程中有一个使用ChatGPT的用例,即对长文本进行摘要(语音转文字对话可能超过一小时)。
但是我们发现4k令牌限制往往会导致输入文本被截断到一半左右,因为达到了令牌限制。
分段处理似乎无法保留先前部分的历史记录。
对于提交超过4k个令牌的较长请求,我们有哪些选项?

1
你可以告诉它你将要发送多个文本片段,而它无需在你明确要求响应之前回复。然后分块发送你的文本。 - Barish Namazov
1
这个人在询问ChatGPT API,而不是公共的ChatGPT Web界面。Web版本会在之前的对话过长时执行某种智能摘要/压缩操作,因为在后台仍然必须遵守相同的限制。对于API,你必须自己解决问题。每个对API的请求都是完全独立的,不会保留任何上一个API调用的“记忆”。我也在思考这里的最佳解决方案是什么。 - jameslol
OP,也许你可以尝试实现Web ChatGPT正在做的事情 - 将所有文本拆分为约3000个单词的块,分别获取每个块的摘要,并将所有摘要发送到另一个API调用中,以获得“摘要总结”。 - jameslol
@jameslol 并不总是能够正确地将文本分成片段。 - Victor Kushnerov
@BarishNamazov,你能提供一个如何将长文本发送到ChatGPT的提示示例吗? - Victor Kushnerov
5个回答

7

对于你的问题,最接近的答案可以用嵌入来表示。

你可以在这里找到它们是什么。

我建议你查看OpenAI Cookbook Github页面上这段代码,它使用了一个Web Crawl Q&A示例来解释嵌入。

我从第5步开始使用了该代码,并改变了文本位置以指向我的包含长段文本的文件。

来自:

# Open the file and read the text
with open("text/" + domain + "/" + file, "r", encoding="UTF-8") as f:
    text = f.read()

to:

# Open the file and read the text
with open("/my_location/long_text_file.txt", "r", encoding="UTF-8") as f:
    text = f.read()

同时修改了第13步的问题,以便了解文本内容。


4

0

处理长文本的一种方法是将其分成较小的片段,根据您的任务检索相应的片段,然后通过 API 调用发送它们。

这里 有一个能够处理 PDF、txt 和 doc 文件以及网页的项目。它允许您与文档对话。在您的情况下,您可以问一个普通问题,比如“这个文档是关于什么的”,以获得摘要,然后询问更具体的细节。


-1

是的,有一个选项。您可以使用不同的API模型。

在此处查看每个模型可用的各种令牌长度: https://platform.openai.com/docs/models/overview

请注意,GPT-4模型尚不可用(但您可以加入等待列表)。

GPT-3.5模型code-davinci-002允许最多8,001个令牌,但在令牌方面可能更加昂贵。

一旦GPT-4 API模型可用,将允许更长的长度,最多32,768个令牌。


-1

您可以使用GPT-4处理长篇文本

正如OpenAI所述:

GPT-4能够处理超过25,000个单词的文本,适用于长篇内容创作、延续对话以及文档搜索和分析等应用场景。


1
请添加一个链接,帮助解决这个问题。谢谢! - myhd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接