获取模型列表失败: Invalid `http_client` argument; Expected an instance of `httpx.AsyncCl...
错误信息
获取模型列表失败: Invalid `http_client` argument; Expected an instance of `httpx.AsyncClient` but got <class 'httpx.AsyncClient'>
AI 解决方案
报错分析报告
1.错误翻译
原文:Invalid `http_client` argument; Expected an instance of `httpx.AsyncClient` but got <class 'httpx.AsyncClient'>
译文:无效的`http_client`参数;期望得到`httpx.AsyncClient`的实例,但实际得到的是<class 'httpx.AsyncClient'>
2. 原因分析
http_client实例类型与预期不匹配(类名相同但类对象身份或检查逻辑导致不匹配)httpx.AsyncClient实例的函数/方法时,传入了未通过类型检查的实例3. 解决方案
import httpx
# 1. 正确创建AsyncClient实例(统一导入路径)
http_client = httpx.AsyncClient()
# 2. 若涉及类型检查,用isinstance替代严格类匹配
def validate_http_client(client):
if not isinstance(client, httpx.AsyncClient): # ✅ 正确检查方式
raise ValueError("Invalid http_client argument")
return client
# 使用示例
async def get_models():
async with http_client as client:
validated_client = validate_http_client(client)
# 后续调用逻辑
4. 预防措施
import httpx后使用httpx.AsyncClient,避免多路径导入导致的类对象差异-类型检查最佳实践:用
isinstance(obj, httpx.AsyncClient)替代type(obj) is httpx.AsyncClient,支持子类实例工具推荐:用
mypy做静态类型检查,提前发现类型不匹配问题---