in openai-java-core/src/main/kotlin/com/openai/services/blocking/VectorStoreServiceImpl.kt [79:298]
override fun list(
params: VectorStoreListParams,
requestOptions: RequestOptions,
): VectorStoreListPage =
// get /vector_stores
withRawResponse().list(params, requestOptions).parse()
override fun delete(
params: VectorStoreDeleteParams,
requestOptions: RequestOptions,
): VectorStoreDeleted =
// delete /vector_stores/{vector_store_id}
withRawResponse().delete(params, requestOptions).parse()
override fun search(
params: VectorStoreSearchParams,
requestOptions: RequestOptions,
): VectorStoreSearchPage =
// post /vector_stores/{vector_store_id}/search
withRawResponse().search(params, requestOptions).parse()
class WithRawResponseImpl internal constructor(private val clientOptions: ClientOptions) :
VectorStoreService.WithRawResponse {
private val errorHandler: Handler<ErrorObject?> = errorHandler(clientOptions.jsonMapper)
private val files: FileService.WithRawResponse by lazy {
FileServiceImpl.WithRawResponseImpl(clientOptions)
}
private val fileBatches: FileBatchService.WithRawResponse by lazy {
FileBatchServiceImpl.WithRawResponseImpl(clientOptions)
}
override fun files(): FileService.WithRawResponse = files
override fun fileBatches(): FileBatchService.WithRawResponse = fileBatches
private val createHandler: Handler<VectorStore> =
jsonHandler<VectorStore>(clientOptions.jsonMapper).withErrorHandler(errorHandler)
override fun create(
params: VectorStoreCreateParams,
requestOptions: RequestOptions,
): HttpResponseFor<VectorStore> {
val request =
HttpRequest.builder()
.method(HttpMethod.POST)
.addPathSegments("vector_stores")
.putAllHeaders(DEFAULT_HEADERS)
.body(json(clientOptions.jsonMapper, params._body()))
.build()
.prepare(clientOptions, params, deploymentModel = null)
val requestOptions = requestOptions.applyDefaults(RequestOptions.from(clientOptions))
val response = clientOptions.httpClient.execute(request, requestOptions)
return response.parseable {
response
.use { createHandler.handle(it) }
.also {
if (requestOptions.responseValidation!!) {
it.validate()
}
}
}
}
private val retrieveHandler: Handler<VectorStore> =
jsonHandler<VectorStore>(clientOptions.jsonMapper).withErrorHandler(errorHandler)
override fun retrieve(
params: VectorStoreRetrieveParams,
requestOptions: RequestOptions,
): HttpResponseFor<VectorStore> {
val request =
HttpRequest.builder()
.method(HttpMethod.GET)
.addPathSegments("vector_stores", params._pathParam(0))
.putAllHeaders(DEFAULT_HEADERS)
.build()
.prepare(clientOptions, params, deploymentModel = null)
val requestOptions = requestOptions.applyDefaults(RequestOptions.from(clientOptions))
val response = clientOptions.httpClient.execute(request, requestOptions)
return response.parseable {
response
.use { retrieveHandler.handle(it) }
.also {
if (requestOptions.responseValidation!!) {
it.validate()
}
}
}
}
private val updateHandler: Handler<VectorStore> =
jsonHandler<VectorStore>(clientOptions.jsonMapper).withErrorHandler(errorHandler)
override fun update(
params: VectorStoreUpdateParams,
requestOptions: RequestOptions,
): HttpResponseFor<VectorStore> {
val request =
HttpRequest.builder()
.method(HttpMethod.POST)
.addPathSegments("vector_stores", params._pathParam(0))
.putAllHeaders(DEFAULT_HEADERS)
.body(json(clientOptions.jsonMapper, params._body()))
.build()
.prepare(clientOptions, params, deploymentModel = null)
val requestOptions = requestOptions.applyDefaults(RequestOptions.from(clientOptions))
val response = clientOptions.httpClient.execute(request, requestOptions)
return response.parseable {
response
.use { updateHandler.handle(it) }
.also {
if (requestOptions.responseValidation!!) {
it.validate()
}
}
}
}
private val listHandler: Handler<VectorStoreListPageResponse> =
jsonHandler<VectorStoreListPageResponse>(clientOptions.jsonMapper)
.withErrorHandler(errorHandler)
override fun list(
params: VectorStoreListParams,
requestOptions: RequestOptions,
): HttpResponseFor<VectorStoreListPage> {
val request =
HttpRequest.builder()
.method(HttpMethod.GET)
.addPathSegments("vector_stores")
.putAllHeaders(DEFAULT_HEADERS)
.build()
.prepare(clientOptions, params, deploymentModel = null)
val requestOptions = requestOptions.applyDefaults(RequestOptions.from(clientOptions))
val response = clientOptions.httpClient.execute(request, requestOptions)
return response.parseable {
response
.use { listHandler.handle(it) }
.also {
if (requestOptions.responseValidation!!) {
it.validate()
}
}
.let {
VectorStoreListPage.builder()
.service(VectorStoreServiceImpl(clientOptions))
.params(params)
.response(it)
.build()
}
}
}
private val deleteHandler: Handler<VectorStoreDeleted> =
jsonHandler<VectorStoreDeleted>(clientOptions.jsonMapper).withErrorHandler(errorHandler)
override fun delete(
params: VectorStoreDeleteParams,
requestOptions: RequestOptions,
): HttpResponseFor<VectorStoreDeleted> {
val request =
HttpRequest.builder()
.method(HttpMethod.DELETE)
.addPathSegments("vector_stores", params._pathParam(0))
.putAllHeaders(DEFAULT_HEADERS)
.apply { params._body().ifPresent { body(json(clientOptions.jsonMapper, it)) } }
.build()
.prepare(clientOptions, params, deploymentModel = null)
val requestOptions = requestOptions.applyDefaults(RequestOptions.from(clientOptions))
val response = clientOptions.httpClient.execute(request, requestOptions)
return response.parseable {
response
.use { deleteHandler.handle(it) }
.also {
if (requestOptions.responseValidation!!) {
it.validate()
}
}
}
}
private val searchHandler: Handler<VectorStoreSearchPageResponse> =
jsonHandler<VectorStoreSearchPageResponse>(clientOptions.jsonMapper)
.withErrorHandler(errorHandler)
override fun search(
params: VectorStoreSearchParams,
requestOptions: RequestOptions,
): HttpResponseFor<VectorStoreSearchPage> {
val request =
HttpRequest.builder()
.method(HttpMethod.POST)
.addPathSegments("vector_stores", params._pathParam(0), "search")
.putAllHeaders(DEFAULT_HEADERS)
.body(json(clientOptions.jsonMapper, params._body()))
.build()
.prepare(clientOptions, params, deploymentModel = null)
val requestOptions = requestOptions.applyDefaults(RequestOptions.from(clientOptions))
val response = clientOptions.httpClient.execute(request, requestOptions)
return response.parseable {
response
.use { searchHandler.handle(it) }
.also {
if (requestOptions.responseValidation!!) {
it.validate()
}
}
.let {
VectorStoreSearchPage.builder()
.service(VectorStoreServiceImpl(clientOptions))
.params(params)
.response(it)
.build()
}
}
}
}