import {Entity} from "./entity"; import {DsProjectRoomBlock, DsProjectRoomBlockField, DsProjectRoomData} from "../dynamic-labeling-room/entities"; import {ExampleEntityData} from "./example-entity-data"; export class QuickSearch implements Entity { private _topk_results = 2; private _qs_search_queries: PyDsQuickSearchInput[] = [] private _version = ''; private _records: QuickSearchRecord = new QuickSearchRecord(); private _exampleEntityData: ExampleEntityData = new ExampleEntityData('recruiter-search'); constructor(obj?) { if (obj) { if (obj.topk_results) { this._topk_results = obj.topk_results; } if (obj.qs_search_queries) { for (const i in obj.qs_search_queries) { this._qs_search_queries.push(new PyDsQuickSearchInput(obj.qs_search_queries[i])); } } if (obj.version) { this._version = obj.version; } if (obj.records) { this._records = new QuickSearchRecord(obj.records); } } } get version(): string { return this._version; } set version(value: string) { this._version = value; } get topk_results(): number { return this._topk_results; } set topk_results(value: number) { this._topk_results = value; } get qs_search_queries(): PyDsQuickSearchInput[] { return this._qs_search_queries; } set qs_search_queries(value: PyDsQuickSearchInput[]) { this._qs_search_queries = value; } get records(): QuickSearchRecord { return this._records; } set records(value: QuickSearchRecord) { this._records = value; } public toJSON() { return { topk_results: this.topk_results, qs_search_queries: this._qs_search_queries, version: this.version, records: this.records }; } public toNerEntities(type = 1) { return { relationOptions: [], entities: { predicted_string: '', rank: '', score: '' } }; } nerEntityTypeOptions(): any[] { return []; } public toDsProjectRoom() { const data: DsProjectRoomData = new DsProjectRoomData({ }); const blocks = [ { } ]; } public fromDsProjectRoom(obj: DsProjectRoomBlock[], data: DsProjectRoomData) { return new QuickSearch(); } } export class PyDsQuickSearchInput { search_id = '' search_string = '' constructor(obj?) { if (obj) { if (obj.search_id) { this.search_id = obj.search_id; } if (obj.search_string) { this.search_string = obj.search_string; } } } toJSON() { return { search_id: this.search_id, search_string: this.search_string } } } class PyDsQuickSearchTopKResults { predicted_string = ""; rank = 1 score = 0 constructor(obj?) { if (obj) { if (obj.predicted_string) { this.predicted_string = obj.predicted_string; } if (obj.rank) { this.rank = obj.rank; } if (obj.score) { this.score = obj.score; } } } } class PyDsQuickSearchOutput { search_id = '' search_string = '' company_model: PyDsQuickSearchTopKResults[] = [] contact_model: PyDsQuickSearchTopKResults[] = [] inference_time = -1 constructor(obj?) { if (obj) { if (obj.search_id) { this.search_id = obj.search_id; } if (obj.search_string) { this.search_string = obj.search_string; } if (obj.company_model) { for (const i in obj.company_model) { this.company_model.push(new PyDsQuickSearchTopKResults(obj.company_model[i])); } } if (obj.contact_model) { for (const i in obj.contact_model) { this.contact_model.push(new PyDsQuickSearchTopKResults(obj.contact_model[i])); } } if (obj.inference_time) { this.inference_time = obj.inference_time; } } } } export class QuickSearchRecord { predicted_strings: PyDsQuickSearchOutput[] = []; constructor(obj?) { if (obj) { if (obj.predicted_strings) { for (const element of obj.predicted_strings) { this.predicted_strings.push(new PyDsQuickSearchOutput(element)); } } if (Array.isArray(obj)) { for (const element of obj) { this.predicted_strings.push(new PyDsQuickSearchOutput(element)); } } } } }