/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { Filter, Filter$inboundSchema, Filter$Outbound, Filter$outboundSchema, } from "./filter.js"; /** * A query string for a search, or an array of query strings. */ export type Query = string | Array; /** * Enable re-ranking; set to 'none' to disable, which can help reduce latency. */ export const Ranker = { Auto: "auto", None: "none", } as const; /** * Enable re-ranking; set to 'none' to disable, which can help reduce latency. */ export type Ranker = ClosedEnum; /** * Ranking options for search. */ export type SearchVectorStoreRequestRankingOptions = { /** * Enable re-ranking; set to 'none' to disable, which can help reduce latency. */ ranker?: Ranker | undefined; /** * Minimum score threshold for search results. */ scoreThreshold?: number | undefined; }; /** * Request body for searching a vector store. */ export type SearchVectorStoreRequest = { /** * A query string for a search, or an array of query strings. */ query: string | Array; filters?: Filter | undefined; /** * The maximum number of results to return. This number should be between 1 and 50 inclusive. */ maxNumResults?: number | undefined; /** * Ranking options for search. */ rankingOptions?: SearchVectorStoreRequestRankingOptions | undefined; /** * Whether to rewrite the natural language query for vector search. */ rewriteQuery?: boolean | undefined; }; /** @internal */ export const Query$inboundSchema: z.ZodType = z .union([z.string(), z.array(z.string())]); /** @internal */ export type Query$Outbound = string | Array; /** @internal */ export const Query$outboundSchema: z.ZodType< Query$Outbound, z.ZodTypeDef, Query > = z.union([z.string(), z.array(z.string())]); export function queryToJSON(query: Query): string { return JSON.stringify(Query$outboundSchema.parse(query)); } export function queryFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => Query$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'Query' from JSON`, ); } /** @internal */ export const Ranker$inboundSchema: z.ZodNativeEnum = z .nativeEnum(Ranker); /** @internal */ export const Ranker$outboundSchema: z.ZodNativeEnum = Ranker$inboundSchema; /** @internal */ export const SearchVectorStoreRequestRankingOptions$inboundSchema: z.ZodType< SearchVectorStoreRequestRankingOptions, z.ZodTypeDef, unknown > = z.object({ ranker: Ranker$inboundSchema.default("auto"), score_threshold: z.number().default(0), }).transform((v) => { return remap$(v, { "score_threshold": "scoreThreshold", }); }); /** @internal */ export type SearchVectorStoreRequestRankingOptions$Outbound = { ranker: string; score_threshold: number; }; /** @internal */ export const SearchVectorStoreRequestRankingOptions$outboundSchema: z.ZodType< SearchVectorStoreRequestRankingOptions$Outbound, z.ZodTypeDef, SearchVectorStoreRequestRankingOptions > = z.object({ ranker: Ranker$outboundSchema.default("auto"), scoreThreshold: z.number().default(0), }).transform((v) => { return remap$(v, { scoreThreshold: "score_threshold", }); }); export function searchVectorStoreRequestRankingOptionsToJSON( searchVectorStoreRequestRankingOptions: SearchVectorStoreRequestRankingOptions, ): string { return JSON.stringify( SearchVectorStoreRequestRankingOptions$outboundSchema.parse( searchVectorStoreRequestRankingOptions, ), ); } export function searchVectorStoreRequestRankingOptionsFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => SearchVectorStoreRequestRankingOptions$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'SearchVectorStoreRequestRankingOptions' from JSON`, ); } /** @internal */ export const SearchVectorStoreRequest$inboundSchema: z.ZodType< SearchVectorStoreRequest, z.ZodTypeDef, unknown > = z.object({ query: z.union([z.string(), z.array(z.string())]), filters: Filter$inboundSchema.optional(), max_num_results: z.number().int().default(10), ranking_options: z.lazy(() => SearchVectorStoreRequestRankingOptions$inboundSchema ).optional(), rewrite_query: z.boolean().default(false), }).transform((v) => { return remap$(v, { "max_num_results": "maxNumResults", "ranking_options": "rankingOptions", "rewrite_query": "rewriteQuery", }); }); /** @internal */ export type SearchVectorStoreRequest$Outbound = { query: string | Array; filters?: Filter$Outbound | undefined; max_num_results: number; ranking_options?: SearchVectorStoreRequestRankingOptions$Outbound | undefined; rewrite_query: boolean; }; /** @internal */ export const SearchVectorStoreRequest$outboundSchema: z.ZodType< SearchVectorStoreRequest$Outbound, z.ZodTypeDef, SearchVectorStoreRequest > = z.object({ query: z.union([z.string(), z.array(z.string())]), filters: Filter$outboundSchema.optional(), maxNumResults: z.number().int().default(10), rankingOptions: z.lazy(() => SearchVectorStoreRequestRankingOptions$outboundSchema ).optional(), rewriteQuery: z.boolean().default(false), }).transform((v) => { return remap$(v, { maxNumResults: "max_num_results", rankingOptions: "ranking_options", rewriteQuery: "rewrite_query", }); }); export function searchVectorStoreRequestToJSON( searchVectorStoreRequest: SearchVectorStoreRequest, ): string { return JSON.stringify( SearchVectorStoreRequest$outboundSchema.parse(searchVectorStoreRequest), ); } export function searchVectorStoreRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => SearchVectorStoreRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'SearchVectorStoreRequest' from JSON`, ); }