Кратко: этот SDK — набор TypeScript-классов для удобной работы с REST API платформы GPTZATOR.
README служит документацией для пользователя пакета.
Gptzator API SDK — это официальная клиентская библиотека для взаимодействия с платформой Gptzator AI. Библиотека предоставляет удобный интерфейс для работы со всеми возможностями платформы через JavaScript/TypeScript, включая управление ассистентами, проектами, файлами и другими сущностями платформы.
npm install @lad-tech/gptzator-sdk
# или
yarn add @lad-tech/gptzator-sdkВ этом SDK авторизация реализована через JWT-токены, которые прокидываются в заголовок Authorization: Bearer <token>.
Для этого в GptzatorClient предусмотрены методы управления токенами:
- Aвтоматическое сохранение token внутри инстанса client при вызове loginUser или signupUser внутри UserApi
import { GptzatorClient } from "@lad-tech/gptzator-sdk";
const client = new GptzatorClient("https://your-api.com");
// автоматическое сохранение token внутри инстанса cleint при вызове
client.user.loginUser("email", "password")
// или
client.user.signupUser("email", "password", "policy", "phone")- Или установка токенов через setTokens
import { GptzatorClient } from "@lad-tech/gptzator-sdk";
const client = new GptzatorClient("https://your-api.com");
// Сохранить токены (например, после логина)
client.setTokens({
accessToken: "ACCESS_TOKEN",
refreshToken: "REFRESH_TOKEN", // опционально
});
// Очистить токены (например, при logout)
client.clearTokens();После сохранения token одним из указанных способов все запросы автоматически будут содержать заголовок:
Authorization: `Bearer ACCESS_TOKEN`При инициализации инстанса client можно изменить место хранения токена(например, на localStorage). Для этого необходимо использовать параметр tokenStorage
import { GptzatorClient } from "@lad-tech/gptzator-sdk";
const client = new GptzatorClient("https://your-api.com", tokenStorage); // type TokenStorageОписание классов API, методам, параметрам, возвращаемым значениям и возможным ошибкам.
Все методы используют единый стиль обработки ошибок через apiCall(fn, context) и выбрасывают ApiError.
Работа с пользователями.
-
getUser(): Promise<TUser>
Получить данные текущего пользователя.
@throwsApiErrorпри сетевых ошибках или недоступности сервера. -
loginUser(email: string, password: string): Promise<{ user: TUser, token: string, refreshToken?: string }>
Авторизация пользователя. Устанавливает токены в клиент.
@throwsApiErrorпри неверных данных или отсутствии токена.loginWithAD(email: string, password: string): Promise<{ token: string }>
Авторизация пользователя через backend-аутентификацию с поддержкой локальных и директорных (AD/LDAP) учётных записей. Backend самостоятельно определяет тип пользователя:- локальный пользователь проходит обычную локальную авторизацию;
- директорный пользователь проходит JIT-проверку через сервис identity-ingest с делегированной проверкой учётных данных в Active Directory / LDAP. Устанавливает токен доступа в клиент.
@throws
ApiErrorпри неверных данных или отсутствии токена. -
signupUser(params): Promise<{ user: TUser, token: string, refreshToken?: string }>гдеparams: { email: string; password: string; policy: boolean; phone: string; promoCode?: string; organizationInviteToken?: string; }Регистрация нового пользователя.
@throwsApiErrorпри сетевой ошибке или отсутствии токена в ответе. -
signupDemoUser(): Promise<TUser>
Регистрация демо-пользователя.
@throwsApiErrorпри ошибках сети. -
logoutUser(): Promise<void>
Выход из системы и сброс токенов.
@throwsApiErrorпри сетевой ошибке. -
changePassword(oldPassword, newPassword): Promise<any>
Смена пароля.
@throwsApiErrorпри сетевой ошибке или неверных данных. -
forgotPassword(email: string): Promise<any>
Запрос на восстановление пароля.
@throwsApiErrorпри сетевой ошибке или неверных данных. -
resetPassword(token: string, password: string): Promise<TUser>
Сброс пароля по токену.
@throwsApiErrorпри сетевой ошибке или неверном токене. -
updateDefaultThreadModel(userId, modelId): Promise<TUser>
Обновление модели чата по умолчанию.
@throwsApiErrorпри сетевой ошибке или неверных данных. -
setOnboarded(userId, pageName): Promise<TUser>
Пометить страницу онбординга пройденной.
@throwsApiErrorпри сетевой ошибке. -
uploadAvatar(formData: FormData): Promise<TUserAvatar>
Загрузка аватара.
@throwsApiErrorпри ошибках загрузки или сети. -
deleteAvatar(fileId: string): Promise<any>
Удаление аватара.
@throwsApiErrorпри сетевой ошибке. -
updateFirstAndMiddleName(userId: string, firstName: string, lastName: string): Promise<TUser>
Обновление имени и фамилии.
@throwsApiErrorпри сетевой ошибке. -
setLocale(locale: string): Promise<void>
Установка локали.
@throwsApiErrorпри сетевой ошибке.
Работа с приложениями.
-
getApps(params: {tag?: string; search?: string; page: number; author?: string; limit?: number}): Promise<TAppsDTO>
Список приложений.
@throwsApiErrorпри сетевой ошибке. -
getAppById(id: string): Promise<TApp>
Приложение по ID.
@throwsApiErrorпри сетевой ошибке. -
createApp(author: string, name: string): Promise<TApp>
Создание нового приложения.
@throwsApiErrorпри сетевой ошибке или неверных данных. -
updateApp(id: string, data: any): Promise<TApp>
Обновление приложения.
@throwsApiErrorпри сетевой ошибке или неверных данных для обновления. -
deleteApp(id: string): Promise<TAppsDTO>
Удаление приложения.
@throwsApiErrorпри сетевой ошибке. -
getAppById(id: string): Promise<TApp>
Получение приложения по ID.
@throwsApiErrorпри сетевой ошибке. -
getOauthClients(redirectUri: string): Promise<TOauthClient[]>
Получение OAuth клиентов для приложения.
@throwsApiErrorпри сетевой ошибке. -
logoutOauthClient(clientId: string): Promise<void>
Логаут OAuth клиента.
@throwsApiErrorпри сетевой ошибке или неверном clientId. -
getAppsMenu(): Promise<TAppsMenu[]>
Получение меню навыков.
@throwsApiErrorпри сетевой ошибке. -
getFavouriteApps(): Promise<TApp[]>
Получение избранных навыков.
@throwsApiErrorпри сетевой ошибке. -
updateIsFavourite(id: string, isFavourite: boolean): Promise<void>
Обновление статуса избранного навыка.
@throwsApiErrorпри сетевой ошибке или неверном id навыка. -
getTags(limit: number): Promise<TTagsDTO>
Получение тегов приложений.
@throwsApiErrorпри сетевой ошибке. -
getSettingsTemplates(params: {appId: string; search?: string; page: number; limit?: number}): Promise<TSettingsTemplateDTO>
Получение шаблонов настроек приложения.
@throwsApiErrorпри сетевой ошибке. -
activateTemplate(id: string): Promise<TSettingsTemplate>
Активация шаблона настроек.
@throwsApiErrorпри сетевой ошибке или неверном id шаблона. -
createSettingsTemplate(data: { app: string; name: string; values?: Record<string, any>; isDefault: boolean; isPrivate: boolean; isActive: boolean;}): Promise<TSettingsTemplate>
Создание шаблона настроек.
@throwsApiErrorпри сетевой ошибке или неверные данные для создания шаблона. -
updateSettingsTemplate(id: string, data: any): Promise<TSettingsTemplate>
Обновление шаблона настроек.
@throwsApiErrorпри сетевой ошибке или неверные данные для редактрирования шаблона. -
deleteSettingsTemplate(id: string): Promise<void>
Удаление шаблона настроек.
@throwsApiErrorпри сетевой ошибке или неверном id шаблона.
Работа с проектами.
-
getProjects(params?: { search?: string; page: number, limit?: number }): Promise<TProjectsDTO>
Получение списка проектов с фильтром и пагинацией.
@throwsApiError. -
getAppProjects(appId: string): Promise<TProjectsDTO>
Получение проектов конкретного навыка.
@throwsApiError. -
getProject(id: string): Promise<TProjectDTO>
Получение проекта по ID.
@throwsApiError. -
createProject(params: { idea: string; applicationId: string; isDemo?: boolean; isTest?: boolean; }): Promise<TProjectDTO>
Создание нового проекта.
@throwsApiError. -
updateProjectActions(projectId: string, data: any): Promise<TProjectDTO>
Обновление действий проекта.
@throwsApiError. -
generateArtefact(projectId: string, hasBlocks: boolean): Promise<TArtefact<any>[]>
Генерация артефактов проекта.
@throwsApiError. -
regenerateArtefact( projectId: string, artefactId: string, comment?: string ): Promise<TArtefact<any>[]>
Регенерация артефакта проекта.
@throwsApiError. -
deleteProject(id: string): Promise<void>
Удаление проекта.
@throwsApiError. -
callApp(applicationId: string, idea: string, options?: {hasBlocks?: boolean; pollIntervalMs?: number; timeoutMs?: number; isDemo?: boolean; isTest?: boolean}): Promise<TProjectDTO>
Полный цикл создания проекта и генерации артефактов через ассистента.
ИспользуетapiCall+handleApiErrorвнутриcreateProject,generateArtefactиgetProject.
@throwsApiErrorпри:- Ошибках создания проекта
- Ошибках генерации артефактов
- Ошибках получения проекта
- Превышении таймаута
- Наличии
lastGenerationErrorилиproject.error
Работа с тредами (чатами).
-
getThreads(params?: {search?: string; limit?: string; page: number}): Promise<TThreadsDTO>
Получить список тредов с пагинацией и поиском.
@throwsApiError. -
getThreadById(id: string): Promise<TThreadDTO>
Получить тред по его идентификатору.
@throwsApiError. -
createThread(data: { id: string; title: string; vaultIds?: string[]; fileIds?: string[] }): Promise<TThreadDTO>
Создать новый тред.
@throwsApiError. -
deleteThread(id: string): Promise<TThreadDTO>
Удалить тред.
@throwsApiError. -
updateThreadVault(data: { id: string; vaultIds: string[] }): Promise<TThreadDTO>
Обновить список хранилищ (vaults), привязанных к треду.
@throwsApiError. -
getMessages(params: { threadId: string; page?: number, limit?: number }): Promise<TMessagesDTO>
Получить список сообщений в треде.
@throwsApiError. -
getGenerationTypes(): Promise<TGenerationTypeDTO>
Получить список типов генерации.
@throwsApiError. -
updateGenerationType(data: { threadId: string; typeId: string }): Promise<TThreadDTO>
Обновить тип генерации для треда.
@throwsApiError. -
updateThreadModel(data: { threadId: string; modelId: string }): Promise<TThreadDTO>
Обновить модель для треда.
@throwsApiError. -
createMessage(data: { text: string; threadId: string }): Promise<TMessage>
Создать сообщение в треде.
@throwsApiError. -
editMessage(data: { content: string; messageId: string; threadId: string }): Promise<TMessage>
Изменить сообщение в треде.
@throwsApiError. -
deleteMessage(data: { messageId: string; threadId: string }): Promise<TMessage>
Удалить сообщение из треда.
@throwsApiError. -
regenerateMessage(data: { messageId: string; threadId: string }): Promise<TMessage>
Перегенерировать сообщение.
@throwsApiError. -
attachFilesToThread(data: { threadId: string; fileIds: string[] }): Promise<TMessage>
Прикрепить файлы к треду.
@throwsApiError.
Работа с ассистентами.
-
getAssistants(search?: string, limit?: number): Promise<{ assistants: TAssistant[] }>
Получение списка ассистентов
@throwsApiError. -
getAssistantById(id: string): Promise<TAssistant>
Создание ассистента
@throwsApiError. -
createAssistant(data: TCreateAssistantRequest): Promise<TAssistant>
Получение ассистента по ID
@throwsApiError. -
updateAssistant(id: string, data: TCreateAssistantRequest): Promise<TAssistant>
Обновление ассистента
@throwsApiError. -
updateAssistantContext(id: string, data: TUpdateAssistantContextRequest): Promise<TAssistant>
Обновление контекста ассистента
@throwsApiError. -
uploadAssistantImage(formData: FormData): Promise<any>
Загрузка изображения ассистента
@throwsApiError. -
deleteAssistant(id: string): Promise<TAssistant>
Удаление ассистента
@throwsApiError.
Работа с шаблонами API.
-
getApiTemplates(params: { search?: string; page: number; limit?: number }): Promise<TApiTemplatesDTO>
Получение списка API-шаблонов
@throwsApiError. -
getApiTemplate(id: string): Promise<TApiTemplate>
Получение API-шаблона по ID @throwsApiError. -
getApiTemplate(id: string): Promise<TApiTemplate>
Получение API-шаблона по ID @throwsApiError.
Работа с файлами.
-
uploadFile(formData: FormData): Promise<any>
Загрузка файла.
@throwsApiError. -
getFile(id: string): Promise<TFile>
Получение файла по ID
@throwsApiError. -
getFilesByIds(ids: string[]): Promise<TFileDTO>
Получение списка файлов по ID
@throwsApiError. -
deleteFile(fileId: string): Promise<any>
Удаление файла
@throwsApiError. -
uploadThreadFile(formData: FormData): Promise<any>
Загрузка файла для треда
@throwsApiError. -
deleteThreadFile(fileId: string): Promise<any>
Удаление файла из треда
@throwsApiError.
Работа с моделями.
-
getModels(): Promise<TModel[]>
Получение списка моделей
@throwsApiError. -
getActiveModels(): Promise<TModel[]>
Получение списка активных моделей
@throwsApiError. -
getLlmModels(): Promise<TLlmModel[]>
Получение списка LLM моделей
@throwsApiError. -
getEmbeddingModels(): Promise<TEmbeddingModel[]>
Получение embedding-моделей
@throwsApiError.
Работа с инвайтами.
-
getInvitesList(params: { search?: string; page: number; limit?: number }): Promise<TInvitesDTO>
Получение списка приглашений
@throwsApiError. -
getInvite( organizationInviteToken: string ): Promise<Pick<TInvite, 'organization' | 'email'>>
Получение конкретного приглашения по токену
@throwsApiError. -
createInvite(email: string): Promise<TInvite>
Создание приглашения
@throwsApiError. -
deleteInvite(inviteId: string): Promise<TInvite>
Удаление приглашения
@throwsApiError.
Работа с источниками данных.
-
getSources(params: { ids?: string[]; search?: string, limit?: number }): Promise<TSourcesDTO>
Получение списка источников
@throwsApiError. -
uploadFileSource(formData: FormData): Promise<TFileSource>
Загрузка файла источника
@throwsApiError. -
createSource(params: { workspaceId: string; fileId: string; parentSpaceId?: string }): Promise<any>
Создание источника в рабочем пространстве
@throwsApiError. -
updateSource(params: { id: string; name: string; sesctiption?: string }): Promise<{ doc: TSourceDTO }>
Обновление источника
@throwsApiError. -
deleteSource(params: { workspaceId: string; sourceId: string }): Promise<any>
Удаление источника
@throwsApiError.
Работа с подписками.
-
getSubscribes(): Promise<TSubscribeDTO>
Получение списка подписок
@throwsApiError. -
getProducts(): Promise<TProductDTO>
Получение списка продуктов
@throwsApiError. -
getSubscribeUrl( subscribeId: string ): Promise<{ uri: string }>
Получение ссылки для подписки
@throwsApiError. -
applyCoupon(params: { couponCode: string }): Promise<{ message?: string }>
Применение купона
@throwsApiError.
Работа с ассистентами в тредах.
-
getThreadsByWorkspaceId(params: { id: string; page: number; search?: string }): Promise<TThreadsAssistantDTO>
Получение тредов по workspaceId
@throwsApiError. -
getThreadsByAssistantId(params: { id: string; page: number; search?: string, limit?: number }): Promise<TThreadsAssistantDTO>
Получение тредов по assistantId
@throwsApiError. -
createThreadByWorkspaceId(params: { id: string; title: string }): Promise<TThreadAssistantDTO>
Создание треда в workspace
@throwsApiError. -
createThreadByAssistantId(params: { id: string; title: string; modeId?: string }): Promise<TThreadAssistantDTO>
Создание треда для ассистента
@throwsApiError. -
updateThreadAssistant( thread: TThreadAssistantDTO ): Promise<TThreadAssistantDTO>
Обновление треда ассистента
@throwsApiError. -
getThreadAssistantById(id: string): Promise<TThreadAssistantDTO>
Получение треда по ID
@throwsApiError. -
getMessagesAssistant( params: {threadId: string; page?: number, limit?: number }): Promise<IGetMessagesResponse>
Получение сообщений ассистента
@throwsApiError. -
createMessageAssistant(params: { text: string; threadId: string }): Promise<TMessage>
Создание сообщения
@throwsApiError. -
editMessageAssistant(params: { threadId: string; messageId: string; content: string }): Promise<TMessage>
Редактирование сообщения
@throwsApiError. -
deleteMessageAssistant(params: { threadId: string; messageId: string }): Promise<TMessage>
Удаление сообщения
@throwsApiError. -
regenerateMessageAssistant(params: { threadId: string; messageId: string }): Promise<TMessage>
Регенерация сообщения
@throwsApiError. -
deleteThreadAssistant(params: { threadId: string }): Promise<TMessage>
Удаление треда
@throwsApiError. -
editThreadMode(id: string, modeId: string): Promise<any>
Редактирование режима треда
@throwsApiError. -
getThreadStream(threadId: string): EventSource
Получение EventSource для стриминга сообщений треда.
@throwsApiError.
Работа с хранилищами.
-
getVaults(params: { tag?: string; search?: string; page: number; vaultsPerPage?: number }): Promise<TVaultsDTO>
Получение списка Vaults
@throwsApiError. -
getVault(id: string): Promise<TVault>
Получение Vault по ID
@throwsApiError. -
getVaultsByIds(ids: string[]): Promise<TVaultsDTO>
Получение Vaults по списку ID
@throwsApiError. -
getFavouriteVaults(): Promise<TVault[]>
Получение избранных Vaults пользователя
@throwsApiError. -
updateIsFavouriteVault(params: { id: string; isFavourite: boolean }): Promise<void>
Добавление/удаление Vault из избранного
@throwsApiError. -
getVaultTags(): Promise<TVaultTagsDTO>
Получение тегов Vaults
@throwsApiError. -
createVault(data: TCreateVaultForm): Promise<TVault>
Создание Vault
@throwsApiError. -
editVault(data: TCreateVaultForm): Promise<TVault>
Редактирование Vault
@throwsApiError. -
deleteVault(id: string): Promise<TVaultsDTO>
Удаление Vault
@throwsApiError.
Работа с рабочими пространствами.
-
getWorkspaces(params?: { search?: string, limit?: number }): Promise<{ workspaces: TWorkspace[] }>
Получить список рабочих пространств
@throwsApiError. -
createWorkspace(data: { name: string; description?: string; instructions?: string }): Promise<TWorkspace>
Создать рабочее пространство
@throwsApiError. -
updateWorkspace( id: string, data: { name: string; description: string; instructions?: string }): Promise<TWorkspace>
Обновить рабочее пространство
@throwsApiError. -
deleteWorkspace(id: string): Promise<TWorkspace>
Удалить рабочее пространство
@throwsApiError. -
getWorkspaceById(id: string): Promise<TWorkspace>
Получить рабочее пространство по ID
@throwsApiError. -
getWorkspaceSourcesTree(id: string): Promise<TWorkspaceTree>
Получить дерево источников и вложенных пространств
@throwsApiError.