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
    )