Files
embeddingsearch/src/Indexer/Scripts/tools.py

133 lines
3.1 KiB
Python

from dataclasses import dataclass
import array
from typing import Optional
@dataclass
class JSONDatapoint:
Name:str
Text:str
Probmethod_embedding:str
SimilarityMethod:str
Model:list[str]
@dataclass
class JSONEntity:
Name:str
Probmethod:str
Searchdomain:str
Attributes:dict
Datapoints:array.array[JSONDatapoint]
#Model - Searchdomain
@dataclass
class SearchdomainListResults:
Searchdomains:list[str]
@dataclass
class SearchdomainCreateResults:
Success:bool
id:int|None
@dataclass
class SearchdomainUpdateResults:
Success:bool
@dataclass
class SearchdomainDeleteResults:
Success:bool
DeletedEntities:int
#Model - Entity
@dataclass
class EntityQueryResult:
name:str
ValueError:float
@dataclass
class EntityQueryResults:
Results:list[EntityQueryResult]
@dataclass
class EntityIndexResult:
Success:bool
@dataclass
class AttributeResult:
Name:str
Value:str
@dataclass
class EmbeddingResult:
Model:str
Embeddings:array.array[float]
@dataclass
class DatapointResult:
Name:str
ProbMethod:str
Embeddings:list[EmbeddingResult]|None
@dataclass
class EntityListResults:
Name:str
Attributes:list[AttributeResult]
Datapoints:list[DatapointResult]
@dataclass
class EntityDeleteResults:
Success:bool
# Model - Client
@dataclass
class Client:
baseUri:str
apiKey:str
searchdomain:str
async def SearchdomainListAsync() -> SearchdomainListResults:
pass
async def SearchdomainDeleteAsync() -> SearchdomainDeleteResults:
pass
async def SearchdomainCreateAsync() -> SearchdomainCreateResults:
pass
async def SearchdomainCreateAsync(searchdomain:str) -> SearchdomainCreateResults:
pass
async def SearchdomainUpdateAsync(newName:str, settings:str) -> SearchdomainUpdateResults:
pass
async def SearchdomainUpdateAsync(searchdomain:str, newName:str, settings:str) -> SearchdomainUpdateResults:
pass
async def EntityQueryAsync(query:str) -> EntityQueryResults:
pass
async def EntityQueryAsync(searchdomain:str, query:str) -> EntityQueryResults:
pass
#async def EntityIndexAsync(jsonEntity): # -> EntityIndexResult:#:NetList[JSONEntity]) -> EntityIndexResult: #TODO fix clr issues, i.e. make this work
# pass
#async def EntityIndexAsync(searchdomain:str, jsonEntity:list[JSONEntity]) -> EntityIndexResult:
# pass
async def EntityIndexAsync(jsonEntity:str) -> EntityIndexResult:
pass
async def EntityIndexAsync(searchdomain:str, jsonEntity:str) -> EntityIndexResult:
pass
async def EntityListAsync(returnEmbeddings:bool = False) -> EntityListResults:
pass
async def EntityListAsync(searchdomain:str, returnEmbeddings:bool = False) -> EntityListResults:
pass
async def EntityDeleteAsync(searchdomain:str, entityName:str) -> EntityDeleteResults:
pass
@dataclass
class ICallbackInfos:
pass
@dataclass
class IntervalCallbackInfos(ICallbackInfos):
sender: Optional[object]
e: object
@dataclass
class Toolset:
filePath:str
client:Client
callbackInfos: Optional[ICallbackInfos] = None