Skip to content

[FEATURE] Implement Pinecone Vector Store #201

@Oxazolidinone

Description

@Oxazolidinone

Add Pinecone as Vector Store Backend

Problem

Cipher's current architecture for vector storage is limited to Qdrant and Milvus. This constraint prevents users who rely on Pinecone for their cloud-based vector search and management needs from integrating their existing infrastructure with Cipher.

Solution

Add Pinecone as a supported vector store backend following the existing architecture patterns.

Implement

User Experience

Users will be able to configure Cipher to connect to Pinecone using the following environment variables:

  • VECTOR_STORE_TYPE=pinecone
  • PINECONE_API_KEY=<your-pinecone-api-key>
  • PINECONE_ENVIRONMENT=<your-pinecone-environment>
  • PINECONE_INDEX=knowledge-memory
  • PINECONE_NAMESPACE=default (optional)
  • VECTOR_STORE_DIMENSION=1536

Technical Changes

  • Add dependency: Include @pinecone-database/pinecone in package.json.
  • Create backend: Develop src/core/vector_storage/backend/pinecone.ts.
  • Update factory: Extend the getVectorStoreConfigFromEnv() function in factory.ts to support Pinecone's configuration.
  • Update types: Integrate Pinecone into the existing vector store type system.
  • Update docs: Add setup instructions to /docs/vector-stores.md.

Requirements

  • Implement the VectorStore interface from backend/types.ts.
  • Fully support Pinecone features such as namespaces and metadata filtering.
  • Handle authentication via the API key (PINECONE_API_KEY).
  • Include proper error handling, connection management, and rate limiting.
  • Add comprehensive test coverage (unit + integration).
  • Support workspace memory and multi-collection features by leveraging Pinecone's namespaces.

Acceptance Criteria

  • Pinecone client dependency added.
  • Pinecone backend fully implemented.
  • Environment variable configuration supported.
  • Factory method updated to recognize Pinecone.
  • Test coverage (unit and integration) achieved.
  • Documentation updates
  • Pinecone namespaces are supported.
  • Workspace memory collection supported.

Priority

  • Priority: Medium
  • Impact: Medium
  • Effort: Medium

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions