Skip to content

lad-tech/gptzator-sdk

Repository files navigation

GPTZATOR SDK

Кратко: этот 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)

В этом 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.

1. UserApi

Работа с пользователями.

  • getUser(): Promise<TUser>
    Получить данные текущего пользователя.
    @throws ApiError при сетевых ошибках или недоступности сервера.

  • loginUser(email: string, password: string): Promise<{ user: TUser, token: string, refreshToken?: string }>
    Авторизация пользователя. Устанавливает токены в клиент.
    @throws ApiError при неверных данных или отсутствии токена.

    • 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; } Регистрация нового пользователя.
    @throws ApiError при сетевой ошибке или отсутствии токена в ответе.

  • signupDemoUser(): Promise<TUser>
    Регистрация демо-пользователя.
    @throws ApiError при ошибках сети.

  • logoutUser(): Promise<void>
    Выход из системы и сброс токенов.
    @throws ApiError при сетевой ошибке.

  • changePassword(oldPassword, newPassword): Promise<any>
    Смена пароля.
    @throws ApiError при сетевой ошибке или неверных данных.

  • forgotPassword(email: string): Promise<any>
    Запрос на восстановление пароля.
    @throws ApiError при сетевой ошибке или неверных данных.

  • resetPassword(token: string, password: string): Promise<TUser>
    Сброс пароля по токену.
    @throws ApiError при сетевой ошибке или неверном токене.

  • updateDefaultThreadModel(userId, modelId): Promise<TUser>
    Обновление модели чата по умолчанию.
    @throws ApiError при сетевой ошибке или неверных данных.

  • setOnboarded(userId, pageName): Promise<TUser>
    Пометить страницу онбординга пройденной.
    @throws ApiError при сетевой ошибке.

  • uploadAvatar(formData: FormData): Promise<TUserAvatar>
    Загрузка аватара.
    @throws ApiError при ошибках загрузки или сети.

  • deleteAvatar(fileId: string): Promise<any>
    Удаление аватара.
    @throws ApiError при сетевой ошибке.

  • updateFirstAndMiddleName(userId: string, firstName: string, lastName: string): Promise<TUser>
    Обновление имени и фамилии.
    @throws ApiError при сетевой ошибке.

  • setLocale(locale: string): Promise<void>
    Установка локали.
    @throws ApiError при сетевой ошибке.


К содержанию

2. AppsApi

Работа с приложениями.

  • getApps(params: {tag?: string; search?: string; page: number; author?: string; limit?: number}): Promise<TAppsDTO>
    Список приложений.
    @throws ApiError при сетевой ошибке.

  • getAppById(id: string): Promise<TApp>
    Приложение по ID.
    @throws ApiError при сетевой ошибке.

  • createApp(author: string, name: string): Promise<TApp>
    Создание нового приложения.
    @throws ApiError при сетевой ошибке или неверных данных.

  • updateApp(id: string, data: any): Promise<TApp>
    Обновление приложения.
    @throws ApiError при сетевой ошибке или неверных данных для обновления.

  • deleteApp(id: string): Promise<TAppsDTO>
    Удаление приложения.
    @throws ApiError при сетевой ошибке.

  • getAppById(id: string): Promise<TApp>
    Получение приложения по ID.
    @throws ApiError при сетевой ошибке.

  • getOauthClients(redirectUri: string): Promise<TOauthClient[]>
    Получение OAuth клиентов для приложения.
    @throws ApiError при сетевой ошибке.

  • logoutOauthClient(clientId: string): Promise<void>
    Логаут OAuth клиента.
    @throws ApiError при сетевой ошибке или неверном clientId.

  • getAppsMenu(): Promise<TAppsMenu[]>
    Получение меню навыков.
    @throws ApiError при сетевой ошибке.

  • getFavouriteApps(): Promise<TApp[]>
    Получение избранных навыков.
    @throws ApiError при сетевой ошибке.

  • updateIsFavourite(id: string, isFavourite: boolean): Promise<void>
    Обновление статуса избранного навыка.
    @throws ApiError при сетевой ошибке или неверном id навыка.

  • getTags(limit: number): Promise<TTagsDTO>
    Получение тегов приложений.
    @throws ApiError при сетевой ошибке.

  • getSettingsTemplates(params: {appId: string; search?: string; page: number; limit?: number}): Promise<TSettingsTemplateDTO>
    Получение шаблонов настроек приложения.
    @throws ApiError при сетевой ошибке.

  • activateTemplate(id: string): Promise<TSettingsTemplate>
    Активация шаблона настроек.
    @throws ApiError при сетевой ошибке или неверном id шаблона.

  • createSettingsTemplate(data: { app: string; name: string; values?: Record<string, any>; isDefault: boolean; isPrivate: boolean; isActive: boolean;}): Promise<TSettingsTemplate>
    Создание шаблона настроек.
    @throws ApiError при сетевой ошибке или неверные данные для создания шаблона.

  • updateSettingsTemplate(id: string, data: any): Promise<TSettingsTemplate>
    Обновление шаблона настроек.
    @throws ApiError при сетевой ошибке или неверные данные для редактрирования шаблона.

  • deleteSettingsTemplate(id: string): Promise<void>
    Удаление шаблона настроек.
    @throws ApiError при сетевой ошибке или неверном id шаблона.


К содержанию

3. ProjectsApi

Работа с проектами.

  • getProjects(params?: { search?: string; page: number, limit?: number }): Promise<TProjectsDTO>
    Получение списка проектов с фильтром и пагинацией.
    @throws ApiError.

  • getAppProjects(appId: string): Promise<TProjectsDTO>
    Получение проектов конкретного навыка.
    @throws ApiError.

  • getProject(id: string): Promise<TProjectDTO>
    Получение проекта по ID.
    @throws ApiError.

  • createProject(params: { idea: string; applicationId: string; isDemo?: boolean; isTest?: boolean; }): Promise<TProjectDTO>
    Создание нового проекта.
    @throws ApiError.

  • updateProjectActions(projectId: string, data: any): Promise<TProjectDTO>
    Обновление действий проекта.
    @throws ApiError.

  • generateArtefact(projectId: string, hasBlocks: boolean): Promise<TArtefact<any>[]>
    Генерация артефактов проекта.
    @throws ApiError.

  • regenerateArtefact( projectId: string, artefactId: string, comment?: string ): Promise<TArtefact<any>[]>
    Регенерация артефакта проекта.
    @throws ApiError.

  • deleteProject(id: string): Promise<void>
    Удаление проекта.
    @throws ApiError.

  • callApp(applicationId: string, idea: string, options?: {hasBlocks?: boolean; pollIntervalMs?: number; timeoutMs?: number; isDemo?: boolean; isTest?: boolean}): Promise<TProjectDTO>
    Полный цикл создания проекта и генерации артефактов через ассистента.
    Использует apiCall + handleApiError внутри createProject, generateArtefact и getProject.
    @throws ApiError при:

    • Ошибках создания проекта
    • Ошибках генерации артефактов
    • Ошибках получения проекта
    • Превышении таймаута
    • Наличии lastGenerationError или project.error

К содержанию

4. ThreadsApi

Работа с тредами (чатами).

  • getThreads(params?: {search?: string; limit?: string; page: number}): Promise<TThreadsDTO>
    Получить список тредов с пагинацией и поиском.
    @throws ApiError.

  • getThreadById(id: string): Promise<TThreadDTO>
    Получить тред по его идентификатору.
    @throws ApiError.

  • createThread(data: { id: string; title: string; vaultIds?: string[]; fileIds?: string[] }): Promise<TThreadDTO>
    Создать новый тред.
    @throws ApiError.

  • deleteThread(id: string): Promise<TThreadDTO>
    Удалить тред.
    @throws ApiError.

  • updateThreadVault(data: { id: string; vaultIds: string[] }): Promise<TThreadDTO>
    Обновить список хранилищ (vaults), привязанных к треду.
    @throws ApiError.

  • getMessages(params: { threadId: string; page?: number, limit?: number }): Promise<TMessagesDTO>
    Получить список сообщений в треде.
    @throws ApiError.

  • getGenerationTypes(): Promise<TGenerationTypeDTO>
    Получить список типов генерации.
    @throws ApiError.

  • updateGenerationType(data: { threadId: string; typeId: string }): Promise<TThreadDTO>
    Обновить тип генерации для треда.
    @throws ApiError.

  • updateThreadModel(data: { threadId: string; modelId: string }): Promise<TThreadDTO>
    Обновить модель для треда.
    @throws ApiError.

  • createMessage(data: { text: string; threadId: string }): Promise<TMessage>
    Создать сообщение в треде.
    @throws ApiError.

  • editMessage(data: { content: string; messageId: string; threadId: string }): Promise<TMessage>
    Изменить сообщение в треде.
    @throws ApiError.

  • deleteMessage(data: { messageId: string; threadId: string }): Promise<TMessage>
    Удалить сообщение из треда.
    @throws ApiError.

  • regenerateMessage(data: { messageId: string; threadId: string }): Promise<TMessage>
    Перегенерировать сообщение.
    @throws ApiError.

  • attachFilesToThread(data: { threadId: string; fileIds: string[] }): Promise<TMessage>
    Прикрепить файлы к треду.
    @throws ApiError.


К содержанию

5. AssistantsApi

Работа с ассистентами.

  • getAssistants(search?: string, limit?: number): Promise<{ assistants: TAssistant[] }>
    Получение списка ассистентов
    @throws ApiError.

  • getAssistantById(id: string): Promise<TAssistant>
    Создание ассистента
    @throws ApiError.

  • createAssistant(data: TCreateAssistantRequest): Promise<TAssistant>
    Получение ассистента по ID
    @throws ApiError.

  • updateAssistant(id: string, data: TCreateAssistantRequest): Promise<TAssistant>
    Обновление ассистента
    @throws ApiError.

  • updateAssistantContext(id: string, data: TUpdateAssistantContextRequest): Promise<TAssistant>
    Обновление контекста ассистента
    @throws ApiError.

  • uploadAssistantImage(formData: FormData): Promise<any>
    Загрузка изображения ассистента
    @throws ApiError.

  • deleteAssistant(id: string): Promise<TAssistant>
    Удаление ассистента
    @throws ApiError.


К содержанию

6. ApiTemplatesApi

Работа с шаблонами API.

  • getApiTemplates(params: { search?: string; page: number; limit?: number }): Promise<TApiTemplatesDTO>
    Получение списка API-шаблонов
    @throws ApiError.

  • getApiTemplate(id: string): Promise<TApiTemplate>
    Получение API-шаблона по ID @throws ApiError.

  • getApiTemplate(id: string): Promise<TApiTemplate>
    Получение API-шаблона по ID @throws ApiError.


К содержанию

7. FilesApi

Работа с файлами.

  • uploadFile(formData: FormData): Promise<any>
    Загрузка файла.
    @throws ApiError.

  • getFile(id: string): Promise<TFile>
    Получение файла по ID
    @throws ApiError.

  • getFilesByIds(ids: string[]): Promise<TFileDTO>
    Получение списка файлов по ID
    @throws ApiError.

  • deleteFile(fileId: string): Promise<any>
    Удаление файла
    @throws ApiError.

  • uploadThreadFile(formData: FormData): Promise<any>
    Загрузка файла для треда
    @throws ApiError.

  • deleteThreadFile(fileId: string): Promise<any>
    Удаление файла из треда
    @throws ApiError.


К содержанию

8. ModelsApi

Работа с моделями.

  • getModels(): Promise<TModel[]>
    Получение списка моделей
    @throws ApiError.

  • getActiveModels(): Promise<TModel[]>
    Получение списка активных моделей
    @throws ApiError.

  • getLlmModels(): Promise<TLlmModel[]>
    Получение списка LLM моделей
    @throws ApiError.

  • getEmbeddingModels(): Promise<TEmbeddingModel[]>
    Получение embedding-моделей
    @throws ApiError.


К содержанию

9. InvitesApi

Работа с инвайтами.

  • getInvitesList(params: { search?: string; page: number; limit?: number }): Promise<TInvitesDTO>
    Получение списка приглашений
    @throws ApiError.

  • getInvite( organizationInviteToken: string ): Promise<Pick<TInvite, 'organization' | 'email'>>
    Получение конкретного приглашения по токену
    @throws ApiError.

  • createInvite(email: string): Promise<TInvite>
    Создание приглашения
    @throws ApiError.

  • deleteInvite(inviteId: string): Promise<TInvite>
    Удаление приглашения
    @throws ApiError.


К содержанию

10. SourcesApi

Работа с источниками данных.

  • getSources(params: { ids?: string[]; search?: string, limit?: number }): Promise<TSourcesDTO>
    Получение списка источников
    @throws ApiError.

  • uploadFileSource(formData: FormData): Promise<TFileSource>
    Загрузка файла источника
    @throws ApiError.

  • createSource(params: { workspaceId: string; fileId: string; parentSpaceId?: string }): Promise<any>
    Создание источника в рабочем пространстве
    @throws ApiError.

  • updateSource(params: { id: string; name: string; sesctiption?: string }): Promise<{ doc: TSourceDTO }>
    Обновление источника
    @throws ApiError.

  • deleteSource(params: { workspaceId: string; sourceId: string }): Promise<any>
    Удаление источника
    @throws ApiError.


К содержанию

11. SubscribesApi

Работа с подписками.

  • getSubscribes(): Promise<TSubscribeDTO>
    Получение списка подписок
    @throws ApiError.

  • getProducts(): Promise<TProductDTO>
    Получение списка продуктов
    @throws ApiError.

  • getSubscribeUrl( subscribeId: string ): Promise<{ uri: string }>
    Получение ссылки для подписки
    @throws ApiError.

  • applyCoupon(params: { couponCode: string }): Promise<{ message?: string }>
    Применение купона
    @throws ApiError.


К содержанию

12. ThreadAssistantApi

Работа с ассистентами в тредах.

  • getThreadsByWorkspaceId(params: { id: string; page: number; search?: string }): Promise<TThreadsAssistantDTO>
    Получение тредов по workspaceId
    @throws ApiError.

  • getThreadsByAssistantId(params: { id: string; page: number; search?: string, limit?: number }): Promise<TThreadsAssistantDTO>
    Получение тредов по assistantId
    @throws ApiError.

  • createThreadByWorkspaceId(params: { id: string; title: string }): Promise<TThreadAssistantDTO>
    Создание треда в workspace
    @throws ApiError.

  • createThreadByAssistantId(params: { id: string; title: string; modeId?: string }): Promise<TThreadAssistantDTO>
    Создание треда для ассистента
    @throws ApiError.

  • updateThreadAssistant( thread: TThreadAssistantDTO ): Promise<TThreadAssistantDTO>
    Обновление треда ассистента
    @throws ApiError.

  • getThreadAssistantById(id: string): Promise<TThreadAssistantDTO>
    Получение треда по ID
    @throws ApiError.

  • getMessagesAssistant( params: {threadId: string; page?: number, limit?: number }): Promise<IGetMessagesResponse>
    Получение сообщений ассистента
    @throws ApiError.

  • createMessageAssistant(params: { text: string; threadId: string }): Promise<TMessage>
    Создание сообщения
    @throws ApiError.

  • editMessageAssistant(params: { threadId: string; messageId: string; content: string }): Promise<TMessage>
    Редактирование сообщения
    @throws ApiError.

  • deleteMessageAssistant(params: { threadId: string; messageId: string }): Promise<TMessage>
    Удаление сообщения
    @throws ApiError.

  • regenerateMessageAssistant(params: { threadId: string; messageId: string }): Promise<TMessage>
    Регенерация сообщения
    @throws ApiError.

  • deleteThreadAssistant(params: { threadId: string }): Promise<TMessage>
    Удаление треда
    @throws ApiError.

  • editThreadMode(id: string, modeId: string): Promise<any>
    Редактирование режима треда
    @throws ApiError.

  • getThreadStream(threadId: string): EventSource
    Получение EventSource для стриминга сообщений треда.
    @throws ApiError.


К содержанию

13. VaultsApi

Работа с хранилищами.

  • getVaults(params: { tag?: string; search?: string; page: number; vaultsPerPage?: number }): Promise<TVaultsDTO>
    Получение списка Vaults
    @throws ApiError.

  • getVault(id: string): Promise<TVault>
    Получение Vault по ID
    @throws ApiError.

  • getVaultsByIds(ids: string[]): Promise<TVaultsDTO>
    Получение Vaults по списку ID
    @throws ApiError.

  • getFavouriteVaults(): Promise<TVault[]>
    Получение избранных Vaults пользователя
    @throws ApiError.

  • updateIsFavouriteVault(params: { id: string; isFavourite: boolean }): Promise<void>
    Добавление/удаление Vault из избранного
    @throws ApiError.

  • getVaultTags(): Promise<TVaultTagsDTO>
    Получение тегов Vaults
    @throws ApiError.

  • createVault(data: TCreateVaultForm): Promise<TVault>
    Создание Vault
    @throws ApiError.

  • editVault(data: TCreateVaultForm): Promise<TVault>
    Редактирование Vault
    @throws ApiError.

  • deleteVault(id: string): Promise<TVaultsDTO>
    Удаление Vault
    @throws ApiError.


К содержанию

14. WorkspacesApi

Работа с рабочими пространствами.

  • getWorkspaces(params?: { search?: string, limit?: number }): Promise<{ workspaces: TWorkspace[] }>
    Получить список рабочих пространств
    @throws ApiError.

  • createWorkspace(data: { name: string; description?: string; instructions?: string }): Promise<TWorkspace>
    Создать рабочее пространство
    @throws ApiError.

  • updateWorkspace( id: string, data: { name: string; description: string; instructions?: string }): Promise<TWorkspace>
    Обновить рабочее пространство
    @throws ApiError.

  • deleteWorkspace(id: string): Promise<TWorkspace>
    Удалить рабочее пространство
    @throws ApiError.

  • getWorkspaceById(id: string): Promise<TWorkspace>
    Получить рабочее пространство по ID
    @throws ApiError.

  • getWorkspaceSourcesTree(id: string): Promise<TWorkspaceTree>
    Получить дерево источников и вложенных пространств
    @throws ApiError.

К содержанию

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •