2727 KnowledgeBaseItem ,
2828 KnowledgeBaseCreateRequest ,
2929 KnowledgeBaseResponse ,
30+ KnowledgeBaseUpdateRequest ,
3031)
3132from mcp_clients .kb_mcp_endpoint_service import KnowledgeBaseMCPEndpointService
3233
@@ -189,7 +190,7 @@ def rotate_tokens(
189190 raise HTTPException (
190191 status_code = status .HTTP_400_BAD_REQUEST ,
191192 detail = (
192- "new_callback_token is required when rotate_callback_token is true"
193+ "new_callback_token is required when rotate_callback_token is true" # noqa
193194 ),
194195 )
195196 AppService .rotate_callback_token (
@@ -409,7 +410,7 @@ async def create_knowledge_base(
409410
410411
411412@router .patch (
412- "/knowledge-bases/{kb_id}/default " ,
413+ "/knowledge-bases/{kb_id}" ,
413414 response_model = KnowledgeBaseResponse ,
414415 status_code = status .HTTP_200_OK ,
415416 responses = {
@@ -424,45 +425,34 @@ async def create_knowledge_base(
424425 500 : {"model" : ErrorResponse , "description" : "Internal server error" },
425426 },
426427)
427- async def set_default_knowledge_base (
428+ async def update_knowledge_base (
428429 * ,
429430 kb_id : int ,
430431 db : Session = Depends (get_db ),
432+ request_data : KnowledgeBaseUpdateRequest ,
431433 current_app : App = Depends (get_current_app ),
432434) -> Any :
433435 """
434436 Set a specific KB as the default for the authenticated app.
435437 - Automatically unsets the previous default KB.
436438 - Returns the updated KB record.
437439 """
438- if current_app .status != "active" :
439- raise HTTPException (
440- status_code = status .HTTP_403_FORBIDDEN ,
441- detail = "App must be active to change default KB." ,
442- )
443-
444440 try :
445- app_kb = AppService .set_default_knowledge_base (
446- db = db , app = current_app , kb_id = kb_id
447- )
448-
449- # get KB detail from MCP service
450- kb_mcp_service = KnowledgeBaseMCPEndpointService ()
451- kb_result = await kb_mcp_service .get_kb (kb_id = kb_id )
452-
453- return KnowledgeBaseResponse (
454- id = app_kb .id ,
455- knowledge_base_id = app_kb .knowledge_base_id ,
456- name = kb_result .get ("name" , "" ),
457- description = kb_result .get ("description" , "" ),
458- is_default = app_kb .is_default ,
441+ update_result = await AppService .update_knowledge_base (
442+ db = db ,
443+ app = current_app ,
444+ kb_id = kb_id ,
445+ name = request_data .name ,
446+ description = request_data .description ,
447+ is_default = request_data .is_default ,
459448 )
449+ return update_result
460450 except HTTPException :
461451 raise
462452 except Exception as e :
463453 raise HTTPException (
464454 status_code = status .HTTP_500_INTERNAL_SERVER_ERROR ,
465- detail = f"Failed to set default KB: { str (e )} " ,
455+ detail = f"Failed to update KB: { str (e )} " ,
466456 )
467457
468458
@@ -519,7 +509,7 @@ async def delete_knowledge_base(
519509 if app_kb .is_default :
520510 raise HTTPException (
521511 status_code = status .HTTP_403_FORBIDDEN ,
522- detail = "Cannot delete the default knowledge base. Set another KB as default first." ,
512+ detail = "Cannot delete the default knowledge base. Set another KB as default first." , # noqa
523513 )
524514
525515 try :
0 commit comments