| 
				
			 | 
			
			 | 
			@@ -26,6 +26,7 @@ class TiDBVectorConfig(BaseModel): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    user: str | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    password: str | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    database: str | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    program_name: str | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    @model_validator(mode='before') | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    def validate_config(cls, values: dict) -> dict: | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -39,6 +40,8 @@ class TiDBVectorConfig(BaseModel): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            raise ValueError("config TIDB_VECTOR_PASSWORD is required") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if not values['database']: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            raise ValueError("config TIDB_VECTOR_DATABASE is required") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if not values['program_name']: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            raise ValueError("config APPLICATION_NAME is required") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return values | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -65,7 +68,7 @@ class TiDBVector(BaseVector): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        super().__init__(collection_name) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self._client_config = config | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self._url = (f"mysql+pymysql://{config.user}:{config.password}@{config.host}:{config.port}/{config.database}?" | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                     f"ssl_verify_cert=true&ssl_verify_identity=true") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                     f"ssl_verify_cert=true&ssl_verify_identity=true&program_name={config.program_name}") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self._distance_func = distance_func.lower() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self._engine = create_engine(self._url) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        self._orm_base = declarative_base() | 
		
		
	
	
		
			
			| 
				
			 | 
			
			 | 
			@@ -245,5 +248,6 @@ class TiDBVectorFactory(AbstractVectorFactory): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                user=config.get('TIDB_VECTOR_USER'), | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                password=config.get('TIDB_VECTOR_PASSWORD'), | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                database=config.get('TIDB_VECTOR_DATABASE'), | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                program_name=config.get('APPLICATION_NAME'), | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            ), | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ) |