fix: test

This commit is contained in:
Frederick2313072 2025-09-26 22:47:42 +08:00
parent 18f9648a19
commit 498aa19531
3 changed files with 39 additions and 9 deletions

View File

@ -8,6 +8,7 @@ from pydantic import BaseModel
from configs import dify_config
from core.rag.datasource.vdb.field import Field
from core.rag.datasource.vdb.vector_base import BaseVector
from core.rag.datasource.vdb.vector_type import VectorType
from core.rag.datasource.vdb.vector_factory import AbstractVectorFactory
from core.rag.embedding.embedding_base import Embeddings
from core.rag.models.document import Document
@ -62,11 +63,12 @@ class PineconeVector(BaseVector):
# Guard empty name
if not self._index_name:
self._index_name = f"index-{hashlib.sha256(collection_name.encode()).hexdigest()[:suffix_len]}"
self._index = None
# Pinecone index handle, lazily initialized
self._index: Optional[Any] = None
def get_type(self) -> str:
"""Return vector database type identifier"""
return "pinecone"
"""Return vector database type identifier."""
return VectorType.PINECONE
def _ensure_index_initialized(self) -> None:
"""Ensure that self._index is attached to an existing Pinecone index."""
@ -211,7 +213,9 @@ class PineconeVector(BaseVector):
# Execute search
try:
response = self._index.query(
index = self._index
assert index is not None
response = index.query(
vector=query_vector,
top_k=top_k,
include_metadata=True,
@ -257,7 +261,9 @@ class PineconeVector(BaseVector):
}
# Pinecone delete operation
self._index.delete(filter=filter_dict)
index = self._index
assert index is not None
index.delete(filter=filter_dict)
except Exception as e:
# Ignore delete errors
pass
@ -268,7 +274,9 @@ class PineconeVector(BaseVector):
try:
# Pinecone delete by ID
self._index.delete(ids=ids)
index = self._index
assert index is not None
index.delete(ids=ids)
except Exception as e:
raise
@ -279,7 +287,9 @@ class PineconeVector(BaseVector):
try:
# Delete all vectors by group_id
filter_dict = {Field.GROUP_KEY.value: {"$eq": self._group_id}}
self._index.delete(filter=filter_dict)
index = self._index
assert index is not None
index.delete(filter=filter_dict)
except Exception as e:
raise
@ -292,7 +302,9 @@ class PineconeVector(BaseVector):
try:
# Check if vector exists through query
response = self._index.fetch(ids=[id])
index = self._index
assert index is not None
response = index.fetch(ids=[id])
exists = id in response.vectors
return exists
except Exception as e:
@ -327,7 +339,7 @@ class PineconeVectorFactory(AbstractVectorFactory):
# Set index structure
if not dataset.index_struct_dict:
dataset.index_struct = json.dumps(
self.gen_index_struct_dict("pinecone", collection_name)
self.gen_index_struct_dict(VectorType.PINECONE, collection_name)
)
# Create PineconeVector instance

View File

@ -708,6 +708,16 @@ CLICKZETTA_ANALYZER_TYPE=chinese
CLICKZETTA_ANALYZER_MODE=smart
CLICKZETTA_VECTOR_DISTANCE_FUNCTION=cosine_distance
# Pinecone configuration, only available when VECTOR_STORE is `pinecone`
PINECONE_API_KEY=your-pinecone-api-key
PINECONE_ENVIRONMENT=your-pinecone-environment
PINECONE_INDEX_NAME=dify-index
PINECONE_CLIENT_TIMEOUT=30
PINECONE_BATCH_SIZE=100
PINECONE_METRIC=cosine
PINECONE_PODS=1
PINECONE_POD_TYPE=s1
# ------------------------------
# Knowledge Configuration
# ------------------------------

View File

@ -322,6 +322,14 @@ x-shared-env: &shared-api-worker-env
HUAWEI_CLOUD_PASSWORD: ${HUAWEI_CLOUD_PASSWORD:-admin}
UPSTASH_VECTOR_URL: ${UPSTASH_VECTOR_URL:-https://xxx-vector.upstash.io}
UPSTASH_VECTOR_TOKEN: ${UPSTASH_VECTOR_TOKEN:-dify}
PINECONE_API_KEY: ${PINECONE_API_KEY:-}
PINECONE_ENVIRONMENT: ${PINECONE_ENVIRONMENT:-}
PINECONE_INDEX_NAME: ${PINECONE_INDEX_NAME:-}
PINECONE_CLIENT_TIMEOUT: ${PINECONE_CLIENT_TIMEOUT:-30}
PINECONE_BATCH_SIZE: ${PINECONE_BATCH_SIZE:-100}
PINECONE_METRIC: ${PINECONE_METRIC:-cosine}
PINECONE_PODS: ${PINECONE_PODS:-1}
PINECONE_POD_TYPE: ${PINECONE_POD_TYPE:-s1}
TABLESTORE_ENDPOINT: ${TABLESTORE_ENDPOINT:-https://instance-name.cn-hangzhou.ots.aliyuncs.com}
TABLESTORE_INSTANCE_NAME: ${TABLESTORE_INSTANCE_NAME:-instance-name}
TABLESTORE_ACCESS_KEY_ID: ${TABLESTORE_ACCESS_KEY_ID:-xxx}