鱼C论坛

 找回密码
 立即注册
查看: 219|回复: 3

python怎么把超限长文本通过api发给chatgpt3.5去合并处理?

[复制链接]
发表于 2024-4-16 15:21:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
python怎么把超限长文本通过api发给chatgpt3.5去合并处理?

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-4-16 15:22:04 | 显示全部楼层
要将超过ChatGPT 3.5模型限制的长文本发送到API进行处理,您需要按照API的要求对文本进行分割,并通过多个请求来逐段发送。以下是一种实现方法:

首先,确定ChatGPT 3.5模型对文本长度的限制。假设限制是2048个字符。

然后,将超长文本分割成小段,每段都不超过2048个字符。可以使用句号、换行符等作为分割标志,确保分割段落时不会影响语义完整性。

接下来,准备发送API请求的代码。您可以使用Python中的`requests`库来发送HTTP请求。确保您已经获得了API的授权密钥和相关信息。

下面是一个示例代码:
import requests

def send_to_chatgpt3(text):
    url = "API的URL"
    headers = {"Authorization": "密钥信息"}

    response = requests.post(url, headers=headers, json={"text": text})
    result = response.json()

    return result

def merge_text(long_text):
    segments = []
    current_segment = ""

    for sentence in long_text.split("."):
        if len(current_segment + sentence) > 2048:
            segments.append(current_segment.strip())
            current_segment = ""

        current_segment += sentence + ". "

    if current_segment:
        segments.append(current_segment.strip())

    merged_result = ""

    for segment in segments:
        response = send_to_chatgpt3(segment)
        merged_result += response["result"]

    return merged_result

在上述示例中,`send_to_chatgpt3()`函数负责发送单个文本段落给ChatGPT 3.5的API,并返回处理结果。`merge_text()`函数将长文本分割成可接受的短段落,并依次发送,最后将处理结果合并返回。

请记住,由于ChatGPT 3.5的API调用可能会产生费用,您需要在使用之前了解并遵守API提供商的收费政策。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-16 15:49:04 | 显示全部楼层
能把超长文本功能合并到这个代码里吗?
from openai import OpenAI

client = OpenAI(
    base_url = 'https://api.chatany.tech/v1',
    api_key = "sk-loHrzSP2KEPOWUVFE5KeARwjTpSbSzKguMQYjIxFZ2xv"      # 设置你的 API 密钥
)

def chat(question):
    response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": question}
    ]
    )
    reply = response.choices[0].message.content
    return reply

question = """请给下面的文本加上标点:
hey thank you so much for clicking on this video my name is Olivia and I'm a gender affirming voice teacher if you're working on voice training ]
"""

reply = chat(question)


print("你:", question)
print("GPT:", reply)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-16 15:49:53 | 显示全部楼层
blackantt 发表于 2024-04-16 15:49
能把超长文本功能合并到这个代码里吗?
from openai  ...


当然可以将超长文本的功能合并到您提供的代码中。请注意,您提供的代码使用了CHAT API的另一个库,而非requests库。因此,您需要根据OpenAI库的文档,找到相应的方法来发送多个请求以处理超长文本。以下是将超长文本功能合并到代码中的示例:
from openai import OpenAI

client = OpenAI(
    base_url='https://api.chatany.tech/v1',
    api_key="sk-loHrzSP2KEPOWUVFE5KeARwjTpSbSzKguMQYjIxFZ2xv"  # 设置你的 API 密钥
)

def send_to_chatgpt3(text):
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "system", "content": "You:"}, {"role": "user", "content": text}]
    )
    reply = response.choices[0].message.content
    return reply

def merge_text(long_text):
    segments = []
    current_segment = ""
    for sentence in long_text.split("."):
        if len(current_segment + sentence) > 2048:
            segments.append(current_segment.strip())
            current_segment = ""
        current_segment += sentence + ". "
    
    if current_segment:
        segments.append(current_segment.strip())
    
    merged_result = ""
    for segment in segments:
        response = send_to_chatgpt3(segment)
        merged_result += response
    
    return merged_result

question = """请给下面的文本加上标点:hey thank you so much for clicking on this video my name is Olivia and I'm a gender affirming voice teacher if you're working on voice training"""
reply = merge_text(question)

print("你:", question)
print("GPT:", reply)

在上述示例中,`send_to_chatgpt3()`函数负责调用库的CHAT API发送单个文本段落给ChatGPT 3.5模型,并返回处理结果。`merge_text()`函数用于将超长文本分割为可接受的短段落,并依次发送处理,并将最终结果合并返回。

请确保您已正确导入所需的库,并且已正确配置API密钥和URL。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-26 14:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表