mirror of
https://github.com/OpenSPG/openspg.git
synced 2025-12-27 07:04:54 +00:00
feat(knext)graph client
This commit is contained in:
parent
624c1bed2a
commit
4dfe62812b
@ -17,6 +17,7 @@ import com.antgroup.openspg.server.common.model.base.BaseValObj;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* {@link EdgeTypeName EdgeTypeName} is the unique identifier of {@link EdgeType EdgeType}, and it
|
||||
@ -25,15 +26,16 @@ import lombok.Getter;
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class EdgeTypeName extends BaseValObj {
|
||||
|
||||
private final String startVertexType;
|
||||
private String startVertexType;
|
||||
|
||||
/** The label of edge type */
|
||||
private final String edgeLabel;
|
||||
private String edgeLabel;
|
||||
|
||||
private final String endVertexType;
|
||||
private String endVertexType;
|
||||
|
||||
public static EdgeTypeName parse(String edgeTypeName) {
|
||||
String[] splits = edgeTypeName.split("_");
|
||||
|
||||
@ -14,5 +14,5 @@ from knext.schema.rest.models import *
|
||||
from knext.reasoner.rest.models import *
|
||||
from knext.project.rest.models import *
|
||||
from knext.search.rest.models import *
|
||||
from knext.graph_algo.rest.models import *
|
||||
from knext.graph.rest.models import *
|
||||
from knext.thinker.rest.models import *
|
||||
|
||||
@ -28,21 +28,24 @@ from __future__ import absolute_import
|
||||
__version__ = "1.0.0"
|
||||
|
||||
# import apis into sdk package
|
||||
from knext.graph_algo.rest.graph_api import GraphApi
|
||||
from knext.graph.rest.graph_api import GraphApi
|
||||
|
||||
|
||||
# import models into model package
|
||||
from knext.graph_algo.rest.models.get_page_rank_scores_request import (
|
||||
GetPageRankScoresRequest,
|
||||
)
|
||||
from knext.graph_algo.rest.models.get_page_rank_scores_request_start_nodes import (
|
||||
GetPageRankScoresRequestStartNodes,
|
||||
)
|
||||
from knext.graph_algo.rest.models.page_rank_score_instance import PageRankScoreInstance
|
||||
from knext.graph_algo.rest.models.delete_vertex_request import DeleteVertexRequest
|
||||
from knext.graph_algo.rest.models.delete_edge_request import DeleteEdgeRequest
|
||||
from knext.graph_algo.rest.models.edge_record_instance import EdgeRecordInstance
|
||||
from knext.graph_algo.rest.models.upsert_vertex_request import UpsertVertexRequest
|
||||
from knext.graph_algo.rest.models.upsert_edge_request import UpsertEdgeRequest
|
||||
from knext.graph_algo.rest.models.vertex_record_instance import VertexRecordInstance
|
||||
from knext.graph_algo.rest.models.writer_graph_request import WriterGraphRequest
|
||||
from knext.graph.rest.models.get_page_rank_scores_request import GetPageRankScoresRequest
|
||||
from knext.graph.rest.models.get_page_rank_scores_request_start_nodes import GetPageRankScoresRequestStartNodes
|
||||
from knext.graph.rest.models.page_rank_score_instance import PageRankScoreInstance
|
||||
from knext.graph.rest.models.delete_vertex_request import DeleteVertexRequest
|
||||
from knext.graph.rest.models.delete_edge_request import DeleteEdgeRequest
|
||||
from knext.graph.rest.models.edge_record_instance import EdgeRecordInstance
|
||||
from knext.graph.rest.models.upsert_vertex_request import UpsertVertexRequest
|
||||
from knext.graph.rest.models.upsert_edge_request import UpsertEdgeRequest
|
||||
from knext.graph.rest.models.vertex_record_instance import VertexRecordInstance
|
||||
from knext.graph.rest.models.writer_graph_request import WriterGraphRequest
|
||||
from knext.graph.rest.models.edge_record import EdgeRecord
|
||||
from knext.graph.rest.models.edge_type_name import EdgeTypeName
|
||||
from knext.graph.rest.models.expend_one_hop_request import ExpendOneHopRequest
|
||||
from knext.graph.rest.models.lpg_property_record import LpgPropertyRecord
|
||||
from knext.graph.rest.models.query_vertex_request import QueryVertexRequest
|
||||
from knext.graph.rest.models.vertex_record import VertexRecord
|
||||
from knext.graph.rest.models.expend_one_hop_response import ExpendOneHopResponse
|
||||
|
||||
@ -13,7 +13,8 @@ from typing import List, Dict
|
||||
|
||||
from knext.common.base.client import Client
|
||||
from knext.common.rest import ApiClient, Configuration
|
||||
from knext.graph import rest, GetPageRankScoresRequest, GetPageRankScoresRequestStartNodes, WriterGraphRequest
|
||||
from knext.graph import (rest, GetPageRankScoresRequest, GetPageRankScoresRequestStartNodes, WriterGraphRequest,
|
||||
QueryVertexRequest, ExpendOneHopRequest, EdgeTypeName)
|
||||
|
||||
class GraphClient(Client):
|
||||
""" """
|
||||
@ -61,11 +62,44 @@ class GraphClient(Client):
|
||||
)
|
||||
self._rest_client.graph_writer_graph_post(writer_graph_request=request)
|
||||
|
||||
def query_vertex(self, type_name: str, biz_id: str):
|
||||
request = QueryVertexRequest(
|
||||
project_id=self._project_id,
|
||||
type_name=type_name,
|
||||
biz_id=biz_id
|
||||
)
|
||||
return self._rest_client.graph_query_vertex_post(query_vertex_request=request)
|
||||
|
||||
def expend_one_hop(self, type_name: str, biz_id: str, edge_type_name_constraint: List[EdgeTypeName] = None):
|
||||
request = ExpendOneHopRequest(
|
||||
project_id=self._project_id,
|
||||
type_name=type_name,
|
||||
biz_id=biz_id,
|
||||
edge_type_name_constraint=edge_type_name_constraint
|
||||
)
|
||||
return self._rest_client.graph_expend_one_hop_post(expend_one_hop_request=request)
|
||||
|
||||
if __name__ == "__main__":
|
||||
'''
|
||||
sc = GraphClient("http://127.0.0.1:8887", 4)
|
||||
out = sc.calculate_pagerank_scores(
|
||||
"Entity", [{"name": "Anxiety_and_nervousness", "type": "Entity"}]
|
||||
)
|
||||
for o in out:
|
||||
print(o)
|
||||
'''
|
||||
|
||||
#test ant main-site
|
||||
client = GraphClient("https://spgservice-standard-pre.alipay.com", 644000146)
|
||||
v = client.query_vertex("Antwork.EntityName", "千三")
|
||||
#print(v)
|
||||
|
||||
edge_name = EdgeTypeName(start_vertex_type="BCTEST.DeleteDataEntity3",
|
||||
edge_label="concept",
|
||||
end_vertex_type="BCTEST.TestConcept")
|
||||
client2 = GraphClient("https://spgservice-standard-pre.alipay.com", 363000133)
|
||||
edge_type_name_constraint =[]
|
||||
edge_type_name_constraint.append(edge_name)
|
||||
g1 = client2.expend_one_hop("BCTEST.DeleteDataEntity3", "秉初测试", edge_type_name_constraint)
|
||||
#g1 = client2.expend_one_hop("BCTEST.DeleteDataEntity3", "秉初测试", [edge_name])
|
||||
print(g1)
|
||||
@ -28,21 +28,24 @@ from __future__ import absolute_import
|
||||
__version__ = "1.0.0"
|
||||
|
||||
# import apis into sdk package
|
||||
from knext.graph_algo.rest.graph_api import GraphApi
|
||||
from knext.graph.rest.graph_api import GraphApi
|
||||
|
||||
|
||||
# import models into model package
|
||||
from knext.graph_algo.rest.models.get_page_rank_scores_request import (
|
||||
GetPageRankScoresRequest,
|
||||
)
|
||||
from knext.graph_algo.rest.models.get_page_rank_scores_request_start_nodes import (
|
||||
GetPageRankScoresRequestStartNodes,
|
||||
)
|
||||
from knext.graph_algo.rest.models.page_rank_score_instance import PageRankScoreInstance
|
||||
from knext.graph_algo.rest.models.delete_vertex_request import DeleteVertexRequest
|
||||
from knext.graph_algo.rest.models.delete_edge_request import DeleteEdgeRequest
|
||||
from knext.graph_algo.rest.models.edge_record_instance import EdgeRecordInstance
|
||||
from knext.graph_algo.rest.models.upsert_vertex_request import UpsertVertexRequest
|
||||
from knext.graph_algo.rest.models.upsert_edge_request import UpsertEdgeRequest
|
||||
from knext.graph_algo.rest.models.vertex_record_instance import VertexRecordInstance
|
||||
from knext.graph_algo.rest.models.writer_graph_request import WriterGraphRequest
|
||||
from knext.graph.rest.models.get_page_rank_scores_request import GetPageRankScoresRequest
|
||||
from knext.graph.rest.models.get_page_rank_scores_request_start_nodes import GetPageRankScoresRequestStartNodes
|
||||
from knext.graph.rest.models.page_rank_score_instance import PageRankScoreInstance
|
||||
from knext.graph.rest.models.delete_vertex_request import DeleteVertexRequest
|
||||
from knext.graph.rest.models.delete_edge_request import DeleteEdgeRequest
|
||||
from knext.graph.rest.models.edge_record_instance import EdgeRecordInstance
|
||||
from knext.graph.rest.models.upsert_vertex_request import UpsertVertexRequest
|
||||
from knext.graph.rest.models.upsert_edge_request import UpsertEdgeRequest
|
||||
from knext.graph.rest.models.vertex_record_instance import VertexRecordInstance
|
||||
from knext.graph.rest.models.writer_graph_request import WriterGraphRequest
|
||||
from knext.graph.rest.models.edge_record import EdgeRecord
|
||||
from knext.graph.rest.models.edge_type_name import EdgeTypeName
|
||||
from knext.graph.rest.models.expend_one_hop_request import ExpendOneHopRequest
|
||||
from knext.graph.rest.models.lpg_property_record import LpgPropertyRecord
|
||||
from knext.graph.rest.models.query_vertex_request import QueryVertexRequest
|
||||
from knext.graph.rest.models.vertex_record import VertexRecord
|
||||
from knext.graph.rest.models.expend_one_hop_response import ExpendOneHopResponse
|
||||
|
||||
@ -753,3 +753,227 @@ class GraphApi(object):
|
||||
_request_timeout=local_var_params.get("_request_timeout"),
|
||||
collection_formats=collection_formats,
|
||||
)
|
||||
|
||||
def graph_expend_one_hop_post(self, **kwargs): # noqa: E501
|
||||
"""expend_one_hop # noqa: E501
|
||||
|
||||
This method makes a synchronous HTTP request by default. To make an
|
||||
asynchronous HTTP request, please pass async_req=True
|
||||
>>> thread = api.graph_expend_one_hop_post(async_req=True)
|
||||
>>> result = thread.get()
|
||||
|
||||
:param async_req bool: execute request asynchronously
|
||||
:param ExpendOneHopRequest expend_one_hop_request:
|
||||
:param _preload_content: if False, the urllib3.HTTPResponse object will
|
||||
be returned without reading/decoding response
|
||||
data. Default is True.
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
(connection, read) timeouts.
|
||||
:return: ExpendOneHopResponse
|
||||
If the method is called asynchronously,
|
||||
returns the request thread.
|
||||
"""
|
||||
kwargs['_return_http_data_only'] = True
|
||||
return self.graph_expend_one_hop_post_with_http_info(**kwargs) # noqa: E501
|
||||
|
||||
def graph_expend_one_hop_post_with_http_info(self, **kwargs): # noqa: E501
|
||||
"""expend_one_hop # noqa: E501
|
||||
|
||||
This method makes a synchronous HTTP request by default. To make an
|
||||
asynchronous HTTP request, please pass async_req=True
|
||||
>>> thread = api.graph_expend_one_hop_post_with_http_info(async_req=True)
|
||||
>>> result = thread.get()
|
||||
|
||||
:param async_req bool: execute request asynchronously
|
||||
:param ExpendOneHopRequest expend_one_hop_request:
|
||||
:param _return_http_data_only: response data without head status code
|
||||
and headers
|
||||
:param _preload_content: if False, the urllib3.HTTPResponse object will
|
||||
be returned without reading/decoding response
|
||||
data. Default is True.
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
(connection, read) timeouts.
|
||||
:return: tuple(ExpendOneHopResponse, status_code(int), headers(HTTPHeaderDict))
|
||||
If the method is called asynchronously,
|
||||
returns the request thread.
|
||||
"""
|
||||
|
||||
local_var_params = locals()
|
||||
|
||||
all_params = [
|
||||
'expend_one_hop_request'
|
||||
]
|
||||
all_params.extend(
|
||||
[
|
||||
'async_req',
|
||||
'_return_http_data_only',
|
||||
'_preload_content',
|
||||
'_request_timeout'
|
||||
]
|
||||
)
|
||||
|
||||
for key, val in six.iteritems(local_var_params['kwargs']):
|
||||
if key not in all_params:
|
||||
raise ApiTypeError(
|
||||
"Got an unexpected keyword argument '%s'"
|
||||
" to method graph_expend_one_hop_post" % key
|
||||
)
|
||||
local_var_params[key] = val
|
||||
del local_var_params['kwargs']
|
||||
|
||||
collection_formats = {}
|
||||
|
||||
path_params = {}
|
||||
|
||||
query_params = []
|
||||
|
||||
header_params = {}
|
||||
|
||||
form_params = []
|
||||
local_var_files = {}
|
||||
|
||||
body_params = None
|
||||
if 'expend_one_hop_request' in local_var_params:
|
||||
body_params = local_var_params['expend_one_hop_request']
|
||||
# HTTP header `Accept`
|
||||
header_params['Accept'] = self.api_client.select_header_accept(
|
||||
['application/json']) # noqa: E501
|
||||
|
||||
# HTTP header `Content-Type`
|
||||
header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
|
||||
['application/json']) # noqa: E501
|
||||
|
||||
# Authentication setting
|
||||
auth_settings = [] # noqa: E501
|
||||
|
||||
return self.api_client.call_api(
|
||||
'/graph/expendOneHop', 'POST',
|
||||
path_params,
|
||||
query_params,
|
||||
header_params,
|
||||
body=body_params,
|
||||
post_params=form_params,
|
||||
files=local_var_files,
|
||||
response_type='ExpendOneHopResponse', # noqa: E501
|
||||
auth_settings=auth_settings,
|
||||
async_req=local_var_params.get('async_req'),
|
||||
_return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
|
||||
_preload_content=local_var_params.get('_preload_content', True),
|
||||
_request_timeout=local_var_params.get('_request_timeout'),
|
||||
collection_formats=collection_formats)
|
||||
|
||||
def graph_query_vertex_post(self, **kwargs): # noqa: E501
|
||||
"""query_vertex # noqa: E501
|
||||
|
||||
This method makes a synchronous HTTP request by default. To make an
|
||||
asynchronous HTTP request, please pass async_req=True
|
||||
>>> thread = api.graph_query_vertex_post(async_req=True)
|
||||
>>> result = thread.get()
|
||||
|
||||
:param async_req bool: execute request asynchronously
|
||||
:param QueryVertexRequest query_vertex_request:
|
||||
:param _preload_content: if False, the urllib3.HTTPResponse object will
|
||||
be returned without reading/decoding response
|
||||
data. Default is True.
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
(connection, read) timeouts.
|
||||
:return: VertexRecord
|
||||
If the method is called asynchronously,
|
||||
returns the request thread.
|
||||
"""
|
||||
kwargs['_return_http_data_only'] = True
|
||||
return self.graph_query_vertex_post_with_http_info(**kwargs) # noqa: E501
|
||||
|
||||
def graph_query_vertex_post_with_http_info(self, **kwargs): # noqa: E501
|
||||
"""query_vertex # noqa: E501
|
||||
|
||||
This method makes a synchronous HTTP request by default. To make an
|
||||
asynchronous HTTP request, please pass async_req=True
|
||||
>>> thread = api.graph_query_vertex_post_with_http_info(async_req=True)
|
||||
>>> result = thread.get()
|
||||
|
||||
:param async_req bool: execute request asynchronously
|
||||
:param QueryVertexRequest query_vertex_request:
|
||||
:param _return_http_data_only: response data without head status code
|
||||
and headers
|
||||
:param _preload_content: if False, the urllib3.HTTPResponse object will
|
||||
be returned without reading/decoding response
|
||||
data. Default is True.
|
||||
:param _request_timeout: timeout setting for this request. If one
|
||||
number provided, it will be total request
|
||||
timeout. It can also be a pair (tuple) of
|
||||
(connection, read) timeouts.
|
||||
:return: tuple(VertexRecord, status_code(int), headers(HTTPHeaderDict))
|
||||
If the method is called asynchronously,
|
||||
returns the request thread.
|
||||
"""
|
||||
|
||||
local_var_params = locals()
|
||||
|
||||
all_params = [
|
||||
'query_vertex_request'
|
||||
]
|
||||
all_params.extend(
|
||||
[
|
||||
'async_req',
|
||||
'_return_http_data_only',
|
||||
'_preload_content',
|
||||
'_request_timeout'
|
||||
]
|
||||
)
|
||||
|
||||
for key, val in six.iteritems(local_var_params['kwargs']):
|
||||
if key not in all_params:
|
||||
raise ApiTypeError(
|
||||
"Got an unexpected keyword argument '%s'"
|
||||
" to method graph_query_vertex_post" % key
|
||||
)
|
||||
local_var_params[key] = val
|
||||
del local_var_params['kwargs']
|
||||
|
||||
collection_formats = {}
|
||||
|
||||
path_params = {}
|
||||
|
||||
query_params = []
|
||||
|
||||
header_params = {}
|
||||
|
||||
form_params = []
|
||||
local_var_files = {}
|
||||
|
||||
body_params = None
|
||||
if 'query_vertex_request' in local_var_params:
|
||||
body_params = local_var_params['query_vertex_request']
|
||||
# HTTP header `Accept`
|
||||
header_params['Accept'] = self.api_client.select_header_accept(
|
||||
['application/json']) # noqa: E501
|
||||
|
||||
# HTTP header `Content-Type`
|
||||
header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
|
||||
['application/json']) # noqa: E501
|
||||
|
||||
# Authentication setting
|
||||
auth_settings = [] # noqa: E501
|
||||
|
||||
return self.api_client.call_api(
|
||||
'/graph/queryVertex', 'POST',
|
||||
path_params,
|
||||
query_params,
|
||||
header_params,
|
||||
body=body_params,
|
||||
post_params=form_params,
|
||||
files=local_var_files,
|
||||
response_type='VertexRecord', # noqa: E501
|
||||
auth_settings=auth_settings,
|
||||
async_req=local_var_params.get('async_req'),
|
||||
_return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
|
||||
_preload_content=local_var_params.get('_preload_content', True),
|
||||
_request_timeout=local_var_params.get('_request_timeout'),
|
||||
collection_formats=collection_formats)
|
||||
|
||||
@ -16,17 +16,20 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
# import models into model package
|
||||
from knext.graph_algo.rest.models.get_page_rank_scores_request import (
|
||||
GetPageRankScoresRequest,
|
||||
)
|
||||
from knext.graph_algo.rest.models.get_page_rank_scores_request_start_nodes import (
|
||||
GetPageRankScoresRequestStartNodes,
|
||||
)
|
||||
from knext.graph_algo.rest.models.page_rank_score_instance import PageRankScoreInstance
|
||||
from knext.graph_algo.rest.models.delete_vertex_request import DeleteVertexRequest
|
||||
from knext.graph_algo.rest.models.delete_edge_request import DeleteEdgeRequest
|
||||
from knext.graph_algo.rest.models.edge_record_instance import EdgeRecordInstance
|
||||
from knext.graph_algo.rest.models.upsert_vertex_request import UpsertVertexRequest
|
||||
from knext.graph_algo.rest.models.upsert_edge_request import UpsertEdgeRequest
|
||||
from knext.graph_algo.rest.models.vertex_record_instance import VertexRecordInstance
|
||||
from knext.graph_algo.rest.models.writer_graph_request import WriterGraphRequest
|
||||
from knext.graph.rest.models.get_page_rank_scores_request import GetPageRankScoresRequest
|
||||
from knext.graph.rest.models.get_page_rank_scores_request_start_nodes import GetPageRankScoresRequestStartNodes
|
||||
from knext.graph.rest.models.page_rank_score_instance import PageRankScoreInstance
|
||||
from knext.graph.rest.models.delete_vertex_request import DeleteVertexRequest
|
||||
from knext.graph.rest.models.delete_edge_request import DeleteEdgeRequest
|
||||
from knext.graph.rest.models.edge_record_instance import EdgeRecordInstance
|
||||
from knext.graph.rest.models.upsert_vertex_request import UpsertVertexRequest
|
||||
from knext.graph.rest.models.upsert_edge_request import UpsertEdgeRequest
|
||||
from knext.graph.rest.models.vertex_record_instance import VertexRecordInstance
|
||||
from knext.graph.rest.models.writer_graph_request import WriterGraphRequest
|
||||
from knext.graph.rest.models.edge_record import EdgeRecord
|
||||
from knext.graph.rest.models.edge_type_name import EdgeTypeName
|
||||
from knext.graph.rest.models.expend_one_hop_request import ExpendOneHopRequest
|
||||
from knext.graph.rest.models.lpg_property_record import LpgPropertyRecord
|
||||
from knext.graph.rest.models.query_vertex_request import QueryVertexRequest
|
||||
from knext.graph.rest.models.vertex_record import VertexRecord
|
||||
from knext.graph.rest.models.expend_one_hop_response import ExpendOneHopResponse
|
||||
|
||||
@ -13,6 +13,6 @@ rm -rf build
|
||||
|
||||
rm -rf dist
|
||||
|
||||
python setup.py sdist bdist_wheel
|
||||
python3 setup.py sdist bdist_wheel
|
||||
|
||||
twine upload dist/*
|
||||
Loading…
x
Reference in New Issue
Block a user