openai模型响应很慢 Time: 54.3951s 2025-11-19 19:30:32,441 - agno - DEBUG - * Tokens pe...

2025年11月19日 19:33 processing

错误信息

openai模型响应很慢 Time: 54.3951s 2025-11-19 19:30:32,441 - agno - DEBUG - * Tokens per second: 1.2869 tokens/s 2025-11-19 19:30:32,442 - agno - DEBUG - * Time to first token: 54.1245s

AI 解决方案

错误翻译

原文:Tokens per second: 1.2869 tokens/s | Time to first token: 54.1245s
译文:每秒令牌数:1.2869 个令牌/秒 | 首个令牌响应时间:54.1245秒

原因分析

  • 根本原因:OpenAI API响应速度极慢,首个令牌响应时间超过54秒,远低于正常水平

  • 具体表现:网络延迟或API服务器负载过高导致响应时间异常
  • 解决方案

    1. 添加超时和重试机制

    import openai
    from tenacity import retry, stop_after_attempt, wait_exponential
    
    @retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=4, max=10))
    async def call_openai_with_timeout(prompt, timeout=30):
        try:
            response = await openai.ChatCompletion.acreate(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": prompt}],
                timeout=timeout,
                request_timeout=timeout
            )
            return response
        except Exception as e:
            print(f"API调用失败: {e}")
            raise
    

    2. 优化请求参数

    # 减少响应长度,使用流式响应
    response = await openai.ChatCompletion.acreate(
        model="gpt-3.5-turbo",
        messages=messages,
        max_tokens=500,  # 限制响应长度
        stream=True,     # 启用流式响应
        timeout=30
    )
    

    预防措施

  • 监控机制:实现API响应时间监控,设置阈值自动切换备用服务

  • 负载均衡:准备多个API密钥或备用AI服务提供商,根据响应时间动态选择最优服务
  • 推荐工具:使用tenacity库实现自动重试,配合asyncio的超时控制来优化API调用体验。