invalid_requestPrompt is too long

2026年05月30日 11:00 33.07 秒 success

错误信息

❌ Error: invalid_requestPrompt is too long

AI 解决方案

🔍 报错分析

1. 🌐 错误翻译

原文:Error: invalid_request - Prompt is too long
译文:无效请求 - 提示词/上下文太长

2. 🎯 原因分析

发送给大语言模型(LLM)的 prompt(提示词+上下文) 超出了模型支持的 最大 token 限制

常见场景:

  • 对话历史过长,累积的上下文超出限制

  • 一次性发送了过多的文档/数据

  • 使用的模型上下文窗口较小(如 4K、8K)
  • 3. 💡 解决方案

    方案一:截断/精简 prompt

    // 限制消息历史长度
    const maxMessages = 20;
    const truncatedMessages = messages.slice(-maxMessages);
    
    // 或者限制字符长度
    const maxChars = 10000;
    const prompt = userInput.slice(0, maxChars);
    

    方案二:使用支持更长上下文的模型

    // 选择更大上下文窗口的模型
    const model = "gpt-4o";        // 128K 上下文
    // 而非
    const model = "gpt-3.5-turbo"; // 4K/16K 上下文
    

    方案三:动态计算 token

    import { encoding_for_model } from "tiktoken";
    
    const enc = encoding_for_model("gpt-4o");
    const tokenCount = enc.encode(prompt).length;
    
    console.log(`当前 token 数: ${tokenCount}`);
    

    4. 🛡️ 预防措施

    措施说明
    📊 发送前计算 token使用 tiktoken 等库预估 token 数量
    🔄 实现滑动窗口自动保留最近 N 条消息,丢弃早期对话
    ✂️ 自动截断机制超出限制时智能截断,保留关键信息
    💡 经验法则:建议预留 20% 的 token 空间给模型响应,避免请求 + 响应都超限。