关于 omni-nli
Omni-NLI 是可自托管的自然语言推断服务,面向需要验证文本一致性的应用和 Agent。它通过 REST 和 MCP 接口判断前提与假设之间的蕴含、矛盾或中立关系,并支持多种模型后端。
主要功能
- 01判断蕴含、矛盾或中立关系
- 02支持 REST 与 MCP 接口
- 03兼容多种模型后端
- 04提供置信度及可选推理轨迹
- 05内置缓存并支持配置
适用场景
- 01检查生成回复是否与上下文矛盾
- 02核验摘要是否违背原文
- 03评估搜索结果是否支持查询
- 04检查文本是否得到事实支持
MCP 相关
Omni-NLI 通过 MCP 暴露自然语言推断能力,供 AI Agent 判断前提与假设之间的关系。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Omni-NLI 是一个可自托管的服务,通过 RESTful 和 Model Context Protocol(MCP)接口提供自然语言推理(NLI)能力。 它既可作为高度可扩展的独立无状态微服务(通过 REST API)使用,也可作为 MCP 服务,供 AI Agent 为基于 AI 的应用实现验证层。
什么是 NLI?
给定两段文本,分别称为前提和假设,NLI(又称文本蕴含)用于判断人类读者所感知的两者之间的方向关系。 该关系分为以下三个标签之一:
"entailment":前提支持该假设"contradiction":前提与该假设矛盾"neutral":前提既不支持也不反驳该假设
重要
NLI 与逻辑蕴含并不相同。 它的目标是判断一个理性的人是否会认为该假设可由前提推出。 这项任务检查的是一致性,而非假设的绝对真实性。
NLI 的典型应用包括:
- NLI 可用于检查给定文本是否与其余文本一致。例如,检查聊天机器人或 AI 助手的新回复是否与对话中先前说过的内容矛盾。
- 它可用于检查摘要是否以某种方式与原文矛盾。
- 它可用于检查排序结果列表中的文档是否蕴含查询内容。
- 它可用于检查一段文本是否得到某些事实的支持。请注意,这与使用逻辑并不相同。
重要
结果质量在很大程度上取决于所使用的模型(大模型)。 一个不错的策略是,先使用与你的应用领域相关的前提-假设-标签三元组数据集对模型进行微调。
Omni-NLI 的主要功能
- 通过验证生成的内容是否有事实依据,帮助缓解大模型幻觉
- 支持不同后端提供的模型,包括 Ollama、HuggingFace(公开及私有/受限模型)和 OpenRouter
- 支持 REST API(用于传统应用)和 MCP(用于 AI Agent)接口
- 完全可配置且高度可扩展,并内置缓存
- 提供置信度分数和(可选的)推理轨迹,以增强可解释性
请参阅 ROADMAP.md,了解已实现和计划中的功能列表。
重要
Omni-NLI 仍处于早期开发阶段,可能会出现错误和破坏性变更。 请通过 问题页面 报告错误或请求新功能。
快速开始
1. 安装
pip install omni-nli[huggingface]
2. 启动服务
omni-nli
3. 评估 NLI(使用 REST API)
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"premise": "A football player kicks a ball into the goal.",
"hypothesis": "The football player is asleep on the field."
}' \
http://127.0.0.1:8000/api/v1/nli/evaluate
响应示例:
{
"label": "contradiction",
"confidence": 0.99,
"model": "microsoft/Phi-3.5-mini-instruct",
"backend": "huggingface"
}
4. 评估 NLI(使用 MCP 接口)

文档
请查看 Omni-NLI 文档,了解更多信息,包括配置选项、API 参考和示例。
贡献
欢迎随时贡献! 请参阅 CONTRIBUTING.md,了解如何开始。
许可证
Omni-NLI 根据 MIT 许可证授权(参见 LICENSE)。
致谢
- Logo 来自 SVG Repo,并经过了一些修改。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。