2024-12-28 16:59:11 +00:00
|
|
|
|
|
|
|
|
# TrustGraph Graph Embeddings API
|
|
|
|
|
|
|
|
|
|
The purpose of this API is to search for knowledge graph entities
|
|
|
|
|
by embeddings. The request is a list of embeddings, the response is
|
|
|
|
|
a list of knowledge graph entities. The search is performed using a
|
|
|
|
|
vector store.
|
|
|
|
|
|
|
|
|
|
## Request/response
|
|
|
|
|
|
|
|
|
|
### Request
|
|
|
|
|
|
|
|
|
|
The request contains the following fields:
|
|
|
|
|
- `vectors`: An array of embeddings. Each embedding is itself an array
|
|
|
|
|
of numbers.
|
|
|
|
|
- `limit`: Optional: a limit on the number of graph entities to return.
|
|
|
|
|
|
|
|
|
|
### Response
|
|
|
|
|
|
2025-07-03 14:58:32 +01:00
|
|
|
The response contains the following fields:
|
2024-12-28 16:59:11 +00:00
|
|
|
- `entities`: An array of graph entities. The entity type is described here:
|
|
|
|
|
|
|
|
|
|
TrustGraph uses the same schema for knowledge graph elements:
|
|
|
|
|
- `value`: the entity URI or literal value depending on whether this is
|
|
|
|
|
graph entity or literal value.
|
|
|
|
|
- `is_uri`: A boolean value which is true if this is a graph entity i.e.
|
|
|
|
|
`value` is a URI, not a literal value.
|
|
|
|
|
|
|
|
|
|
## REST service
|
|
|
|
|
|
|
|
|
|
The REST service accepts a request object containing the `vectors` field.
|
|
|
|
|
The response is a JSON object containing the `entities` field.
|
|
|
|
|
|
|
|
|
|
To reduce the size of the JSON, the graph entities are encoded as an
|
|
|
|
|
object with `value` and `is_uri` mapped to `v` and `e` respectively.
|
|
|
|
|
|
|
|
|
|
e.g.
|
|
|
|
|
|
|
|
|
|
Request:
|
|
|
|
|
```
|
|
|
|
|
{
|
|
|
|
|
"vectors": [
|
|
|
|
|
[
|
|
|
|
|
0.04013510048389435,
|
|
|
|
|
0.07536131888628006,
|
|
|
|
|
...
|
|
|
|
|
-0.10790473222732544,
|
|
|
|
|
0.03591292351484299
|
|
|
|
|
]
|
|
|
|
|
],
|
|
|
|
|
"limit": 15
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Response:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
{
|
|
|
|
|
"entities": [
|
|
|
|
|
{
|
|
|
|
|
"v": "http://trustgraph.ai/e/space-station-modules",
|
|
|
|
|
"e": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"v": "http://trustgraph.ai/e/rocket-propellants",
|
|
|
|
|
"e": true
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Websocket
|
|
|
|
|
|
|
|
|
|
The websocket service accepts a request object containing the `vectors` field.
|
|
|
|
|
The response is a JSON object containing the `entities` field.
|
|
|
|
|
|
|
|
|
|
To reduce the size of the JSON, the graph entities are encoded as an
|
|
|
|
|
object with `value` and `is_uri` mapped to `v` and `e` respectively.
|
|
|
|
|
|
|
|
|
|
e.g.
|
|
|
|
|
|
|
|
|
|
Request:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
{
|
|
|
|
|
"id": "qgzw1287vfjc8wsk-3",
|
|
|
|
|
"service": "graph-embeddings-query",
|
2025-07-03 14:58:32 +01:00
|
|
|
"flow": "default",
|
2024-12-28 16:59:11 +00:00
|
|
|
"request": {
|
|
|
|
|
"vectors": [
|
|
|
|
|
[
|
|
|
|
|
0.04013510048389435,
|
|
|
|
|
0.07536131888628006,
|
|
|
|
|
...
|
|
|
|
|
-0.10790473222732544,
|
|
|
|
|
0.03591292351484299
|
|
|
|
|
]
|
|
|
|
|
],
|
|
|
|
|
"limit": 15
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Response:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
{
|
|
|
|
|
"id": "qgzw1287vfjc8wsk-3",
|
|
|
|
|
"response": {
|
|
|
|
|
"entities": [
|
|
|
|
|
{
|
|
|
|
|
"v": "http://trustgraph.ai/e/space-station-modules",
|
|
|
|
|
"e": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"v": "http://trustgraph.ai/e/rocket-propellants",
|
|
|
|
|
"e": true
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"complete": true
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Pulsar
|
|
|
|
|
|
|
|
|
|
The Pulsar schema for the Graph Embeddings API is defined in Python code here:
|
|
|
|
|
|
|
|
|
|
https://github.com/trustgraph-ai/trustgraph/blob/master/trustgraph-base/trustgraph/schema/graph.py
|
|
|
|
|
|
|
|
|
|
Default request queue:
|
|
|
|
|
`non-persistent://tg/request/graph-embeddings`
|
|
|
|
|
|
|
|
|
|
Default response queue:
|
|
|
|
|
`non-persistent://tg/response/graph-embeddings`
|
|
|
|
|
|
|
|
|
|
Request schema:
|
|
|
|
|
`trustgraph.schema.GraphEmbeddingsRequest`
|
|
|
|
|
|
|
|
|
|
Response schema:
|
|
|
|
|
`trustgraph.schema.GraphEmbeddingsResponse`
|
|
|
|
|
|
|
|
|
|
## Pulsar Python client
|
|
|
|
|
|
|
|
|
|
The client class is
|
|
|
|
|
`trustgraph.clients.GraphEmbeddingsClient`
|
|
|
|
|
|
|
|
|
|
https://github.com/trustgraph-ai/trustgraph/blob/master/trustgraph-base/trustgraph/clients/graph_embeddings.py
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|