使用说明
lovdata mcp
接收公共Lovdata.no数据集的FastMCP服务器(/v1/publicData/get/gjeldende-lover.tar.bz2),对XML法规进行分组,构建向量索引,并公开语义搜索工具。
这有什么作用
- 下载最新
gjeldende-lover.tar.bz2dump(支持ETag/If None Match以获得廉价的重新运行)。 - 提取XML文件,解析元数据+正文,并将内容分块以供检索。
- 使用SentenceTransformer模型嵌入块,并使用元数据sidecar将其存储在FAISS索引中。
- 提供FastMCP工具,用于按需搜索和刷新语料库。
快速启动
python -m venv venv
source venv/bin/activate
pip install -e .
# One-time (or scheduled) ingestion
lovdata-ingest
# Start MCP server
lovdata-mcp
配置
环境变量(或 .env)覆盖默认值;看见 lovdata_mcp/config.py 对于所有选项:
LOVDATA_SOURCE_URL:数据集URL(默认为公共转储)。LOVDATA_DATA_DIR:基本数据目录(默认data/).LOVDATA_MODEL_NAME:嵌入模型(默认intfloat/multilingual-e5-base为了更好地召回挪威)。LOVDATA_EMBEDDING_QUERY_PREFIX/LOVDATA_EMBEDDING_PASSAGE_PREFIX:e5样式嵌入的前缀(query:,passage:).LOVDATA_CHUNK_TOKENS/LOVDATA_CHUNK_OVERLAP:块大小。LOVDATA_TOP_K:默认搜索深度。
计划更新作业
lovdata_ingest 坚持a state.json 最后一个ETag/最后一次修改。如果没有任何变化,再次运行它将跳过下载;当标头不同时,它会重新下载、重新提取和重建索引。这可以通过调度(cron/KubeKubernetes作业等)来保持语料库的新鲜。
要安装的依赖项
看 pyproject.toml 查看完整列表。关键问题:
fastmcp>=2.13httpx,tqdm,lxml,pydantic,pydantic-settings,orjsonsentence-transformers,faiss-cpu,tiktoken- (可选dev)
ruff,mypy
注意事项
- 此仓库不提供数据集;您必须运行摄取来填充
data/. - XML结构可以变化;解析是稳健但保守的。调整
parser.py一旦你检查了一些真实的文件。 - FastMCP挂钩遵循2.13+API;如果签名发生变化,请进行调整
server.py.