Skip to main content

Field-level confidence evaluator SDK for routed extraction results

Project description

routed-confidence

字段级置信度评估 SDK。

这个包默认只负责一件事:输入一条提取结果,输出每个字段的置信度分数。

如果初始化时显式传入 collection_dir,SDK 会额外把评估过的数据同步收集到本地 JSON 文件中。收集功能默认关闭,不传 collection_dir 就不会写任何文件。

SDK 不计算检出率、误伤率、日报统计,也不包含 Web、API 服务或自动迭代逻辑。

位置

源码目录:

routed_confidence/

主要入口:

routed_confidence/evaluator.py

内部评分组件:

routed_confidence/internal/confidence_evaluators/

默认规则文件:

routed_confidence/rules/meeting_ruler.json

安装

在当前仓库本地开发安装:

pip install -e .

从本地 wheel 安装:

python3 -m pip wheel . --no-deps --no-build-isolation -w dist
pip install dist/routed_confidence-0.1.0-py3-none-any.whl

如果发布到 PyPI 或私有 PyPI 后:

pip install routed-confidence

Python 导入名使用下划线:

from routed_confidence import ConfidenceEvaluator

使用

from routed_confidence import ConfidenceEvaluator

record = {
    "extraction_result": {
        "会议召开时间": {
            "value": "2026-05-20 14:00:00",
            "content": "会议召开时间为2026年5月20日14:00",
            "type": "text",
            "title_path": ["一、会议基本情况"],
        }
    },
    "input_text": "会议召开时间为2026年5月20日14:00。",
}

evaluator = ConfidenceEvaluator()
result = evaluator.evaluate(record)
print(result)

也可以使用一次性函数:

from routed_confidence import evaluate_confidence

result = evaluate_confidence(record)

可选数据收集

如果想保存评估过的数据,初始化时传入 collection_dir

from routed_confidence import ConfidenceEvaluator

evaluator = ConfidenceEvaluator(
    collection_dir="./collected_data",
)

result = evaluator.evaluate(
    record,
    uuid="doc-001",
    infotype="股东大会-股东大会召开情况",
)

生成文件:

./collected_data/evaluated_records_collected.json

收集文件格式:

{
  "collection_info": {
    "description": "routed_confidence SDK collected evaluations",
    "format_version": "1.0"
  },
  "summary": {
    "total_records": 1,
    "updated_at": "2026-05-13T12:00:00"
  },
  "records": {
    "doc-001": {
      "uuid": "doc-001",
      "timestamp": "2026-05-13T12:00:00",
      "infotype": "股东大会-股东大会召开情况",
      "input": {
        "extraction_result": {}
      },
      "output": {
        "field_scores": {},
        "summary": {}
      }
    }
  }
}

说明:

  • 只有传入 collection_dir 才会开启收集。
  • uuid 用于去重;同一个 uuid 重复评估时只保留第一次收集的数据。
  • 如果不传 uuid,SDK 会尝试从 record["uuid"]record["met_uuid"]record["id"]record["metadata"] / record["met_meta"] 中读取;都没有时会自动生成一个 UUID。
  • infotype 只作为记录元数据保存,不影响输出文件名。
  • 收集失败不会影响评估结果返回。

返回格式

{
  "field_scores": {
    "会议召开时间": {
      "source_value": "2026-05-20 14:00:00",
      "total_score": 0.75,
      "dimension_scores": {
        "schema": 1.0,
        "similarity": 0.82,
        "historical": 0.5,
        "relation": 1.0
      },
      "reason": "字段符合规则要求",
      "violations": [],
      "suggestions": []
    }
  },
  "summary": {
    "total_fields": 1,
    "average_score": 0.75
  }
}

注意:SDK 不返回 is_correctis_correct 属于“标注数据 vs 提取数据”的评测逻辑,不属于置信度 SDK。

自定义规则和权重

from routed_confidence import ConfidenceEvaluator

evaluator = ConfidenceEvaluator(
    rules_file="/path/to/meeting_ruler.json",
    weights={
        "schema": 0.1,
        "sim": 0.2,
        "wilson": 0.1,
        "relation": 0.6,
    },
)

如果不传 rules_file,SDK 会优先寻找当前项目里的 schema/ruler/meeting_ruler.json,找不到时使用包内置的默认规则。

Embedding 相似度配置

similarity 维度默认会尝试调用 OpenAI-compatible embedding 接口。

开源包不会内置任何 embedding 服务地址、模型名或 API Key。不显式配置时,SDK 会提示并自动使用本地字符串相似度,评估流程不会中断。

如果显式配置了 embedding,但服务不可用,SDK 也会提示并自动回退到本地字符串相似度。

显式配置:

from routed_confidence import ConfidenceEvaluator

evaluator = ConfidenceEvaluator(
    embedding_api_base_url="http://your-embedding-service:8191",
    embedding_model="qwen3-embedding-0.6b",
    embedding_api_key="your-api-key",  # 如果服务不需要鉴权,可以不传
)

也可以用环境变量:

export ROUTED_CONFIDENCE_EMBEDDING_API_BASE_URL="http://your-embedding-service:8191"
export ROUTED_CONFIDENCE_EMBEDDING_MODEL="qwen3-embedding-0.6b"
export ROUTED_CONFIDENCE_EMBEDDING_API_KEY="your-api-key"

发布

安装构建工具:

pip install build twine

构建:

python -m build

会生成:

dist/routed_confidence-0.1.0-py3-none-any.whl
dist/routed_confidence-0.1.0.tar.gz

上传到 PyPI:

twine upload dist/*

上传到私有 PyPI:

twine upload --repository-url https://your-private-pypi/simple/ dist/*

发布后安装:

pip install routed-confidence

当前边界

  • 只做单条/字段级置信度评估。
  • 可选收集评估过的数据,但默认关闭。
  • 不计算检出率。
  • 不计算误伤率。
  • 不依赖 methods/apimethods/web_confmethods/reflect_rule
  • 不要求用户导入内部四维组件。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

routed_confidence-0.1.1.tar.gz (55.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

routed_confidence-0.1.1-py3-none-any.whl (70.0 kB view details)

Uploaded Python 3

File details

Details for the file routed_confidence-0.1.1.tar.gz.

File metadata

  • Download URL: routed_confidence-0.1.1.tar.gz
  • Upload date:
  • Size: 55.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for routed_confidence-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7f7009641b5036c8ed2e90a71e9b227ae70de5327314a3f7b2a1a0afa36f6a71
MD5 c9309f9fb3179e4a86576c1b4cf9e76a
BLAKE2b-256 fd982f1f93d2c05b12d6e5ed878383d7e347febb36f005a1a983f46dea089aed

See more details on using hashes here.

File details

Details for the file routed_confidence-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for routed_confidence-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d61901a10e02f63e411c9f73e0b5ed6127177924099ba11fc7146ec908a89233
MD5 05495bbfb7625b1eabd2e4688d521c1a
BLAKE2b-256 01c455370a2c65849161d4845e5462fb3f046008fde4f7197174fe782aeccdd5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page