콘텐츠로 이동

엣지(Edge)와 그래프

Show:

버킷(bucket) 내 노드(node) 간의 관계를 나타내는 엣지(edge)는 supersedes, references, part_of 등이 있습니다. 이러한 엣지를 직접 읽고 쓰는 v1 라우트는 더 이상 공개 사용자 API가 아닙니다.

참고: 신규 연동에 이 라우트를 사용하지 마세요. Schift는 검색 과정에서 여전히 내부적으로 관계 신호를 활용할 수 있지만, 원시 그래프(graph) 엣지는 공개적으로 지원되는 표면이 아닙니다. 사용자 중심 검색에는 v2 버킷 검색을 사용하세요.

버전상태설명
v1사용 중단(deprecated)엣지를 직접 변경하는 라우트입니다. 기존 내부 호출자만을 위해 유지됩니다.
v2현재(current)버킷 검색을 통해 관련 콘텐츠를 검색합니다.

버킷(bucket)에 엣지(edge)를 추가합니다.

참고: 이 엔드포인트는 사용 중단(deprecated)되었으며 공개 OpenAPI 스키마에 포함되어 있지 않습니다.

이름유형설명
bucket_idstring버킷(bucket)의 UUID입니다.
이름유형필수설명
edgesarray최대 10,000개의 엣지(edge) 객체입니다.
edges[].sourcestring소스(source) 노드 ID입니다.
edges[].targetstring타겟(target) 노드 ID입니다.
edges[].relationstring아니요contradicts, supersedes, caused_by, is_a, related_to(기본값), has_child, follows, references, summarizes, alias_of, part_of 중 하나입니다.
edges[].weightnumber아니요0.0에서 1.0 사이의 신뢰도 가중치(weight)입니다. 기본값은 1.0입니다.
Terminal window
curl -X POST ${API_BASE_URL:-https://api.schift.io}/v1/buckets/550e8400-e29b-41d4-a716-446655440000/edges \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"edges": [
{
"source": "node-1",
"target": "node-2",
"relation": "supersedes",
"weight": 0.95
}
]
}'
{
"count": 1
}
// 400 invalid_relation_type
{
"error": "invalid_relation_type",
"unknown_relation_types": ["supersedes"]
}
// 402 Payment Required
{
"allowed": false,
"reason": "quota_exceeded"
}
// 403 Forbidden
{
"detail": "Ingest quota unavailable. Upgrade your plan."
}
// 404 Not Found
{
"detail": "Bucket not found"
}

GET /v1/buckets/{bucket_id}/edges/{node_id}

섹션 제목: “GET /v1/buckets/{bucket_id}/edges/{node_id}”

노드(node)에 연결된 엣지(edge) 목록을 조회합니다.

참고: 이 엔드포인트는 사용 중단(deprecated)되었으며 공개 OpenAPI 스키마에 포함되어 있지 않습니다.

이름유형설명
bucket_idstring버킷(bucket)의 UUID입니다.
node_idstring조회할 노드(node) ID입니다.
이름유형필수설명
directionstring아니요엣지 방향(direction)입니다. outgoing (기본값), incoming, both 중 하나입니다.
relationstring아니요단일 관계(relation) 유형으로 필터링합니다. 버킷 온톨로지(ontology)에 정의되어 있어야 합니다.
Terminal window
curl -G ${API_BASE_URL:-https://api.schift.io}/v1/buckets/550e8400-e29b-41d4-a716-446655440000/edges/node-1 \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-d "direction=both" \
-d "relation=supersedes"
{
"node_id": "node-1",
"direction": "both",
"edges": [
{
"source": "node-1",
"target": "node-2",
"relation": "supersedes",
"weight": 0.95
}
]
}
// 400 invalid_relation_type
{
"error": "invalid_relation_type",
"unknown_relation_types": ["supersedes"]
}
// 404 Not Found
{
"detail": "Bucket not found"
}

특정 엣지(edge)를 삭제합니다.

참고: 이 엔드포인트는 사용 중단(deprecated)되었으며 공개 OpenAPI 스키마에 포함되어 있지 않습니다.

이름유형설명
bucket_idstring버킷(bucket)의 UUID입니다.
이름유형필수설명
sourcestring소스(source) 노드 ID입니다.
targetstring타겟(target) 노드 ID입니다.
relationstring아니요관계(relation) 유형입니다. 기본값은 related_to이며, 버킷 온톨로지(ontology)에 정의되어 있어야 합니다.
Terminal window
curl -X DELETE ${API_BASE_URL:-https://api.schift.io}/v1/buckets/550e8400-e29b-41d4-a716-446655440000/edges \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": "node-1",
"target": "node-2",
"relation": "supersedes"
}'

성공 시 204 No Content를 반환합니다.

// 400 invalid_relation_type
{
"error": "invalid_relation_type",
"unknown_relation_types": ["supersedes"]
}
// 404 Not Found
{
"detail": "Bucket not found"
}

원시 엣지를 읽는 대신, v2 검색 엔드포인트(search endpoint)에 자연어 쿼리(natural-language query)를 전송하세요:

Terminal window
curl -X POST ${API_BASE_URL:-https://api.schift.io}/v2/buckets/550e8400-e29b-41d4-a716-446655440000/search \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "Which policy supersedes the old refund rule?",
"top_k": 8,
"options": {
"rerank": {"enabled": true}
}
}'