weaviate-agents
Version:
JS/TS client for Weaviate Agents
129 lines (128 loc) • 4.14 kB
TypeScript
import { NumericMetrics, TextMetrics, BooleanMetrics, DateMetrics, ComparisonOperator } from "./response.js";
export type ApiQueryAgentResponse = {
original_query: string;
collection_names: string[];
searches: ApiSearchResult[][];
aggregations: ApiAggregationResult[][];
usage: ApiUsage;
total_time: number;
is_partial_answer: boolean;
missing_information: string[];
final_answer: string;
sources: ApiSource[];
};
export type ApiSearchResult = {
collection: string;
queries: (string | null)[];
filters: ApiPropertyFilter[][];
filter_operators: "AND" | "OR";
};
export type ApiPropertyFilter = ApiIntegerPropertyFilter | ApiIntegerArrayPropertyFilter | ApiTextPropertyFilter | ApiTextArrayPropertyFilter | ApiBooleanPropertyFilter | ApiBooleanArrayPropertyFilter | ApiDatePropertyFilter | ApiDateArrayPropertyFilter | ApiGeoPropertyFilter | ApiIsNullPropertyFilter;
type ApiPropertyFilterBase = {
filter_type: string;
property_name: string;
};
export type ApiIntegerPropertyFilter = ApiPropertyFilterBase & {
filter_type: "integer";
operator: ComparisonOperator;
value: number;
};
export type ApiIntegerArrayPropertyFilter = ApiPropertyFilterBase & {
filter_type: "integer_array";
operator: ComparisonOperator;
value: number[];
};
export type ApiTextPropertyFilter = ApiPropertyFilterBase & {
filter_type: "text";
operator: ComparisonOperator;
value: string;
};
export type ApiTextArrayPropertyFilter = ApiPropertyFilterBase & {
filter_type: "text_array";
operator: ComparisonOperator;
value: string[];
};
export type ApiBooleanPropertyFilter = ApiPropertyFilterBase & {
filter_type: "boolean";
operator: ComparisonOperator;
value: boolean;
};
export type ApiBooleanArrayPropertyFilter = ApiPropertyFilterBase & {
filter_type: "boolean_array";
operator: ComparisonOperator;
value: boolean[];
};
export type ApiDateExact = {
exact_timestamp: string;
operator: ComparisonOperator;
};
export type ApiDateRangeFrom = {
date_from: string;
inclusive_from: boolean;
};
export type ApiDateRangeTo = {
date_to: string;
inclusive_to: boolean;
};
export type ApiDateRangeBetween = {
date_from: string;
date_to: string;
inclusive_from: boolean;
inclusive_to: boolean;
};
export type ApiDateFilterValue = ApiDateExact | ApiDateRangeFrom | ApiDateRangeTo | ApiDateRangeBetween;
export type ApiDatePropertyFilter = ApiPropertyFilterBase & {
filter_type: "date_range";
value: ApiDateFilterValue;
};
export type ApiDateArrayPropertyFilter = ApiPropertyFilterBase & {
filter_type: "date_array";
operator: ComparisonOperator;
value: string[];
};
export type ApiGeoPropertyFilter = ApiPropertyFilterBase & {
filter_type: "geo";
latitude: number;
longitude: number;
max_distance_meters: number;
};
export type ApiIsNullPropertyFilter = ApiPropertyFilterBase & {
filter_type: "is_null";
is_null: boolean;
};
export type ApiAggregationResult = {
collection: string;
search_query?: string;
groupby_property?: string;
aggregations: ApiPropertyAggregation[];
filters: ApiPropertyFilter[];
};
export type ApiPropertyAggregation = ApiIntegerPropertyAggregation | ApiTextPropertyAggregation | ApiBooleanPropertyAggregation | ApiDatePropertyAggregation;
type ApiPropertyAggregationBase = {
property_name: string;
};
export type ApiIntegerPropertyAggregation = ApiPropertyAggregationBase & {
metrics: NumericMetrics;
};
export type ApiTextPropertyAggregation = ApiPropertyAggregationBase & {
metrics: TextMetrics;
top_occurrences_limit?: number;
};
export type ApiBooleanPropertyAggregation = ApiPropertyAggregationBase & {
metrics: BooleanMetrics;
};
export type ApiDatePropertyAggregation = ApiPropertyAggregationBase & {
metrics: DateMetrics;
};
export type ApiUsage = {
requests: number;
request_tokens?: number;
response_tokens?: number;
total_tokens?: number;
details?: Record<string, number>;
};
export type ApiSource = {
object_id: string;
collection: string;
};
export {};