Veblen34's picture
Upload folder using huggingface_hub
cd6775d verified
Raw
History Blame Contribute Delete
1.4 kB
"""② 无监督式查询分解(XLM seq2seq,进程内)。
复用 methods/unsupervised/XLM/server_translate.py 里的 load()/decompose()(已改为惰性加载),
不再启动 Flask 服务。首次调用需要 RAGQA_XLM_CKPT 与 CUDA GPU。
"""
import os
import sys
_HERE = os.path.dirname(os.path.abspath(__file__))
_PKG_ROOT = os.path.dirname(_HERE) # .../query_decomposition_baselines
_XLM_DIR = os.path.join(_PKG_ROOT, "methods", "unsupervised", "XLM")
_st = None # server_translate 模块(惰性导入)
def _module():
global _st
if _st is not None:
return _st
# 未设 RAGQA_XLM_CKPT 时,自动回退到仓库内 weights/ 下的权重(HF 仓库 clone 后即可用)。
if not os.environ.get("RAGQA_XLM_CKPT"):
cand = os.path.join(_PKG_ROOT, "weights", "xlm_unsup_decomp.pth")
if os.path.isfile(cand):
os.environ["RAGQA_XLM_CKPT"] = cand # 必须在 import server_translate 之前设置
if _XLM_DIR not in sys.path:
sys.path.insert(0, _XLM_DIR) # 让 `import src...` 与 `import server_translate` 可解析
import server_translate # 导入很轻:只注册 parser/params,模型在 load() 里惰性加载
_st = server_translate
return _st
def unsupervised_decompose(query):
"""把一个 query 交给 XLM 分解器,返回子问题 list[str]。"""
return _module().decompose(query)