@startuml userchat
actor User
participant "APIRouter" as router
participant "Dependencies" as dependencies
participant "SanitizeCollectionName" as sanitizer
participant "LLMInfer" as llm

User -> router : chat_with_llama(user_input)
activate router

router -> dependencies : get_current_user()
activate dependencies
dependencies --> router : current_user
deactivate dependencies

router -> sanitizer : sanitize_collection_name(current_user["user_id"])
activate sanitizer
sanitizer --> router : sanitized_name
deactivate sanitizer

router -> llm : llm_infer(sanitized_name, user_input)
activate llm
llm --> router : model_response
deactivate llm

router --> User : {"ai_response": model_response, "user_id", "name", "role"}
deactivate router
@enduml