blackantt 发表于 2024-4-26 16:11:28

网站上gemini pro 输出时,没过一阵就需要 go on,能否一口气输出?

1. 网站上gemini pro 输出时,没过一阵就需要 go on,能否一口气输出?


2. 在api调用时,怎么让它对长文本不出错呢?

不二如是 发表于 2024-4-26 17:09:40

长文本只能通过程序调用 API

blackantt 发表于 2024-4-26 17:12:57

本帖最后由 blackantt 于 2024-4-26 17:25 编辑

不二如是 发表于 2024-4-26 17:09
长文本只能通过程序调用 API


`)

blackantt 发表于 2024-4-26 17:13:50

本帖最后由 blackantt 于 2024-4-26 17:24 编辑

不二如是 发表于 2024-4-26 17:09
长文本只能通过程序调用 API


想给 srt 字幕文件加标点。图形界面下,每几百行,输入 go on 勉强能走完。
但api下怎么给 srt 长文件 加标点呢?



给个简单长文代码吧,

小甲鱼的二师兄 发表于 2024-5-2 20:37:35

blackantt 发表于 2024-4-26 17:13
想给 srt 字幕文件加标点。图形界面下,每几百行,输入 go on 勉强能走完。
但api下怎么给 srt 长 ...

受到 tokens 长度的,一般都要做截断处理,分段落发送和接收合并。

小甲鱼的二师兄 发表于 2024-5-2 20:39:15

小甲鱼的二师兄 发表于 2024-5-2 20:37
受到 tokens 长度的,一般都要做截断处理,分段落发送和接收合并。

分割和合并代码参考:

def split_text(text, max_length):
    """
    将文本分割成多个不超过max_length的段落。
    """
    paragraphs = []
    current_paragraph = ""

    for word in text.split():
      if len(current_paragraph) + len(word) + 1 > max_length:
            paragraphs.append(current_paragraph)
            current_paragraph = word
      else:
            if current_paragraph:
                current_paragraph += " "
            current_paragraph += word

    if current_paragraph:
      paragraphs.append(current_paragraph)
   
    return paragraphs

def translate(text, source_lang="en", target_lang="zh"):
    """
    假设的API翻译函数,这里只是简单返回输入的文本加上 " (translated)"。
    实际使用时应调用具体的翻译API。
    """
    # 模拟网络延时
    import time
    time.sleep(1)
    return text + " (translated)"

def translate_long_text(text, source_lang="en", target_lang="zh", max_length=1000):
    """
    处理长文本的翻译,自动分割并合并翻译结果。
    """
    segments = split_text(text, max_length)
    translated_segments = []

    for segment in segments:
      translated_text = translate(segment, source_lang, target_lang)
      translated_segments.append(translated_text)
   
    return ' '.join(translated_segments)

# 示例文本
long_text = "This is a very long text that needs to be split into multiple segments for translation. " * 20

# 翻译长文本
translated_text = translate_long_text(long_text, source_lang="en", target_lang="zh")
print(translated_text)
页: [1]
查看完整版本: 网站上gemini pro 输出时,没过一阵就需要 go on,能否一口气输出?