关系
关系 API 用于创建、读取和删除 Viking URI 之间的显式关联。
API 参考
link()
创建资源之间的关联。
参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| from_uri | str | 是 | - | 源 URI |
| to_uris | str 或 List[str] | 是 | - | 目标 URI |
| reason | str | 否 | "" | 关联原因 |
Python SDK
python
# 单个关联
client.link(
"viking://resources/docs/auth/",
"viking://resources/docs/security/",
reason="Security best practices for authentication"
)
# 多个关联
client.link(
"viking://resources/docs/api/",
[
"viking://resources/docs/auth/",
"viking://resources/docs/errors/"
],
reason="Related documentation"
)TypeScript SDK
typescript
await client.link(
"viking://resources/docs/api/",
[
"viking://resources/docs/auth/",
"viking://resources/docs/errors/",
],
"Related documentation",
);HTTP API
POST /api/v1/relations/linkbash
# 单个关联
curl -X POST http://localhost:1933/api/v1/relations/link \
-H "Content-Type: application/json" \
-H "X-API-Key: your-key" \
-d '{
"from_uri": "viking://resources/docs/auth/",
"to_uris": "viking://resources/docs/security/",
"reason": "Security best practices for authentication"
}'
# 多个关联
curl -X POST http://localhost:1933/api/v1/relations/link \
-H "Content-Type: application/json" \
-H "X-API-Key: your-key" \
-d '{
"from_uri": "viking://resources/docs/api/",
"to_uris": ["viking://resources/docs/auth/", "viking://resources/docs/errors/"],
"reason": "Related documentation"
}'CLI
bash
openviking link viking://resources/docs/auth/ viking://resources/docs/security/ --reason "Security best practices"响应
json
{
"status": "ok",
"result": {
"from": "viking://resources/docs/auth/",
"to": "viking://resources/docs/security/"
},
"time": 0.1
}relations()
获取资源的关联关系。
参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| uri | str | 是 | - | Viking URI |
Python SDK
python
relations = client.relations("viking://resources/docs/auth/")
for rel in relations:
print(f"Related: {rel['uri']}")
print(f" Reason: {rel['reason']}")TypeScript SDK
typescript
const relations = await client.relations("viking://resources/docs/auth/");
console.log(relations);HTTP API
GET /api/v1/relations?uri={uri}bash
curl -X GET "http://localhost:1933/api/v1/relations?uri=viking://resources/docs/auth/" \
-H "X-API-Key: your-key"CLI
bash
openviking relations viking://resources/docs/auth/响应
json
{
"status": "ok",
"result": [
{"uri": "viking://resources/docs/security/", "reason": "Security best practices"},
{"uri": "viking://resources/docs/errors/", "reason": "Error handling"}
],
"time": 0.1
}unlink()
移除关联关系。
参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| from_uri | str | 是 | - | 源 URI |
| to_uri | str | 是 | - | 要取消关联的目标 URI |
Python SDK
python
client.unlink(
"viking://resources/docs/auth/",
"viking://resources/docs/security/"
)TypeScript SDK
typescript
await client.unlink(
"viking://resources/docs/auth/",
"viking://resources/docs/security/",
);HTTP API
DELETE /api/v1/relations/linkbash
curl -X DELETE http://localhost:1933/api/v1/relations/link \
-H "Content-Type: application/json" \
-H "X-API-Key: your-key" \
-d '{
"from_uri": "viking://resources/docs/auth/",
"to_uri": "viking://resources/docs/security/"
}'CLI
bash
openviking unlink viking://resources/docs/auth/ viking://resources/docs/security/响应
json
{
"status": "ok",
"result": {
"from": "viking://resources/docs/auth/",
"to": "viking://resources/docs/security/"
},
"time": 0.1
}build_graph()
从多个记忆根目录生成一个自包含的 HTML 关系图,并把结果写入指定 Viking URI。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
space_uris | string[] | 是 | 要合并的记忆根目录 |
output_uri | string | 是 | 输出 HTML 文件的 Viking URI |
HTTP API
http
POST /api/v1/relations/build_graph
Content-Type: application/jsonbash
curl -X POST http://localhost:1933/api/v1/relations/build_graph \
-H "Content-Type: application/json" \
-H "X-API-Key: your-key" \
-d '{
"space_uris":[
"viking://user/default/memories",
"viking://user/default/peers/project-a/memories"
],
"output_uri":"viking://user/default/memories/.graph.html"
}'响应
json
{
"status": "ok",
"result": {
"graph_uri": "viking://user/default/memories/.graph.html"
}
}graph_uri 是已写入的自包含 HTML 文件 URI,可通过内容或文件系统 API 读取。
该端点当前没有公共 SDK 或 CLI 封装,因此本节只展示 HTTP Tab。
