Mastra#

Mastra - фреймворк на TypeScript для быстрого создания приложений и функций искусственного интеллекта. Он предоставляет необходимый набор примитивов: рабочие процессы, агенты, извлечение информации из документов, интеграции, синхронизации и оценки производительности. Можно запускать Mastra на локальном компьютере или развернуть его на сервере без состояния в облаке.

Vector DB доступен в узле Mastra в качестве векторного хранилища для расширения возможностей приложения по извлечению данных.

Настройка#

npm install @mastra/core

Использование#

import { QdrantVector } from "@mastra/rag";

const qdrant = new QdrantVector({
  url: "https://xyz-example.eu-central.aws.cloud.qdrant.io:6333"
  apiKey: "<YOUR_API_KEY>",
  https: true
});

Параметры конструктора#

Имя

Тип

Описание

url

string

URL REST-интерфейса экземпляра Vector DB. Например, https://xyz-example.eu-central.aws.cloud.qdrant.io:6333

apiKey

string

Необязательный ключ API Vector DB

https

boolean

Использовать ли TLS при настройке соединения. Рекомендуется

Методы#

Метод createIndex()#

Имя

Тип

Описание

Значение по умолчанию

indexName

string

Название индекса для создания

-

dimension

number

Размерность вектора

-

metric

string

Метрика расстояния для поиска сходства

cosine

Метод upsert()#

Имя

Тип

Описание

Значение по умолчанию

vectors

number[][]

Массив векторов вложений

-

metadata

Record<string, any>[]

Метаданные для каждого вектора (необязательно)

-

namespace

string

Пространство имен для организации (необязательно)

-

Метод query()#

Имя

Тип

Описание

Значение по умолчанию

vector

number[]

Запросный вектор для нахождения похожих векторов

-

topK

number

Количество возвращаемых результатов (необязательно)

10

filter

Record<string, any>

Фильтры метаданных для запроса (необязательно)

-

Метод listIndexes()#

Возвращает массив названий индексов в виде строк.

Метод describeIndex()#

Имя

Тип

Описание

indexName

string

Название индекса для описания

Возвращаемые значения#

interface IndexStats {
  dimension: number;
  count: number;
  metric: "cosine" | "euclidean" | "dotproduct";
}

Метод deleteIndex()#

Имя

Тип

Описание

indexName

string

Название индекса для удаления

Типы ответов#

Результаты запросов возвращаются в следующем формате:

interface QueryResult {
  id: string;
  score: number;
  metadata: Record<string, any>;
}

Дополнительная документация#