You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AI Studio聊天流上下文超限问题及方案咨询

问题背景

在Azure AI Studio中构建聊天流,目标是执行3次索引查询并让LLM对比差异。但设置top_k=3时,因提示需纳入3个来源数据,触发token超限错误:

chat : OpenAI API hits BadRequestError: Error code: 400 - {'error':
{'message': "This model's maximum context length is 8192 tokens.
However, your messages resulted in 8374 tokens. Please reduce the
length of the messages.", 'type': 'invalid_request_error', 'param':
'messages', 'code': 'context_length_exceeded'}}

当前使用的Prompt模板:

# system:
You are a helpful AI assistant

This is what you know:
1. Dataset 1
{% for item in dataOne %}
text: {{item.text}}
{% endfor %}}

2. Dataset 2
{% for item in dataTwo %}
text: {{item.text}}
{% endfor %}}

Considering the past chat history
{% for item in chat_history %}
# user:
{{item.inputs.question}}
# assistant:
{{item.outputs.answer}}
{% endfor %}

# user:
{{question}}

Keep the answer short, brief and concise.

咨询问题:

  1. 是否有办法绕过该token限制?
  2. 堆叠两个LLM块是否合理:第一个块的prompt处理数据/文件,第二个块的prompt处理聊天历史?

补充思路:使用具有更高token输入限制的模型。


解答

1. 绕过token限制的可行方案

  • 优化检索结果:
    • 降低top_k值,减少单次纳入的检索数据量;或者对检索到的文本做摘要处理,仅保留与当前问题强相关的核心片段,而非全量传入。
    • 启用上下文压缩机制,通过轻量模型提炼检索内容,去除冗余信息,压缩token占用。
  • 精简Prompt与历史:
    • 简化系统提示词,去除冗余表述,比如将"This is what you know:"替换为更简洁的"参考以下检索数据:"。
    • 对聊天历史做截断或摘要处理:只保留最近几轮关键对话,或用LLM生成历史对话的精简摘要,避免全量传入所有历史内容。
  • 切换大上下文模型:
    直接更换支持更高token上限的模型,从根源上解决上下文长度限制问题。

2. 堆叠两个LLM块的合理性分析

这种分阶段处理的方案是合理的,能有效拆分上下文压力:

  • 第一个LLM块:专注处理3个数据源,生成结构化的核心差异摘要,仅保留关键不同点,大幅压缩数据体积。
  • 第二个LLM块:结合这份精简的差异摘要、聊天历史和当前问题,生成最终回答。
  • 优势:将大体积的检索数据与聊天历史拆分为两个独立处理阶段,每个阶段的输入token量都能控制在模型限制内,同时保证核心信息不丢失。
  • 注意事项:第一个LLM的Prompt要明确指令,比如"对比以下3份数据的核心差异,输出简洁的结构化对比结果,仅保留关键不同点",确保输出足够精简,不给第二个LLM造成新的token压力。

内容的提问来源于stack exchange,提问作者GKecheng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 18:52:34