@@ -35,6 +35,14 @@ def format_collection_name(collection_name: str) -> str:
3535 return re .sub (r"[^a-z0-9_]" , "" , replaced_str ).lower ()
3636
3737
38+ def build_index (** kwargs ):
39+ """
40+ Build the index name for the knowledgebase.
41+ """
42+ # TODO
43+ ...
44+
45+
3846def get_knowledgebase_adapter (backend : str ):
3947 if backend == DatabaseBackend .REDIS :
4048 return KnowledgebaseKVDatabaseAdapter
@@ -55,30 +63,22 @@ class KnowledgebaseKVDatabaseAdapter(BaseModel):
5563
5664 database_client : BaseDatabase
5765
58- def add (self , content : list [str ], app_name : str , user_id : str , session_id : str ):
59- """Add texts to Redis.
60-
61- Key: app_name
62- Field: app_name:user_id
63- Value: text in List
64- """
65- # key = f"{app_name}:{user_id}"
66+ def add (self , content : list [str ], app_name : str , ** kwargs ):
6667 key = f"{ app_name } "
68+ logger .debug (f"Adding documents to Redis database: key={ key } " )
6769
6870 try :
6971 for _content in content :
7072 self .database_client .add (key , _content )
71- logger .debug (
72- f"Successfully added { len (content )} texts to Redis list key `{ key } `."
73- )
73+ logger .debug (f"Added { len (content )} texts to Redis database: key={ key } " )
7474 except Exception as e :
75- logger .error (f"Failed to add texts to Redis list key `{ key } `: { e } " )
75+ logger .error (f"Failed to add texts to Redis database key `{ key } `: { e } " )
7676 raise e
7777
78- def query (self , query : str , app_name : str , user_id : str , ** kwargs ):
79- # key = f"{app_name}:{user_id}"
78+ def query (self , query : str , app_name : str , ** kwargs ):
8079 key = f"{ app_name } "
8180 top_k = 10
81+ logger .debug (f"Querying Redis database: key={ key } query={ query } " )
8282
8383 try :
8484 result = self .database_client .query (key , query )
@@ -87,9 +87,8 @@ def query(self, query: str, app_name: str, user_id: str, **kwargs):
8787 logger .error (f"Failed to search from Redis list key '{ key } ': { e } " )
8888 raise e
8989
90- def delete (self , app_name : str , user_id : str , session_id : str ):
90+ def delete (self , app_name : str , ** kwargs ):
9191 try :
92- # key = f"{app_name}:{user_id}:{session_id}"
9392 key = f"{ app_name } "
9493 self .database_client .delete (key = key )
9594 logger .info (f"Successfully deleted data for app { app_name } " )
@@ -104,6 +103,8 @@ class KnowledgebaseRelationalDatabaseAdapter(BaseModel):
104103 database_client : BaseDatabase
105104
106105 def create_table (self , table_name : str ):
106+ logger .debug (f"Creating table for SQL database: table_name={ table_name } " )
107+
107108 sql = f"""
108109 CREATE TABLE `{ table_name } ` (
109110 `id` BIGINT AUTO_INCREMENT PRIMARY KEY,
@@ -113,8 +114,11 @@ def create_table(self, table_name: str):
113114 """
114115 self .database_client .add (sql )
115116
116- def add (self , content : list [str ], app_name : str , user_id : str , session_id : str ):
117+ def add (self , content : list [str ], app_name : str , ** kwargs ):
117118 table = app_name
119+ logger .debug (
120+ f"Adding documents to SQL database: table_name={ table } content_len={ len (content )} "
121+ )
118122
119123 if not self .database_client .table_exists (table ):
120124 logger .warning (f"Table { table } does not exist, creating..." )
@@ -126,16 +130,19 @@ def add(self, content: list[str], app_name: str, user_id: str, session_id: str):
126130 VALUES (%s);
127131 """
128132 self .database_client .add (sql , params = (_content ,))
129- logger .info (f"Successfully added { len (content )} texts to table { table } ." )
133+ logger .debug (f"Added { len (content )} texts to table { table } ." )
130134
131- def query (self , query : str , app_name : str , user_id : str , ** kwargs ):
135+ def query (self , query : str , app_name : str , ** kwargs ):
132136 """Search content from table app_name."""
133137 table = app_name
134138 top_k = 10
139+ logger .debug (
140+ f"Querying SQL database: table_name={ table } query={ query } top_k={ top_k } "
141+ )
135142
136143 if not self .database_client .table_exists (table ):
137144 logger .warning (
138- f"querying { query } , but table `{ table } ` does not exist, returning empty list."
145+ f"Querying SQL database , but table `{ table } ` does not exist, returning empty list."
139146 )
140147 return []
141148
@@ -145,7 +152,7 @@ def query(self, query: str, app_name: str, user_id: str, **kwargs):
145152 results = self .database_client .query (sql )
146153 return [item ["data" ] for item in results ]
147154
148- def delete (self , app_name : str , user_id : str , session_id : str ):
155+ def delete (self , app_name : str , ** kwargs ):
149156 table = app_name
150157 try :
151158 self .database_client .delete (table = table )
@@ -160,23 +167,23 @@ class KnowledgebaseVectorDatabaseAdapter(BaseModel):
160167
161168 database_client : BaseDatabase
162169
163- def add (self , content : list [str ], app_name : str , user_id : str , session_id : str ):
164- # collection_name = format_collection_name(f"{app_name}_{user_id}")
165- # knowledgebase is application specific
170+ def add (self , content : list [str ], app_name : str , ** kwargs ):
171+ logger .debug (
172+ f"Adding documents to vector database: app_name={ app_name } content_len={ len (content )} "
173+ )
166174 collection_name = format_collection_name (f"{ app_name } " )
167175 self .database_client .add (content , collection_name = collection_name )
168176
169- def query (self , query : str , app_name : str , user_id : str , ** kwargs ):
170- # collection_name = format_collection_name(f"{app_name}_{user_id}")
171- # knowledgebase is application specific
177+ def query (self , query : str , app_name : str , ** kwargs ):
178+ logger .debug (
179+ f"Querying vector database: collection_name={ app_name } query={ query } "
180+ )
172181 collection_name = format_collection_name (f"{ app_name } " )
173182 return self .database_client .query (
174183 query , collection_name = collection_name , ** kwargs
175184 )
176185
177- def delete (self , app_name : str , user_id : str , session_id : str ):
178- # collection_name = format_collection_name(f"{app_name}_{user_id}")
179- # knowledgebase is application specific
186+ def delete (self , app_name : str , ** kwargs ):
180187 collection_name = format_collection_name (f"{ app_name } " )
181188 try :
182189 self .database_client .delete (collection_name = collection_name )
@@ -193,13 +200,13 @@ class KnowledgebaseLocalDatabaseAdapter(BaseModel):
193200
194201 database_client : BaseDatabase
195202
196- def add (self , content : list [str ], app_name : str , user_id : str , session_id : str ):
203+ def add (self , content : list [str ], ** kwargs ):
197204 self .database_client .add (content )
198205
199206 def query (self , query : str , app_name : str , user_id : str , ** kwargs ):
200207 return self .database_client .query (query , ** kwargs )
201208
202- def delete (self , app_name : str , user_id : str , session_id : str ):
209+ def delete (self , app_name : str , ** kwargs ):
203210 try :
204211 self .database_client .delete ()
205212 logger .info (f"Successfully cleared local database for app { app_name } " )
@@ -229,24 +236,30 @@ def add(
229236 self ,
230237 content : str | list [str ] | TextIO | BinaryIO | bytes ,
231238 app_name : str ,
232- user_id : str ,
233- session_id : str ,
234239 ** kwargs ,
235240 ):
236- # collection_name = format_collection_name(f"{app_name}_{user_id}")
237241 collection_name = format_collection_name (f"{ app_name } " )
242+ logger .debug (
243+ f"Adding documents to Viking database: collection_name={ collection_name } "
244+ )
238245 self .get_or_create_collection (collection_name )
239246 self .database_client .add (content , collection_name = collection_name , ** kwargs )
240247
241- def query (self , query : str , app_name : str , user_id : str , ** kwargs ):
248+ def query (self , query : str , app_name : str , ** kwargs ):
242249 collection_name = format_collection_name (f"{ app_name } " )
250+ logger .debug (
251+ f"Querying Viking database: collection_name={ collection_name } query={ query } "
252+ )
253+
254+ # FIXME(): fix here
243255 if not self .database_client .collection_exists (collection_name ):
244256 raise ValueError (f"Collection { collection_name } does not exist" )
257+
245258 return self .database_client .query (
246259 query , collection_name = collection_name , ** kwargs
247260 )
248261
249- def delete (self , app_name : str , user_id : str , session_id : str ):
262+ def delete (self , app_name : str , ** kwargs ):
250263 # collection_name = format_collection_name(f"{app_name}_{user_id}")
251264 collection_name = format_collection_name (f"{ app_name } " )
252265 try :
0 commit comments