@@ -230,6 +230,95 @@ def test_create_knowledge_base(self):
230230 )
231231 assert ast == expected_ast
232232
233+ # Create Knowledge Base with embedding model and reranking model.
234+ sql = """
235+ CREATE KNOWLEDGE_BASE my_knowledge_base
236+ USING
237+ EMBEDDING_MODEL={
238+ "model": "text-embedding-3-small",
239+ "api_key": "sk-1234567890"
240+ },
241+ RERANKING_MODEL={
242+ "model": "text-embedding-3-small",
243+ "api_key": "sk-1234567890"
244+ },
245+ STORAGE = my_vector_database.some_table
246+ """
247+ ast = parse_sql (sql )
248+
249+ expected_ast = CreateKnowledgeBase (
250+ name = Identifier ("my_knowledge_base" ),
251+ if_not_exists = False ,
252+ embedding_model = {
253+ "model" : "text-embedding-3-small" ,
254+ "api_key" : "sk-1234567890" ,
255+ },
256+ reranking_model = {
257+ "model" : "text-embedding-3-small" ,
258+ "api_key" : "sk-1234567890" ,
259+ },
260+ storage = Identifier (parts = ["my_vector_database" , "some_table" ]),
261+ from_select = None ,
262+ params = {},
263+ )
264+ assert ast == expected_ast
265+
266+ # Create Knowledge Base with reranking model and without embedding model.
267+ sql = """
268+ CREATE KNOWLEDGE_BASE my_knowledge_base
269+ USING
270+ RERANKING_MODEL={
271+ "model": "text-embedding-3-small",
272+ "api_key": "sk-1234567890"
273+ },
274+ STORAGE = my_vector_database.some_table
275+ """
276+ ast = parse_sql (sql )
277+ expected_ast = CreateKnowledgeBase (
278+ name = Identifier ("my_knowledge_base" ),
279+ if_not_exists = False ,
280+ embedding_model = None ,
281+ reranking_model = {
282+ "model" : "text-embedding-3-small" ,
283+ "api_key" : "sk-1234567890" ,
284+ },
285+ storage = Identifier (parts = ["my_vector_database" , "some_table" ]),
286+ from_select = None ,
287+ params = {},
288+ )
289+ assert ast == expected_ast
290+
291+ # Create Knowledge Base with emebedding model and reranking model and without storage.
292+ sql = """
293+ CREATE KNOWLEDGE_BASE my_knowledge_base
294+ USING
295+ EMBEDDING_MODEL={
296+ "model": "text-embedding-3-small",
297+ "api_key": "sk-1234567890"
298+ },
299+ RERANKING_MODEL={
300+ "model": "text-embedding-3-small",
301+ "api_key": "sk-1234567890"
302+ }
303+ """
304+ ast = parse_sql (sql )
305+ expected_ast = CreateKnowledgeBase (
306+ name = Identifier ("my_knowledge_base" ),
307+ if_not_exists = False ,
308+ embedding_model = {
309+ "model" : "text-embedding-3-small" ,
310+ "api_key" : "sk-1234567890" ,
311+ },
312+ reranking_model = {
313+ "model" : "text-embedding-3-small" ,
314+ "api_key" : "sk-1234567890" ,
315+ },
316+ storage = None ,
317+ from_select = None ,
318+ params = {},
319+ )
320+ assert ast == expected_ast
321+
233322 def test_drop_knowledge_base (self ):
234323 # drop if exists
235324 sql = """
@@ -308,7 +397,6 @@ def test_select_from_knowledge_base(self):
308397 )
309398 assert ast == expected_ast
310399
311-
312400 def test_delete_from_knowledge_base (self ):
313401 # this is no different from a regular delete
314402 sql = """
0 commit comments