@lad-tech/gptzator-sdk
v1.2.1
Published
Gptzator sdk
Readme
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>
Получить данные текущего пользователя.
@throwsApiErrorпри сетевых ошибках или недоступности сервера.loginUser(email: string, password: string): Promise<{ user: TUser, token: string, refreshToken?: string }>
Авторизация пользователя. Устанавливает токены в клиент.
@throwsApiErrorпри неверных данных или отсутствии токена.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при сетевой ошибке.
2. AppsApi
Работа с приложениями.
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 шаблона.
3. ProjectsApi
Работа с проектами.
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
4. ThreadsApi
Работа с тредами (чатами).
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.
5. AssistantsApi
Работа с ассистентами.
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.
6. ApiTemplatesApi
Работа с шаблонами 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.
7. FilesApi
Работа с файлами.
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.
8. ModelsApi
Работа с моделями.
getModels(): Promise<TModel[]>
Получение списка моделей
@throwsApiError.getActiveModels(): Promise<TModel[]>
Получение списка активных моделей
@throwsApiError.getLlmModels(): Promise<TLlmModel[]>
Получение списка LLM моделей
@throwsApiError.getEmbeddingModels(): Promise<TEmbeddingModel[]>
Получение embedding-моделей
@throwsApiError.
9. InvitesApi
Работа с инвайтами.
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.
10. SourcesApi
Работа с источниками данных.
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.
11. SubscribesApi
Работа с подписками.
getSubscribes(): Promise<TSubscribeDTO>
Получение списка подписок
@throwsApiError.getProducts(): Promise<TProductDTO>
Получение списка продуктов
@throwsApiError.getSubscribeUrl( subscribeId: string ): Promise<{ uri: string }>
Получение ссылки для подписки
@throwsApiError.applyCoupon(params: { couponCode: string }): Promise<{ message?: string }>
Применение купона
@throwsApiError.
12. ThreadAssistantApi
Работа с ассистентами в тредах.
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.
13. VaultsApi
Работа с хранилищами.
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.
14. WorkspacesApi
Работа с рабочими пространствами.
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.
