Skip to content

chat_workflow

django_spire.ai.chat.intelligence.workflows.chat_workflow

chat_workflow

Source code in django_spire/ai/chat/intelligence/workflows/chat_workflow.py
def chat_workflow(
    request: WSGIRequest,
    user_input: str,
    message_history: MessageHistory | None = None
) -> BaseMessageIntel:
    router_key = getattr(settings, 'DJANGO_SPIRE_AI_DEFAULT_CHAT_ROUTER', 'SPIRE')

    chat_routers = getattr(settings, 'DJANGO_SPIRE_AI_CHAT_ROUTERS', {
        'SPIRE': 'django_spire.ai.chat.router.SpireChatRouter'
    })

    router_path = chat_routers.get(router_key)

    if not router_path:
        router_path = 'django_spire.ai.chat.router.SpireChatRouter'

    router_class = get_callable_from_module_string_and_validate_arguments(
        router_path,
        []
    )

    router_instance = router_class()

    return router_instance.process(
        request=request,
        user_input=user_input,
        message_history=message_history,
    )