} from "@volcengine/tos-sdk";
const accessKeyId = process.env["TOS_ACCESS_KEY"] as string;
const accessKeySecret = process.env["TOS_SECRET_KEY"] as string;
const region = 'Provide your region';
const endpoint = 'Provide your vector endpoint';
const vectorBucketName = 'Provide your vector bucket name';
const accountId = process.env["TOS_ACCOUNT_ID"];
const client = new TosVectorsClient({
function handleError(error: Error) {
if (error instanceof TosClientError) {
console.log("Client Error:");
console.log(" Message:", error.message);
console.log(" Stack:", error.stack);
} else if (error instanceof TosServerError) {
console.log("Server Error:");
console.log(" Request ID:", error.requestId);
console.log(" Status Code:", error.statusCode);
console.log(" Code:", error.code);
console.log(" Message:", error.message);
console.log(" Headers:", error.headers);
console.log("Unexpected Error:");
console.log(" Message:", error.message);
const indexName = `example-index-${Date.now()}`;
const metadataConfiguration = {
nonFilterableMetadataKeys: ["timestamp", "source"],
console.log(`开始创建向量索引: ${indexName} ...`);
const createResult = await client.createIndex({
dataType: DataType.DataTypeFloat32,
distanceMetric: DistanceMetricType.DistanceMetricEuclidean,
console.log("CreateIndex Request Succeeded:");
console.log(" Request ID:", createResult.requestId);
console.log(" Status Code:", createResult.statusCode);
console.log(" Headers:", createResult.headers);
console.log(" Business Data (CreateIndex):", createResult.data);
console.log("开始查询刚创建的向量索引详情...");
const getResult = await client.getIndex({
console.log("GetIndex Request Succeeded:");
console.log(" Request ID:", getResult.requestId);
console.log(" Status Code:", getResult.statusCode);
console.log(" Headers:", getResult.headers);
const index = getResult.data.index;
console.log(" Index Detail:");
console.log(` - Index Name: ${index.indexName}`);
console.log(` - Data Type: ${index.dataType}`);
console.log(` - Dimension: ${index.dimension}`);
console.log(` - Distance Metric: ${index.distanceMetric}`);
console.log(` - Creation Time: ${index.creationTime}`);
console.log(` - Index TRN: ${index.indexTrn}`);
console.log(` - Vector Bucket Name: ${index.vectorBucketName}`);
index.metadataConfiguration &&
index.metadataConfiguration.nonFilterableMetadataKeys &&
index.metadataConfiguration.nonFilterableMetadataKeys.length > 0
" - Non-filterable Metadata Keys:",
index.metadataConfiguration.nonFilterableMetadataKeys.join(", "),
console.log(" - Non-filterable Metadata Keys: <none>");