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

Copilot SDK调用超时求助:执行示例代码触发TimeoutError

TimeoutError: Timeout after 60.0s waiting for session.idle 问题分析与解决

问题重现

运行以下Copilot SDK代码时出现挂起并抛出超时错误:

import asyncio
from copilot import CopilotClient

async def main():
    client = CopilotClient()
    await client.start()

    session = await client.create_session({
        "model": "gpt-4.1",
        "streaming": True,
    })

    await session.send_and_wait({
        "prompt": "how are you?"
    })
    

asyncio.run(main())

错误信息:

TimeoutError: Timeout after 60.0s waiting for session.idle

原因分析

  • 流式模式与send_and_wait逻辑冲突:设置streaming: True后,会话会持续以流式返回响应数据,不会快速进入idle状态。但send_and_wait的核心逻辑是等待会话变为idle,这种不匹配直接触发超时。
  • 模型名称非法:Copilot SDK官方支持的模型列表中不存在gpt-4.1,错误的模型标识会导致会话初始化异常,间接引发超时问题。
  • 缺少流式数据处理逻辑:流式场景下需要主动监听并处理返回的流数据,原代码未添加任何流回调,会话一直处于活跃状态,触发默认的60秒超时机制。

解决方法

1. 适配流式模式的处理逻辑

放弃使用send_and_wait,改用send方法并添加流式回调处理返回数据:

import asyncio
from copilot import CopilotClient

async def on_message(message):
    # 处理流式返回的消息内容
    print(message.get("content", ""))

async def main():
    client = CopilotClient()
    await client.start()

    session = await client.create_session({
        "model": "gpt-4-turbo",  # 修正为合法模型名
        "streaming": True,
        "on_message": on_message  # 添加流式回调
    })

    await session.send({
        "prompt": "how are you?"
    })
    
    # 等待流式数据处理完成,时长可根据实际响应调整
    await asyncio.sleep(10)
    await client.stop()

asyncio.run(main())

2. 修正模型名称

将gpt-4.1替换为Copilot SDK支持的模型,比如gpt-4、gpt-4-turbo或gpt-3.5-turbo等,具体以官方文档的模型列表为准。

3. 调整超时时间(非流式场景可选)

如果必须使用send_and_wait,需关闭流式模式并自定义超时参数:

session = await client.create_session({
    "model": "gpt-4-turbo",
    "streaming": False,  # 关闭流式模式
    "timeout": 120  # 超时时间改为120秒
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 13:03:25