@pinecone-database/pinecone
Version:
This is the official Node.js SDK for [Pinecone](https://www.pinecone.io), written in TypeScript.
309 lines • 18.2 kB
JavaScript
/* tslint:disable */
/* eslint-disable */
/**
* Pinecone Assistant Data Plane API
* Pinecone Assistant Engine is a context engine to store and retrieve relevant knowledge from millions of documents at scale. This API supports interactions with assistants.
*
* The version of the OpenAPI document: 2025-04
* Contact: support@pinecone.io
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DescribeFileIncludeUrlEnum = exports.ManageAssistantsApi = void 0;
const runtime = __importStar(require("../runtime"));
const index_1 = require("../models/index");
/**
*
*/
class ManageAssistantsApi extends runtime.BaseAPI {
/**
* Chat with an assistant and get back citations in structured form. This is the recommended way to chat with an assistant, as it offers more functionality and control over the assistant\'s responses and references than the OpenAI-compatible chat interface. For guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).
* Chat with an assistant
*/
async chatAssistantRaw(requestParameters, initOverrides) {
if (requestParameters.assistantName === null || requestParameters.assistantName === undefined) {
throw new runtime.RequiredError('assistantName', 'Required parameter requestParameters.assistantName was null or undefined when calling chatAssistant.');
}
if (requestParameters.chat === null || requestParameters.chat === undefined) {
throw new runtime.RequiredError('chat', 'Required parameter requestParameters.chat was null or undefined when calling chatAssistant.');
}
const queryParameters = {};
const headerParameters = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.apiKey) {
headerParameters["Api-Key"] = this.configuration.apiKey("Api-Key"); // ApiKeyAuth authentication
}
const response = await this.request({
path: `/chat/{assistant_name}`.replace(`{${"assistant_name"}}`, encodeURIComponent(String(requestParameters.assistantName))),
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: (0, index_1.ChatToJSON)(requestParameters.chat),
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.ChatModelFromJSON)(jsonValue));
}
/**
* Chat with an assistant and get back citations in structured form. This is the recommended way to chat with an assistant, as it offers more functionality and control over the assistant\'s responses and references than the OpenAI-compatible chat interface. For guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).
* Chat with an assistant
*/
async chatAssistant(requestParameters, initOverrides) {
const response = await this.chatAssistantRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Chat with an assistant. This endpoint is based on the OpenAI Chat Completion API, a commonly used and adopted API. It is useful if you need inline citations or OpenAI-compatible responses, but has limited functionality compared to the standard chat interface. For guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).
* Chat through an OpenAI-compatible interface
*/
async chatCompletionAssistantRaw(requestParameters, initOverrides) {
if (requestParameters.assistantName === null || requestParameters.assistantName === undefined) {
throw new runtime.RequiredError('assistantName', 'Required parameter requestParameters.assistantName was null or undefined when calling chatCompletionAssistant.');
}
if (requestParameters.searchCompletions === null || requestParameters.searchCompletions === undefined) {
throw new runtime.RequiredError('searchCompletions', 'Required parameter requestParameters.searchCompletions was null or undefined when calling chatCompletionAssistant.');
}
const queryParameters = {};
const headerParameters = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.apiKey) {
headerParameters["Api-Key"] = this.configuration.apiKey("Api-Key"); // ApiKeyAuth authentication
}
const response = await this.request({
path: `/chat/{assistant_name}/chat/completions`.replace(`{${"assistant_name"}}`, encodeURIComponent(String(requestParameters.assistantName))),
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: (0, index_1.SearchCompletionsToJSON)(requestParameters.searchCompletions),
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.ChatCompletionModelFromJSON)(jsonValue));
}
/**
* Chat with an assistant. This endpoint is based on the OpenAI Chat Completion API, a commonly used and adopted API. It is useful if you need inline citations or OpenAI-compatible responses, but has limited functionality compared to the standard chat interface. For guidance and examples, see [Chat with an assistant](https://docs.pinecone.io/guides/assistant/chat-with-assistant).
* Chat through an OpenAI-compatible interface
*/
async chatCompletionAssistant(requestParameters, initOverrides) {
const response = await this.chatCompletionAssistantRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Retrieve context snippets from an assistant to use as part of RAG or any agentic flow. For guidance and examples, see [Retrieve context snippets](https://docs.pinecone.io/guides/assistant/retrieve-context-snippets).
* Retrieve context from an assistant
*/
async contextAssistantRaw(requestParameters, initOverrides) {
if (requestParameters.assistantName === null || requestParameters.assistantName === undefined) {
throw new runtime.RequiredError('assistantName', 'Required parameter requestParameters.assistantName was null or undefined when calling contextAssistant.');
}
if (requestParameters.contextRequest === null || requestParameters.contextRequest === undefined) {
throw new runtime.RequiredError('contextRequest', 'Required parameter requestParameters.contextRequest was null or undefined when calling contextAssistant.');
}
const queryParameters = {};
const headerParameters = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.apiKey) {
headerParameters["Api-Key"] = this.configuration.apiKey("Api-Key"); // ApiKeyAuth authentication
}
const response = await this.request({
path: `/chat/{assistant_name}/context`.replace(`{${"assistant_name"}}`, encodeURIComponent(String(requestParameters.assistantName))),
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: (0, index_1.ContextRequestToJSON)(requestParameters.contextRequest),
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.ContextModelFromJSON)(jsonValue));
}
/**
* Retrieve context snippets from an assistant to use as part of RAG or any agentic flow. For guidance and examples, see [Retrieve context snippets](https://docs.pinecone.io/guides/assistant/retrieve-context-snippets).
* Retrieve context from an assistant
*/
async contextAssistant(requestParameters, initOverrides) {
const response = await this.contextAssistantRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Delete an uploaded file from an assistant. For guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#delete-a-file).
* Delete an uploaded file
*/
async deleteFileRaw(requestParameters, initOverrides) {
if (requestParameters.assistantName === null || requestParameters.assistantName === undefined) {
throw new runtime.RequiredError('assistantName', 'Required parameter requestParameters.assistantName was null or undefined when calling deleteFile.');
}
if (requestParameters.assistantFileId === null || requestParameters.assistantFileId === undefined) {
throw new runtime.RequiredError('assistantFileId', 'Required parameter requestParameters.assistantFileId was null or undefined when calling deleteFile.');
}
const queryParameters = {};
const headerParameters = {};
if (this.configuration && this.configuration.apiKey) {
headerParameters["Api-Key"] = this.configuration.apiKey("Api-Key"); // ApiKeyAuth authentication
}
const response = await this.request({
path: `/files/{assistant_name}/{assistant_file_id}`.replace(`{${"assistant_name"}}`, encodeURIComponent(String(requestParameters.assistantName))).replace(`{${"assistant_file_id"}}`, encodeURIComponent(String(requestParameters.assistantFileId))),
method: 'DELETE',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.VoidApiResponse(response);
}
/**
* Delete an uploaded file from an assistant. For guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#delete-a-file).
* Delete an uploaded file
*/
async deleteFile(requestParameters, initOverrides) {
await this.deleteFileRaw(requestParameters, initOverrides);
}
/**
* Get the status and metadata of a file uploaded to an assistant. For guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#get-the-status-of-a-file).
* Describe a file upload
*/
async describeFileRaw(requestParameters, initOverrides) {
if (requestParameters.assistantName === null || requestParameters.assistantName === undefined) {
throw new runtime.RequiredError('assistantName', 'Required parameter requestParameters.assistantName was null or undefined when calling describeFile.');
}
if (requestParameters.assistantFileId === null || requestParameters.assistantFileId === undefined) {
throw new runtime.RequiredError('assistantFileId', 'Required parameter requestParameters.assistantFileId was null or undefined when calling describeFile.');
}
const queryParameters = {};
if (requestParameters.includeUrl !== undefined) {
queryParameters['include_url'] = requestParameters.includeUrl;
}
const headerParameters = {};
if (this.configuration && this.configuration.apiKey) {
headerParameters["Api-Key"] = this.configuration.apiKey("Api-Key"); // ApiKeyAuth authentication
}
const response = await this.request({
path: `/files/{assistant_name}/{assistant_file_id}`.replace(`{${"assistant_name"}}`, encodeURIComponent(String(requestParameters.assistantName))).replace(`{${"assistant_file_id"}}`, encodeURIComponent(String(requestParameters.assistantFileId))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.AssistantFileModelFromJSON)(jsonValue));
}
/**
* Get the status and metadata of a file uploaded to an assistant. For guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#get-the-status-of-a-file).
* Describe a file upload
*/
async describeFile(requestParameters, initOverrides) {
const response = await this.describeFileRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* List all files in an assistant, with an option to filter files with metadata. For guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#list-files-in-an-assistant).
* List Files
*/
async listFilesRaw(requestParameters, initOverrides) {
if (requestParameters.assistantName === null || requestParameters.assistantName === undefined) {
throw new runtime.RequiredError('assistantName', 'Required parameter requestParameters.assistantName was null or undefined when calling listFiles.');
}
const queryParameters = {};
if (requestParameters.filter !== undefined) {
queryParameters['filter'] = requestParameters.filter;
}
const headerParameters = {};
if (this.configuration && this.configuration.apiKey) {
headerParameters["Api-Key"] = this.configuration.apiKey("Api-Key"); // ApiKeyAuth authentication
}
const response = await this.request({
path: `/files/{assistant_name}`.replace(`{${"assistant_name"}}`, encodeURIComponent(String(requestParameters.assistantName))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.ListFiles200ResponseFromJSON)(jsonValue));
}
/**
* List all files in an assistant, with an option to filter files with metadata. For guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#list-files-in-an-assistant).
* List Files
*/
async listFiles(requestParameters, initOverrides) {
const response = await this.listFilesRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Upload a file to the specified assistant. For guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#upload-a-local-file).
* Upload file to assistant
*/
async uploadFileRaw(requestParameters, initOverrides) {
if (requestParameters.assistantName === null || requestParameters.assistantName === undefined) {
throw new runtime.RequiredError('assistantName', 'Required parameter requestParameters.assistantName was null or undefined when calling uploadFile.');
}
if (requestParameters.file === null || requestParameters.file === undefined) {
throw new runtime.RequiredError('file', 'Required parameter requestParameters.file was null or undefined when calling uploadFile.');
}
const queryParameters = {};
if (requestParameters.metadata !== undefined) {
queryParameters['metadata'] = requestParameters.metadata;
}
const headerParameters = {};
if (this.configuration && this.configuration.apiKey) {
headerParameters["Api-Key"] = this.configuration.apiKey("Api-Key"); // ApiKeyAuth authentication
}
const consumes = [
{ contentType: 'multipart/form-data' },
];
// @ts-ignore: canConsumeForm may be unused
const canConsumeForm = runtime.canConsumeForm(consumes);
let formParams;
let useForm = false;
// use FormData to transmit files using content-type "multipart/form-data"
useForm = canConsumeForm;
if (useForm) {
formParams = new FormData();
}
else {
formParams = new URLSearchParams();
}
if (requestParameters.file !== undefined) {
formParams.append('file', requestParameters.file);
}
const response = await this.request({
path: `/files/{assistant_name}`.replace(`{${"assistant_name"}}`, encodeURIComponent(String(requestParameters.assistantName))),
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: formParams,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.AssistantFileModelFromJSON)(jsonValue));
}
/**
* Upload a file to the specified assistant. For guidance and examples, see [Manage files](https://docs.pinecone.io/guides/assistant/manage-files#upload-a-local-file).
* Upload file to assistant
*/
async uploadFile(requestParameters, initOverrides) {
const response = await this.uploadFileRaw(requestParameters, initOverrides);
return await response.value();
}
}
exports.ManageAssistantsApi = ManageAssistantsApi;
/**
* @export
*/
exports.DescribeFileIncludeUrlEnum = {
True: 'true',
False: 'false'
};
//# sourceMappingURL=ManageAssistantsApi.js.map
;