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

导入SeqVecEmbedder时触发HTTP Error 406: Not Acceptable错误求助

问题描述

使用bio_embeddings处理蛋白质序列时,初始化SeqVecEmbedder触发HTTP Error 406: Not Acceptable错误,该错误源于自动下载SeqVec模型文件时请求被服务器拒绝。

报错堆栈信息:

File "C:\ProgramData\Miniconda3\envs\bio_e\lib\site-packages\bio_embeddings\embed\__init__.py", line 31, in __init__
    get_model_file(path=f.name, model='seqvecv{}'.format(str(kwargs.get('seqvec_version', 1))), file=file)
  File "C:\ProgramData\Miniconda3\envs\bio_e\lib\site-packages\bio_embeddings\utilities\remote_file_retriever.py", line 72, in get_model_file
    request.urlretrieve(url, filename=path, reporthook=t.update_to)
  File "C:\ProgramData\Miniconda3\envs\bio_e\lib\urllib\request.py", line 247, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
  File "C:\ProgramData\Miniconda3\envs\bio_e\lib\urllib\request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "C:\ProgramData\Miniconda3\envs\bio_e\lib\urllib\request.py", line 531, in open
    response = meth(req, response)
  File "C:\ProgramData\Miniconda3\envs\bio_e\lib\urllib\request.py", line 641, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\ProgramData\Miniconda3\envs\bio_e\lib\urllib\request.py", line 569, in error
    return self._call_chain(*args)
  File "C:\ProgramData\Miniconda3\envs\bio_e\lib\urllib\request.py", line 503, in _call_chain
    result = func(*args)
  File "C:\ProgramData\Miniconda3\envs\bio_e\lib\urllib\request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 406: Not Acceptable

测试代码:

from bio_embeddings.embed import SeqVecEmbedder
import torch 

seq = 'MVTYDFGSDEMHD'

embedder = SeqVecEmbedder()
embedding = embedder.embed(seq)
解决方案
  • 手动下载模型文件

    1. 定位bio_embeddings的模型缓存路径(通常为~/.cache/bio_embeddings/或conda环境对应的缓存目录)。
    2. 手动获取对应版本的SeqVec模型文件(版本1对应seqvecv1系列文件),放入上述缓存目录。
    3. 重新运行代码,此时SeqVecEmbedder会直接读取本地模型,无需发起网络请求。
  • 修改请求头适配服务器要求
    找到bio_embeddings/utilities/remote_file_retriever.py文件,替换原urlretrieve逻辑,添加符合服务器要求的请求头:

    # 替换原request.urlretrieve行的代码
    import urllib.request
    req = urllib.request.Request(url, headers={'Accept': '*/*'})
    with urllib.request.urlopen(req) as response, open(path, 'wb') as out_file:
        data = response.read()
        out_file.write(data)
    
  • 升级bio_embeddings库
    执行命令升级到最新版本,新版本可能已修复请求头适配问题:

    pip install --upgrade bio_embeddings
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:15:45