> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # 솔방울 벡터 스토어 PineconeVector 클래스는 다음에 대한 인터페이스를 제공합니다.[Pinecone](https://www.pinecone.io/)의 벡터 데이터베이스입니다. 하이브리드 검색, 메타데이터 필터링, 네임스페이스 관리와 같은 기능을 갖춘 실시간 벡터 검색을 제공합니다. ## 생성자 옵션 생성자는 모든 것을 허용합니다.[Pinecone configuration options](https://docs.pinecone.io/reference/typescript-sdk) plus Mastra-specific fields. **id** (`string`): 이 벡터 저장소 인스턴스의 고유 식별자 **apiKey** (`string`): Pinecone API 키 **controllerHostUrl** (`string`): 사용자 지정 Pinecone 컨트롤러 호스트 URL **additionalHeaders** (`Record`): 요청에 포함할 추가 HTTP 헤더 **sourceTag** (`string`): 요청 추적용 소스 태그 **cloud** (`'aws' | 'gcp' | 'azure'`): 새 인덱스를 생성할 Cloud Provider (Default: `aws`) **region** (`string`): 새 인덱스를 생성할 리전 (Default: `us-east-1`) ## 행동 양식 ### `createIndex()` **indexName** (`string`): 생성할 인덱스의 이름 **dimension** (`number`): 벡터 차원(임베딩 Model과 일치해야 함) **metric** (`'cosine' | 'euclidean' | 'dotproduct'`): 유사도 검색에 사용할 거리 측정 방식입니다. 하이브리드 검색을 사용할 계획이라면 'dotproduct'를 사용하세요. (Default: `cosine`) ### `upsert()` **indexName** (`string`): Pinecone 인덱스의 이름 **vectors** (`number[][]`): 밀집 임베딩 벡터 배열 **sparseVectors** (`{ indices: number[], values: number[] }[]`): 하이브리드 검색용 희소 벡터 배열입니다. 각 벡터의 indices 배열과 values 배열은 서로 일치해야 합니다. **metadata** (`Record[]`): 각 벡터의 메타데이터 **ids** (`string[]`): 선택적 벡터 ID(제공하지 않으면 자동 생성) **namespace** (`string`): 벡터를 저장할 선택적 네임스페이스입니다. 서로 다른 네임스페이스의 벡터는 상호 격리됩니다. ### `query()` **indexName** (`string`): 쿼리할 인덱스의 이름 **queryVector** (`number[]`): 유사한 벡터를 찾기 위한 밀집 쿼리 벡터 **sparseVector** (`{ indices: number[], values: number[] }`): 하이브리드 검색용 선택적 희소 벡터입니다. indices 배열과 values 배열이 서로 일치해야 합니다. **topK** (`number`): 반환할 결과 수 (Default: `10`) **filter** (`Record`): 쿼리용 메타데이터 필터 **includeVector** (`boolean`): 결과에 벡터를 포함할지 여부 (Default: `false`) **namespace** (`string`): 벡터를 쿼리할 선택적 네임스페이스입니다. 지정한 네임스페이스의 결과만 반환합니다. ### `listIndexes()` 인덱스 이름의 배열을 문자열로 반환합니다. ### `describeIndex()` **indexName** (`string`): 설명을 조회할 인덱스의 이름 보고: ```typescript interface IndexStats { dimension: number count: number metric: 'cosine' | 'euclidean' | 'dotproduct' } ``` ### `deleteIndex()` **indexName** (`string`): 삭제할 인덱스의 이름 ### `updateVector()` ID 또는 메타데이터 필터를 기준으로 단일 벡터를 업데이트합니다. `id` 또는 `filter` 중 하나만 제공해야 합니다. **indexName** (`string`): 벡터가 포함된 인덱스의 이름 **id** (`string`): 업데이트할 벡터의 ID(filter와 함께 사용할 수 없음) **filter** (`Record`): 업데이트할 벡터를 식별하는 메타데이터 필터(id와 함께 사용할 수 없음) **namespace** (`string`): 업데이트 작업을 위한 선택적 네임스페이스 **update** (`object`): 업데이트 매개변수 **update.vector** (`number[]`): 업데이트할 새 벡터 값 **update.metadata** (`Record`): 업데이트할 새 메타데이터 ### `deleteVector()` **indexName** (`string`): 벡터가 포함된 인덱스의 이름 **id** (`string`): 삭제할 벡터의 ID ### `deleteVectors()` ID 또는 메타데이터 필터를 기준으로 여러 벡터를 삭제합니다. `ids` 또는 `filter` 중 하나만 제공해야 합니다. **indexName** (`string`): 삭제할 벡터가 포함된 인덱스의 이름 **ids** (`string[]`): 삭제할 벡터 ID 배열(filter와 함께 사용할 수 없음) **filter** (`Record`): 삭제할 벡터를 식별하는 메타데이터 필터(ids와 함께 사용할 수 없음) **namespace** (`string`): 삭제 작업을 위한 선택적 네임스페이스 ## 응답 유형 쿼리 결과는 다음 형식으로 반환됩니다. ```typescript interface QueryResult { id: string score: number metadata: Record vector?: number[] // Only included if includeVector is true } ``` ## 오류 처리 상점에서는 포착할 수 있는 입력된 오류를 발생시킵니다. ```typescript 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 ## 관련된 - [메타데이터 필터](https://mastra.zisheng.pro/ko/reference/rag/metadata-filters)