본문으로 건너뛰기

솔방울 벡터 스토어

PineconeVector 클래스는 다음에 대한 인터페이스를 제공합니다.Pinecone의 벡터 데이터베이스입니다. 하이브리드 검색, 메타데이터 필터링, 네임스페이스 관리와 같은 기능을 갖춘 실시간 벡터 검색을 제공합니다.

생성자 옵션
생성자 옵션에 대한 직접 링크

생성자는 모든 것을 허용합니다.Pinecone configuration options plus Mastra-specific fields.

id:

string
이 벡터 저장소 인스턴스의 고유 식별자

apiKey:

string
Pinecone API 키

controllerHostUrl?:

string
사용자 지정 Pinecone 컨트롤러 호스트 URL

additionalHeaders?:

Record<string, string>
요청에 포함할 추가 HTTP 헤더

sourceTag?:

string
요청 추적용 소스 태그

cloud?:

'aws' | 'gcp' | 'azure'
= aws
새 인덱스를 생성할 Cloud Provider

region?:

string
= us-east-1
새 인덱스를 생성할 리전

행동 양식
행동 양식에 대한 직접 링크

createIndex()
createindex에 대한 직접 링크

indexName:

string
생성할 인덱스의 이름

dimension:

number
벡터 차원(임베딩 Model과 일치해야 함)

metric?:

'cosine' | 'euclidean' | 'dotproduct'
= cosine
유사도 검색에 사용할 거리 측정 방식입니다. 하이브리드 검색을 사용할 계획이라면 'dotproduct'를 사용하세요.

upsert()
upsert에 대한 직접 링크

indexName:

string
Pinecone 인덱스의 이름

vectors:

number[][]
밀집 임베딩 벡터 배열

sparseVectors?:

{ indices: number[], values: number[] }[]
하이브리드 검색용 희소 벡터 배열입니다. 각 벡터의 indices 배열과 values 배열은 서로 일치해야 합니다.

metadata?:

Record<string, any>[]
각 벡터의 메타데이터

ids?:

string[]
선택적 벡터 ID(제공하지 않으면 자동 생성)

namespace?:

string
벡터를 저장할 선택적 네임스페이스입니다. 서로 다른 네임스페이스의 벡터는 상호 격리됩니다.

query()
query에 대한 직접 링크

indexName:

string
쿼리할 인덱스의 이름

queryVector:

number[]
유사한 벡터를 찾기 위한 밀집 쿼리 벡터

sparseVector?:

{ indices: number[], values: number[] }
하이브리드 검색용 선택적 희소 벡터입니다. indices 배열과 values 배열이 서로 일치해야 합니다.

topK?:

number
= 10
반환할 결과 수

filter?:

Record<string, any>
쿼리용 메타데이터 필터

includeVector?:

boolean
= false
결과에 벡터를 포함할지 여부

namespace?:

string
벡터를 쿼리할 선택적 네임스페이스입니다. 지정한 네임스페이스의 결과만 반환합니다.

listIndexes()
listindexes에 대한 직접 링크

인덱스 이름의 배열을 문자열로 반환합니다.

describeIndex()
describeindex에 대한 직접 링크

indexName:

string
설명을 조회할 인덱스의 이름

보고:

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

deleteIndex()
deleteindex에 대한 직접 링크

indexName:

string
삭제할 인덱스의 이름

updateVector()
updatevector에 대한 직접 링크

ID 또는 메타데이터 필터를 기준으로 단일 벡터를 업데이트합니다. id 또는 filter 중 하나만 제공해야 합니다.

indexName:

string
벡터가 포함된 인덱스의 이름

id?:

string
업데이트할 벡터의 ID(filter와 함께 사용할 수 없음)

filter?:

Record<string, any>
업데이트할 벡터를 식별하는 메타데이터 필터(id와 함께 사용할 수 없음)

namespace?:

string
업데이트 작업을 위한 선택적 네임스페이스

update:

object
업데이트 매개변수

update.vector?:

number[]
업데이트할 새 벡터 값

update.metadata?:

Record<string, any>
업데이트할 새 메타데이터

deleteVector()
deletevector에 대한 직접 링크

indexName:

string
벡터가 포함된 인덱스의 이름

id:

string
삭제할 벡터의 ID

deleteVectors()
deletevectors에 대한 직접 링크

ID 또는 메타데이터 필터를 기준으로 여러 벡터를 삭제합니다. ids 또는 filter 중 하나만 제공해야 합니다.

indexName:

string
삭제할 벡터가 포함된 인덱스의 이름

ids?:

string[]
삭제할 벡터 ID 배열(filter와 함께 사용할 수 없음)

filter?:

Record<string, any>
삭제할 벡터를 식별하는 메타데이터 필터(ids와 함께 사용할 수 없음)

namespace?:

string
삭제 작업을 위한 선택적 네임스페이스

응답 유형
응답 유형에 대한 직접 링크

쿼리 결과는 다음 형식으로 반환됩니다.

interface QueryResult {
id: string
score: number
metadata: Record<string, any>
vector?: number[] // Only included if includeVector is true
}

오류 처리
오류 처리에 대한 직접 링크

상점에서는 포착할 수 있는 입력된 오류를 발생시킵니다.

try {
await store.query({
indexName: 'index_name',
queryVector: queryVector,
})
} catch (error) {
if (error instanceof VectorStoreError) {
console.log(error.code) // 'connection_failed' | 'invalid_dimension' | etc
console.log(error.details) // Additional error context
}
}

환경변수
환경변수에 대한 직접 링크

필수 환경 변수:

  • PINECONE_API_KEY: 귀하의 Pinecone API 키

Pinecone은 조밀한 벡터와 희소한 벡터를 결합하여 하이브리드 검색을 지원합니다. 하이브리드 검색을 사용하려면 다음 안내를 따르세요.

  1. 다음을 사용하여 색인을 생성합니다.metric: 'dotproduct'
  2. upsert 중에 다음을 사용하여 희소 벡터를 제공합니다.sparseVectors parameter
  3. 쿼리 중에 다음을 사용하여 희소 벡터를 제공하십시오.sparseVector parameter