定制 survos/ai-claims-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

survos/ai-claims-bundle

最新稳定版本:2.2.2

Composer 安装命令:

composer require survos/ai-claims-bundle

包简介

Store AI (and human) assertions as append-only claims with confidence, basis, and source — an alternative to opaque AI-result blobs.

README 文档

README

Store AI (and human) assertions as append-only claims with confidence, basis, and source — an alternative to opaque AI-result blobs.

An AI output is an assertion, not a fact. Recording it as a structured claim lets you:

  • know how confident the tool was (the confidence float)
  • know why the tool asserted it (the basis text)
  • know which tool produced it, at what version (the source string)
  • accumulate multiple claims about the same thing and aggregate into a best-guess view — humans can later promote or reject individual claims
  • export to and import from JSONL for cheap round-trip backup

The bundle is vocab-agnostic (no predicate enum), storage-layer-only (no inference, no LLM calls), and tenant-agnostic (a nullable scope string that the consumer partitions on).

Install

composer require survos/ai-claims-bundle

The bundle is a flex-compatible Symfony bundle and auto-registers in config/bundles.php, and the bundle prepends its Doctrine ORM mapping automatically, like the other Survos bundles.

Register list-valued predicates so the aggregator projects them correctly:

# config/packages/survos_ai_claims.yaml
survos_ai_claims:
    list_predicates:
        - dcterms:subject    # keywords
        - dcterms:spatial    # places
        - foaf:Person

Generate the migration (or run doctrine:schema:update --force in dev):

bin/console make:migration
bin/console doctrine:migrations:migrate

Claims can also be backed up and restored as JSONL:

bin/console claims:export --scope=tenant:rhs > rhs.jsonl
bin/console claims:import --scope=tenant:rhs < rhs.jsonl

Redirection is the default CLI workflow. If you prefer explicit file paths instead, --output and --input use survos/jsonl-bundle's JsonlWriter and JsonlReader:

bin/console claims:export --scope=tenant:rhs --output=rhs.jsonl.gz
bin/console claims:import --scope=tenant:rhs --input=rhs.jsonl.gz

Quick start

Recording a tool run

use Survos\AiClaimsBundle\Service\ClaimDraft;
use Survos\AiClaimsBundle\Service\ClaimIngestor;
use Survos\DataBundle\Vocabulary\DcTerms;

$drafts = [
    new ClaimDraft(DcTerms::TITLE->value,       'Welcome to Ocean City', 0.9,
        basis: "Printed caption reads 'Welcome to Ocean City'."),
    new ClaimDraft(DcTerms::DESCRIPTION->value, 'Beach scene with boardwalk.', 0.8),
    new ClaimDraft(DcTerms::TYPE->value,        'postcard', 0.95),
    new ClaimDraft(DcTerms::SUBJECT->value,     'boardwalk', 0.9),
    new ClaimDraft(DcTerms::SUBJECT->value,     'seaside',   0.8),
    new ClaimDraft('ssai:has_text',             true,        1.0),
];

$runId = $ingestor->record(
    scope:       'tenant:rhs',
    subjectType: 'image',
    subjectId:   $image->getId(),
    source:      'enrich_from_thumbnail@1.0',
    drafts:      $drafts,
);
$em->flush();

Prior rows with the same (scope, subject, source) are deleted first; the whole batch shares one runId.

Reading the best-guess view

use Survos\AiClaimsBundle\Service\ClaimAggregator;

$view = $aggregator->aggregate('image', $image->getId(), 'tenant:rhs');

// Scalar predicate — one winner:
$view['dcterms:title']
// → ['value' => 'Welcome to Ocean City', 'confidence' => 0.9,
//    'basis' => "Printed caption …", 'source' => 'enrich_from_thumbnail@1.0']

// List predicate — dedup + union:
$view['dcterms:subject']
// → ['value' => ['boardwalk', 'seaside'], 'confidence' => 0.9,
//    'source' => 'aggregated', 'items' => [...]]

Documentation

License

MIT

统计信息

  • 总下载量: 70
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-19

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固