|
@@ -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'),
|
|
|
),
|
|
|
)
|