mirror of
https://github.com/nexus-stc/hyperboria
synced 2025-02-14 02:56:48 +01:00
43be16e4bc
- [nexus] Remove outdated protos - [nexus] Development - [nexus] Development - [nexus] Development - [nexus] Development - [nexus] Development - [nexus] Refactor views - [nexus] Update aiosumma - [nexus] Add tags - [nexus] Development - [nexus] Update repository - [nexus] Update repository - [nexus] Update dependencies - [nexus] Update dependencies - [nexus] Fixes for MetaAPI - [nexus] Support for new queries - [nexus] Adopt new versions of search - [nexus] Improving Nexus - [nexus] Various fixes - [nexus] Add profile - [nexus] Fixes for ingestion - [nexus] Refactorings and bugfixes - [idm] Add profile methods - [nexus] Fix stalled nexus-meta bugs - [nexus] Various bugfixes - [nexus] Restore IDM API functionality GitOrigin-RevId: a0842345a6dde5b321279ab5510a50c0def0e71a
140 lines
4.2 KiB
Python
140 lines
4.2 KiB
Python
from typing import (
|
|
Dict,
|
|
List,
|
|
Optional,
|
|
Tuple,
|
|
Union,
|
|
)
|
|
|
|
from aiogrpcclient import (
|
|
BaseGrpcClient,
|
|
expose,
|
|
)
|
|
from izihawa_utils.pb_to_json import ParseDict
|
|
from nexus.meta_api.proto import (
|
|
documents_service_pb2,
|
|
documents_service_pb2_grpc,
|
|
search_service_pb2,
|
|
search_service_pb2_grpc,
|
|
)
|
|
from nexus.models.proto import typed_document_pb2
|
|
|
|
|
|
class MetaApiGrpcClient(BaseGrpcClient):
|
|
stub_clses = {
|
|
'documents': documents_service_pb2_grpc.DocumentsStub,
|
|
'search': search_service_pb2_grpc.SearchStub,
|
|
}
|
|
|
|
@expose
|
|
async def get(
|
|
self,
|
|
index_alias: str,
|
|
document_id: int,
|
|
mode: str,
|
|
user_id: str,
|
|
position: Optional[int] = None,
|
|
request_id: Optional[str] = None,
|
|
session_id: Optional[str] = None,
|
|
) -> typed_document_pb2.TypedDocument:
|
|
return await self.stubs['documents'].get(
|
|
documents_service_pb2.TypedDocumentRequest(
|
|
index_alias=index_alias,
|
|
document_id=document_id,
|
|
mode=mode,
|
|
position=position,
|
|
),
|
|
metadata=(
|
|
('request-id', request_id),
|
|
('session-id', session_id),
|
|
('user-id', user_id),
|
|
),
|
|
)
|
|
|
|
@expose(with_from_file=True)
|
|
async def search(
|
|
self,
|
|
index_aliases: Union[List[str], Tuple[str]],
|
|
query: str,
|
|
user_id: str,
|
|
page: Optional[int] = None,
|
|
page_size: Optional[int] = None,
|
|
language: Optional[str] = None,
|
|
request_id: Optional[str] = None,
|
|
session_id: Optional[str] = None,
|
|
) -> search_service_pb2.SearchResponse:
|
|
return await self.stubs['search'].search(
|
|
search_service_pb2.SearchRequest(
|
|
index_aliases=index_aliases,
|
|
query=query,
|
|
page=page,
|
|
page_size=page_size,
|
|
language=language,
|
|
),
|
|
metadata=(
|
|
('request-id', request_id),
|
|
('session-id', session_id),
|
|
('user-id', user_id),
|
|
),
|
|
)
|
|
|
|
@expose(with_from_file=True)
|
|
async def search(
|
|
self,
|
|
index_aliases: Union[List[str], Tuple[str]],
|
|
query: str,
|
|
user_id: str,
|
|
query_tags: Optional[List] = None,
|
|
page: Optional[int] = None,
|
|
page_size: Optional[int] = None,
|
|
language: Optional[str] = None,
|
|
request_id: Optional[str] = None,
|
|
session_id: Optional[str] = None,
|
|
) -> search_service_pb2.SearchResponse:
|
|
return await self.stubs['search'].search(
|
|
search_service_pb2.SearchRequest(
|
|
index_aliases=index_aliases,
|
|
query=query,
|
|
query_tags=query_tags,
|
|
page=page,
|
|
page_size=page_size,
|
|
language=language,
|
|
),
|
|
metadata=(
|
|
('request-id', request_id),
|
|
('session-id', session_id),
|
|
('user-id', user_id),
|
|
),
|
|
)
|
|
|
|
@expose(with_from_file=True)
|
|
async def meta_search(
|
|
self,
|
|
index_aliases: Union[List[str], Tuple[str]],
|
|
query: str,
|
|
collectors: List,
|
|
languages: Optional[Dict[str, float]] = None,
|
|
query_tags: Optional[List] = None,
|
|
user_id: Optional[str] = None,
|
|
request_id: Optional[str] = None,
|
|
session_id: Optional[str] = None,
|
|
skip_cache_loading: Optional[bool] = False,
|
|
skip_cache_saving: Optional[bool] = False,
|
|
) -> search_service_pb2.MetaSearchResponse:
|
|
return await self.stubs['search'].meta_search(
|
|
ParseDict({
|
|
'index_aliases': index_aliases,
|
|
'query': query,
|
|
'languages': languages,
|
|
'collectors': collectors,
|
|
'query_tags': query_tags,
|
|
}, search_service_pb2.MetaSearchRequest()),
|
|
metadata=(
|
|
('request-id', request_id),
|
|
('session-id', session_id),
|
|
('user-id', user_id),
|
|
('skip-cache-loading', str(int(skip_cache_loading))),
|
|
('skip-cache-saving', str(int(skip_cache_saving))),
|
|
),
|
|
)
|