letschatty 0.4.328__tar.gz → 0.4.336__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {letschatty-0.4.328 → letschatty-0.4.336}/PKG-INFO +1 -1
- {letschatty-0.4.328 → letschatty-0.4.336}/pyproject.toml +1 -1
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/ai_microservices/lambda_events.py +17 -4
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/chatty_ai_agent_in_chat.py +6 -34
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/chatty_ai_mode.py +2 -2
- letschatty-0.4.336/src/letschatty/models/company/assets/ai_agents_v2/statuses.py +33 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/chat_assets.py +9 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/form_field.py +9 -2
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chat/chat_service.py +8 -1
- {letschatty-0.4.328 → letschatty-0.4.336}/LICENSE +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/README.md +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/ai_microservices/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/ai_microservices/expected_output.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/ai_microservices/lambda_invokation_types.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/ai_microservices/n8n_ai_agents_payload.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/ai_microservices/openai_payloads.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/base.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/ai_agent_chat.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/ai_agent_execution_event.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/business_area.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/chat_based_event.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/chat_context.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/chat_funnel.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/chat_status.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/contact_point.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/continuous_conversation.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/highlight.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/message.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/messages_intent_context.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/product_chat.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/quality_scoring.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/sale.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/tag_chat.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/chat_based_events/workflow.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/company_based_events/asset_events.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/company_based_events/company_events.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/company_based_events/user_events.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/event_type_to_classes.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/event_types.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/metrics/__init_.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/metrics/daily_contact_points.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/metrics/daily_new_chats.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/metrics/daily_sent_templates_grouped.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/metrics/sales_roadmap.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/metrics/sent_templates.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/smart_messages/friendly_code_for_source.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/smart_messages/topic.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/smart_messages/topic_message.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/google_ad_utm_source.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/helpers.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/other_source.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/pure_ad.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/pure_ad_utm_source.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/source_base.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/template_source.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/topic_default_source.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/utm_source.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/utms/referer_info.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/utms/utm_query_params.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/whatsapp_default_source.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/auth/jwt.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/base_models/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/base_models/ai_agent_component.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/base_models/chatty_asset_model.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/base_models/helpers.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/base_models/related_asset_usage_example.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/base_models/singleton.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/base_models/update_model_interface.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/base_models/validate_timestamps_and_id.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/channels/channel.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/assets_assigned_to_chat.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/chat.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/chat_status_modifications.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/chat_with_assets.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/client.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/continuous_conversation.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/filter_parameters.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/flow_link_state.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/highlight.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/preview.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/quality_scoring.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/scheduled_messages.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/temporary_chat.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/time_left.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/CRM/business_area.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/CRM/funnel.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/ai_agent_message_draft.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/ai_agents_decision_output.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/chain_of_thought_in_chat.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/chat_example.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/chat_example_test.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/chatty_ai_agent.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/chatty_ai_agent_config_for_automation.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/context_item.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/faq.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/follow_up_strategy.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/get_chat_with_prompt_response.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/knowleadge_base_components.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/n8n_agents_info.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/n8n_schema_incoming_message_output.json +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/n8n_schema_smart_follow_up_output.json +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/pre_qualify_config.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/assignment/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/assignment/assignment_assets.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/automation.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/chatty_fast_answers/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/chatty_fast_answers/chatty_fast_answer.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/company_assets.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/contact_point.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/filter_criteria.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/flow.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/launch/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/launch/launch.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/launch/scheduled_communication.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/launch/subscription.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/media/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/media/file.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/product.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/sale.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/tag.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/users/agent_chats_snapshot.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/users/user.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/users/user_asset_permission.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/workflow_execution.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/company_chats_snapshot.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/company_messaging_settgins.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/conversation_topic.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/empresa.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/insight.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/notifications/notification.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/copilot/links.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/data_base/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/data_base/collection_interface.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/data_base/mongo_connection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/execution/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/execution/execution.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/execution/executor.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/forms/company/auth0_company_registration_form.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/forms/company/meta_register.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/audio.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/base/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/base/chatty_message_json.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/base/message_base.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/base/message_draft.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/button.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/central_notification.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/contact.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/document.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/image.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/interactive.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/location.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/reaction.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_audio.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_button.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_central.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_contacts.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_document.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_image.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_interactive.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_location.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_media.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_reaction.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_sticker.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_text.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_content/content_video.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_context/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_context/chatty_context.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_referal/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/schema/chatty_referal/chatty_referal.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/sticker.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/text.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/chatty_messages/video.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/message_templates/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/message_templates/chatty_template_campaign.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/message_templates/filled_data_from_frontend.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/message_templates/payload_for_sending_template.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/message_templates/raw_meta_template.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/message_templates/recipient_of_template_campaign.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/message_templates/required_for_frontend_templates.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/meta_base_notification_json.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/meta_error_json.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/meta_inexistent_json.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/meta_message_json.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/meta_status_json.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/meta_unknown_json.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/content_messages/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/content_messages/button_content.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/content_messages/contacts_content.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/content_messages/interactive_content.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/content_messages/location_content.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/content_messages/multimedia_content.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/content_messages/order_content.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/content_messages/reaction_content.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/content_messages/system_content.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/content_messages/text_content.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/values/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/values/value_errors.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/values/value_messages.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/messages/meta_message_model/schema/values/value_statuses.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/custom_exceptions/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/custom_exceptions/custom_exceptions.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/definitions.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/CRUD_operations.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/channel_types.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/chats_actions.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/country.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/deletion_type.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/executor_types.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/identifier.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/message_status_types.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/message_types.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/phone_number.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/serializer_type.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/source_types.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/utils/types/typealiases.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/ai_agents/context_builder_v2.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/ai_agents/cot_follow_up_examples.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/ai_agents/followup_schema.json +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/ai_agents/smart_follow_up_context_builder_v2.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/ai_agents/smart_follow_up_service_v2.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/ai_agents/tool_descriptions/assign_chat_to_ai_agent_itself.json +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/ai_agents/tool_descriptions/human_handover.json +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/ai_agents/tool_descriptions.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/ai_components_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chat/chat_extractors.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chat/client_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chat/conversation_topics_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/asset_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/assets_collections.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/base_container.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/base_container_with_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/ai_agent_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/ai_agent_in_chat_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/ai_component_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/chain_of_thought_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/chat_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/contact_point_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/fast_answer_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/filter_criteria_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/flow_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/product_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/sale_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/source_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/tag_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/topic_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/collections/user_collection.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/documentation_diagram.png +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/example_usage.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/readme.md +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/ai_agent_in_chat_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/ai_agent_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/chain_of_thought_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/chat_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/contact_point_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/fast_answer_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/filter_criteria_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/flow_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/product_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/sale_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/source_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/tag_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/topic_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/chatty_assets/services/user_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/concurrent/concurrent.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/contact_points/contact_point_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/continuous_conversation_service/continuous_conversation_helper.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/events/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/events/events_manager.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/analytics/ai_agent_event_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/analytics/contact_point_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/analytics/events_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/analytics/smart_messages/topics_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/analytics/sources/helpers.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/analytics/sources/source_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/chats/chat_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/chatty_fast_answers/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/chatty_fast_answers/chatty_fast_answers_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/clients/client_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/company/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/company/empresa_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/lambda_ai_orchestrartor/lambda_events_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/messages/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/messages/central_notification_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/messages/chatty_message_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/messages/child_db_message_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/messages/child_request_message.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/messages/from_template_hot_fix.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/messages/message_templates/template_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/messages/message_templates/test.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/meta_notifications/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/meta_notifications/meta_notification_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/factories/product_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/filter_criteria_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/messages_helpers/__init__.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/messages_helpers/get_caption_or_body_or_preview.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/scheduled_messages_service/scheduled_messages_helpers.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/template_campaigns/template_campaign_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/users/agent_service.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/users/user_factory.py +0 -0
- {letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/services/validators/analytics_validator.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "letschatty"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.336" # Or whichever is your latest version
|
|
4
4
|
description = "Models and custom classes to work across the Chattyverse"
|
|
5
5
|
authors = ["Axel <axel@letschatty.com>"]
|
|
6
6
|
license = "MIT"
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/ai_microservices/lambda_events.py
RENAMED
|
@@ -93,10 +93,23 @@ class SmartTaggingCallbackEvent(LambdaAiEvent):
|
|
|
93
93
|
callback_metadata: SmartTaggingCallbackMetadata
|
|
94
94
|
|
|
95
95
|
@model_validator(mode="before")
|
|
96
|
-
def
|
|
97
|
-
if isinstance(
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
def normalize_data(cls, values):
|
|
97
|
+
if not isinstance(values, dict):
|
|
98
|
+
return values
|
|
99
|
+
|
|
100
|
+
data = values.get("data")
|
|
101
|
+
if isinstance(data, str):
|
|
102
|
+
import json
|
|
103
|
+
try:
|
|
104
|
+
data = json.loads(data)
|
|
105
|
+
values["data"] = data
|
|
106
|
+
except (json.JSONDecodeError, TypeError):
|
|
107
|
+
return values
|
|
108
|
+
|
|
109
|
+
if isinstance(data, dict) and "chain_of_thought" in data:
|
|
110
|
+
data["chain_of_thought"]["chatty_ai_agent_id"] = "000000000000000000000000"
|
|
111
|
+
|
|
112
|
+
return values
|
|
100
113
|
|
|
101
114
|
class ChatData(BaseModel):
|
|
102
115
|
chat_id: StrObjectId
|
|
@@ -7,15 +7,16 @@ independently without loading entire chat documents.
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
from letschatty.models.analytics.events.base import EventType
|
|
10
|
+
from enum import StrEnum
|
|
10
11
|
from pydantic import BaseModel, Field, field_validator, ConfigDict
|
|
11
12
|
from datetime import datetime
|
|
12
13
|
from zoneinfo import ZoneInfo
|
|
13
14
|
from typing import Optional, ClassVar, List, Dict, Any
|
|
14
|
-
from enum import StrEnum
|
|
15
15
|
from letschatty.models.base_models.chatty_asset_model import CompanyAssetModel, ChattyAssetPreview
|
|
16
16
|
from letschatty.models.utils.types.identifier import StrObjectId
|
|
17
17
|
from .chain_of_thought_in_chat import ChainOfThoughtInChatTrigger
|
|
18
18
|
from .chatty_ai_mode import ChattyAIMode
|
|
19
|
+
from .statuses import DataCollectionStatus, PreQualifyStatus
|
|
19
20
|
import logging
|
|
20
21
|
|
|
21
22
|
logger = logging.getLogger(__name__)
|
|
@@ -45,38 +46,6 @@ class HumanInterventionReason(StrEnum):
|
|
|
45
46
|
SOMETHING_WENT_WRONG = "something_went_wrong"
|
|
46
47
|
|
|
47
48
|
|
|
48
|
-
class DataCollectionStatus(StrEnum):
|
|
49
|
-
"""
|
|
50
|
-
Status of data collection for the AI agent in this chat.
|
|
51
|
-
Only tracks field collection, not qualification status.
|
|
52
|
-
|
|
53
|
-
- COLLECTING: Still collecting data from the user
|
|
54
|
-
- MANDATORY_COMPLETED: All mandatory fields have been collected
|
|
55
|
-
- ALL_COMPLETED: All fields (mandatory + optional) have been collected
|
|
56
|
-
- CANCELLED: Data collection was cancelled
|
|
57
|
-
"""
|
|
58
|
-
COLLECTING = "collecting"
|
|
59
|
-
MANDATORY_COMPLETED = "mandatory_completed"
|
|
60
|
-
ALL_COMPLETED = "all_completed"
|
|
61
|
-
CANCELLED = "cancelled"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
class PreQualifyStatus(StrEnum):
|
|
65
|
-
"""
|
|
66
|
-
Status of pre-qualification for the AI agent in this chat.
|
|
67
|
-
Separate from data collection - tracks qualification evaluation.
|
|
68
|
-
|
|
69
|
-
- PENDING: Waiting for data collection to complete
|
|
70
|
-
- EVALUATING: Data collected, evaluating acceptance criteria
|
|
71
|
-
- QUALIFIED: User met acceptance criteria
|
|
72
|
-
- UNQUALIFIED: User did NOT meet acceptance criteria
|
|
73
|
-
"""
|
|
74
|
-
PENDING = "pending"
|
|
75
|
-
EVALUATING = "evaluating"
|
|
76
|
-
QUALIFIED = "qualified"
|
|
77
|
-
UNQUALIFIED = "unqualified"
|
|
78
|
-
|
|
79
|
-
|
|
80
49
|
class HumanIntervention(BaseModel):
|
|
81
50
|
"""
|
|
82
51
|
Reason for human intervention
|
|
@@ -123,6 +92,10 @@ class ChattyAIAgentInChat(CompanyAssetModel):
|
|
|
123
92
|
default=None,
|
|
124
93
|
description="If the trigger is a user message, this will be the id of the incoming message"
|
|
125
94
|
)
|
|
95
|
+
last_reset_message_id: Optional[str] = Field(
|
|
96
|
+
default=None,
|
|
97
|
+
description="Last reset control trigger message id handled for this chat"
|
|
98
|
+
)
|
|
126
99
|
|
|
127
100
|
# Assignment metadata
|
|
128
101
|
assigned_at: datetime = Field(default_factory=lambda: datetime.now(ZoneInfo("UTC")))
|
|
@@ -352,4 +325,3 @@ class ChattyAIAgentInChat(CompanyAssetModel):
|
|
|
352
325
|
"""Cancel data collection"""
|
|
353
326
|
self.data_collection_status = DataCollectionStatus.CANCELLED
|
|
354
327
|
self.updated_at = datetime.now(ZoneInfo("UTC"))
|
|
355
|
-
|
|
@@ -16,7 +16,7 @@ class ChattyAIMode(StrEnum):
|
|
|
16
16
|
return {
|
|
17
17
|
cls.AUTONOMOUS: "El agente de IA tendrá la autonomía de conversar en tiempo real con el usuario, respetando sus instrucciones y las reglas establecidas.",
|
|
18
18
|
cls.SUGGESTIONS: "El agente de IA sugerirá sólo hará sugerencias de respuestas y seguimientos, pero no enviará mensajes ni interactuará de forma directa con el usuario.",
|
|
19
|
-
cls.COPILOT: "El agente de IA
|
|
19
|
+
cls.COPILOT: "El agente de IA responderá automáticamente cuando tenga alta confianza y la consulta esté dentro del alcance; si no, sugerirá o escalará para revisión humana.",
|
|
20
20
|
cls.OFF: "El agente de IA estará inactivo. No responderá al usuario ni hará sugerencias."
|
|
21
21
|
}[mode]
|
|
22
22
|
|
|
@@ -26,7 +26,7 @@ class ChattyAIMode(StrEnum):
|
|
|
26
26
|
mode_description = {
|
|
27
27
|
cls.AUTONOMOUS: "Only answer based on the context and rules provided. Do not improvise or make up information. If you can't handle the question, escalate to a human.",
|
|
28
28
|
cls.SUGGESTIONS: "You're only going to be making suggestions, all your messages will be reviewd by a human and you should add the reasoning to your chain of thought. If the user message is not worth answering, you can use the 'skip' action in your output. If the user message is worth answering, you NEED to use the 'suggest' action in your output. ",
|
|
29
|
-
cls.COPILOT: "You're in
|
|
29
|
+
cls.COPILOT: "You're in COPILOT mode. Use your confidence to decide the action: send when the request is within scope and you are confident, suggest when you're unsure or a human touch is needed (complex negotiation, frustration, high-value, or missing info), and escalate if it's required by control triggers. Always include a confidence score (0-100).",
|
|
30
30
|
cls.OFF: ""
|
|
31
31
|
}[mode]
|
|
32
32
|
return intro + "\n\n" + mode_description
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from enum import StrEnum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class DataCollectionStatus(StrEnum):
|
|
5
|
+
"""
|
|
6
|
+
Status of data collection for the AI agent in this chat.
|
|
7
|
+
Only tracks field collection, not qualification status.
|
|
8
|
+
|
|
9
|
+
- COLLECTING: Still collecting data from the user
|
|
10
|
+
- MANDATORY_COMPLETED: All mandatory fields have been collected
|
|
11
|
+
- ALL_COMPLETED: All fields (mandatory + optional) have been collected
|
|
12
|
+
- CANCELLED: Data collection was cancelled
|
|
13
|
+
"""
|
|
14
|
+
COLLECTING = "collecting"
|
|
15
|
+
MANDATORY_COMPLETED = "mandatory_completed"
|
|
16
|
+
ALL_COMPLETED = "all_completed"
|
|
17
|
+
CANCELLED = "cancelled"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class PreQualifyStatus(StrEnum):
|
|
21
|
+
"""
|
|
22
|
+
Status of pre-qualification for the AI agent in this chat.
|
|
23
|
+
Separate from data collection - tracks qualification evaluation.
|
|
24
|
+
|
|
25
|
+
- PENDING: Waiting for data collection to complete
|
|
26
|
+
- EVALUATING: Data collected, evaluating acceptance criteria
|
|
27
|
+
- QUALIFIED: User met acceptance criteria
|
|
28
|
+
- UNQUALIFIED: User did NOT meet acceptance criteria
|
|
29
|
+
"""
|
|
30
|
+
PENDING = "pending"
|
|
31
|
+
EVALUATING = "evaluating"
|
|
32
|
+
QUALIFIED = "qualified"
|
|
33
|
+
UNQUALIFIED = "unqualified"
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/chat_assets.py
RENAMED
|
@@ -4,6 +4,7 @@ from enum import StrEnum
|
|
|
4
4
|
from pydantic_core.core_schema import str_schema
|
|
5
5
|
|
|
6
6
|
from letschatty.models.company.assets.ai_agents_v2.chain_of_thought_in_chat import ChainOfThoughtInChatTrigger
|
|
7
|
+
from letschatty.models.company.assets.ai_agents_v2.statuses import DataCollectionStatus, PreQualifyStatus
|
|
7
8
|
from ...utils.types.identifier import StrObjectId
|
|
8
9
|
from datetime import datetime
|
|
9
10
|
from zoneinfo import ZoneInfo
|
|
@@ -75,6 +76,14 @@ class ChattyAIAgentAssignedToChat(AssignedAssetToChat):
|
|
|
75
76
|
mode: ChattyAIMode = Field(default=ChattyAIMode.OFF)
|
|
76
77
|
requires_human_intervention: bool = Field(default=False)
|
|
77
78
|
is_processing: bool = Field(default=False)
|
|
79
|
+
data_collection_status: Optional[DataCollectionStatus] = Field(
|
|
80
|
+
default=None,
|
|
81
|
+
description="Status of data collection for pre-qualification"
|
|
82
|
+
)
|
|
83
|
+
pre_qualify_status: Optional[PreQualifyStatus] = Field(
|
|
84
|
+
default=None,
|
|
85
|
+
description="Status of pre-qualification"
|
|
86
|
+
)
|
|
78
87
|
last_call_started_at: Optional[datetime] = Field(default=None, description="The timestamp of the get chat with prompt (the moment n8n started processing the call)")
|
|
79
88
|
trigger_timestamp: Optional[datetime] = Field(default=None, description="The timestamp of the trigger that started the call, if it's a manual trigger, it will be the timestamp of the manual trigger, if it's a follow up, it will be the timestamp of the follow up, if it's a user message, it will be the timestamp of the user message")
|
|
80
89
|
last_call_cot_id: Optional[StrObjectId] = Field(default=None)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from pydantic import BaseModel, Field, field_validator
|
|
1
|
+
from pydantic import BaseModel, Field, field_validator, ConfigDict
|
|
2
2
|
from typing import Optional, Any, ClassVar, List
|
|
3
3
|
from letschatty.models.base_models.chatty_asset_model import CompanyAssetModel, ChattyAssetPreview
|
|
4
4
|
import re
|
|
@@ -212,7 +212,11 @@ class CollectedData(BaseModel):
|
|
|
212
212
|
name: Optional[str] = Field(default=None, description="Customer's name")
|
|
213
213
|
email: Optional[str] = Field(default=None, description="Customer's email address")
|
|
214
214
|
phone: Optional[str] = Field(default=None, description="Customer's phone number")
|
|
215
|
-
document_id: Optional[str] = Field(
|
|
215
|
+
document_id: Optional[str] = Field(
|
|
216
|
+
default=None,
|
|
217
|
+
alias="dni",
|
|
218
|
+
description="Customer's DNI/ID number"
|
|
219
|
+
)
|
|
216
220
|
|
|
217
221
|
# Generic key-value store for any other collected fields
|
|
218
222
|
additional_fields: dict[str, Any] = Field(
|
|
@@ -220,6 +224,9 @@ class CollectedData(BaseModel):
|
|
|
220
224
|
description="Additional collected fields as key-value pairs"
|
|
221
225
|
)
|
|
222
226
|
|
|
227
|
+
model_config = ConfigDict(
|
|
228
|
+
populate_by_name=True
|
|
229
|
+
)
|
|
223
230
|
|
|
224
231
|
@classmethod
|
|
225
232
|
def example(cls) -> dict:
|
|
@@ -849,6 +849,13 @@ class ChatService:
|
|
|
849
849
|
chat.client.email = collected_data.email
|
|
850
850
|
updated_fields.append("email")
|
|
851
851
|
|
|
852
|
+
if collected_data.phone:
|
|
853
|
+
if chat.client.lead_form_data is None:
|
|
854
|
+
chat.client.lead_form_data = {}
|
|
855
|
+
if chat.client.lead_form_data.get("phone") != collected_data.phone:
|
|
856
|
+
chat.client.lead_form_data["phone"] = collected_data.phone
|
|
857
|
+
updated_fields.append("phone")
|
|
858
|
+
|
|
852
859
|
if collected_data.document_id and chat.client.document_id != collected_data.document_id:
|
|
853
860
|
chat.client.document_id = collected_data.document_id
|
|
854
861
|
updated_fields.append("document_id")
|
|
@@ -873,4 +880,4 @@ class ChatService:
|
|
|
873
880
|
context=ChattyContext(chain_of_thought_id=execution_context.chain_of_thought_id)
|
|
874
881
|
)
|
|
875
882
|
|
|
876
|
-
return chat.client.lead_form_data
|
|
883
|
+
return chat.client.lead_form_data
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/ai_microservices/__init__.py
RENAMED
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/ai_microservices/expected_output.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/ai_microservices/openai_payloads.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/events/event_types.py
RENAMED
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/metrics/__init_.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/metrics/daily_new_chats.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/metrics/sales_roadmap.py
RENAMED
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/metrics/sent_templates.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/smart_messages/topic.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/helpers.py
RENAMED
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/other_source.py
RENAMED
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/pure_ad.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/source_base.py
RENAMED
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/template_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/analytics/sources/utm_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/base_models/ai_agent_component.py
RENAMED
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/base_models/chatty_asset_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/assets_assigned_to_chat.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/chat_status_modifications.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/chat/continuous_conversation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/CRM/business_area.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/ai_agents_v2/faq.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/automation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/company_assets.py
RENAMED
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/contact_point.py
RENAMED
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/filter_criteria.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/launch/__init__.py
RENAMED
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/launch/launch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/media/__init__.py
RENAMED
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/media/file.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/users/user.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/assets/workflow_execution.py
RENAMED
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/company_chats_snapshot.py
RENAMED
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/company/conversation_topic.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/data_base/collection_interface.py
RENAMED
|
File without changes
|
{letschatty-0.4.328 → letschatty-0.4.336}/src/letschatty/models/data_base/mongo_connection.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|