opendialogai / core
The OpenDialog Core package
This package's canonical repository appears to be gone and the package has been frozen as a result.
Installs: 15 848
Dependents: 1
Suggesters: 0
Security: 0
Stars: 32
Watchers: 9
Forks: 7
Open Issues: 13
Requires
- php: ^8.1
- ext-dom: *
- ext-intl: *
- ext-json: *
- ext-simplexml: *
- aws/aws-sdk-php: ^3.198
- bkwld/cloner: ^3.11
- doctrine/dbal: ^2.11
- dyrynda/laravel-model-uuid: ^6.6
- google/cloud-dialogflow: dev-V2Beta1-support
- guzzlehttp/guzzle: ^7.5.0
- justinrainbow/json-schema: ^5.2
- laravel/framework: ^9.43
- laravel/sanctum: ^3.0
- laravel/scout: ^9.8
- openai-php/client: ^0.4.2
- php-ds/php-ds: ^1.2
- spatie/laravel-event-sourcing: ^7.3.0
- spatie/laravel-translation-loader: ^2.7
- staudenmeir/laravel-adjacency-list: ^1.0
- symfony/property-access: ^6.0
- symfony/serializer: ^6.0
- symfony/yaml: ^6.0.9
Requires (Dev)
- barryvdh/laravel-ide-helper: ^2.7
- dms/phpunit-arraysubset-asserts: ^0.2.1
- friendsofphp/php-cs-fixer: ^3.13.0
- matthewbdaly/artisan-standalone: ^0.0.8
- mockery/mockery: ^1.2
- orchestra/testbench: ^7.15.0
- phpunit/phpunit: ^9.0
- psr/http-client: ^1.0.2
- psr/http-message: ^1.1.0
- squizlabs/php_codesniffer: ^3.4
- 1.x-dev
- 1.30.0
- 1.29.0
- 1.28.0
- 1.27.0
- 1.26.0
- 1.25.1
- 1.25.0
- 1.24.5
- 1.24.4
- 1.24.3
- 1.24.2
- 1.24.0
- 1.23.1
- 1.23.0
- 1.22.0
- 1.21.0
- 1.20.1
- 1.20.0
- 1.19.3
- 1.19.2
- 1.19.1
- 1.19.0
- 1.18.0
- 1.17.1
- 1.17.0
- 1.16.0
- 1.15.0
- 1.14.2
- 1.14.1
- 1.14.0
- 1.13.0
- 1.12.2
- 1.12.1
- 1.12.0
- 1.11.0
- 1.10.2
- 1.10.1
- 1.10.0
- 1.9.1
- 1.9.0
- 1.8.1
- 1.8.0
- 1.7.1
- 1.7.0
- 1.6.6
- 1.6.5
- 1.6.4
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.1
- 1.3.0
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.1
- 1.0.0
- 1.0.0-beta.1
- 1.0.0-beta.0
- 1.0.0-alpha.2
- 1.0.0-alpha.1
- 1.0.0-alpha.0
- 0.7.x-dev
- 0.7.7
- 0.7.6
- 0.7.5
- 0.7.4.1
- 0.7.4
- 0.7.3
- 0.7.2.1
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.9
- 0.6.8
- 0.6.7
- 0.6.6
- 0.6.5
- 0.6.4
- 0.6.3
- 0.6.2
- 0.6.1
- 0.6.0
- 0.5.11
- 0.5.10
- 0.5.9
- 0.5.8
- 0.5.7
- 0.5.6
- 0.5.5
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.1
- 0.4.0
- dev-feature/OPNDLG-2026_performance_improvements
- dev-feature/conversation_analysis_interpreter
- dev-feature/VRG-7_create_the_webhook_interpreter
- dev-fix/abstract_attribute_return_type
- dev-dependabot/npm_and_yarn/semver-6.3.1
- dev-feature/OPNDLG-1988-nu-webchat-platform
- dev-fix/meta_message_translation
- dev-feature/OPNDLG-1947_handover
- dev-feature/OPNDLG-2026_state_actions
- dev-feature/PersistAttributesMiddleware
- dev-feature/OPNDLG-1972_file_upload_message
- dev-rc/1.25.0
- dev-feature/ODTR-149_support_mmm_setup_using_iam_role_instead_of_aws_key_and_secret
- dev-feature/OPNDLG-1936_merging-entity-extraction-with-intent-classification
- dev-fix/ODTR-145_links_are_not_hyperlinked_only_plain_text
- dev-feature/OPNDGL-1963_analyse_improvements_core
- dev-feature/shallow-queries
- dev-rc/1.24.4
- dev-feature/optional-conversation-engine-performance-logging
- dev-temp/1.24.4-and-1.x
- dev-feature/shallow-starting-queries
- dev-feature/MOVA-272
- dev-feature/language-service-feature-flag
- dev-feature/OPNDLG-1934-spike-extracting-entities-openAI
- dev-fix/language-service-test-suite
- dev-fix/OPNDLG-1936
- dev-feature/MOVA-271
- dev-integration/language-services-may-2023
- dev-feature/MOVA-273
- dev-feature/MOVA-263
- dev-fix/json_serialize_return_type
- dev-feature/OPNDLG-1848-intent-handlers
- dev-feature/MOVA-173
- dev-feature/MOVA-265
- dev-rc/1.24.3
- dev-fix/OPNDLG-1843_log_user_and_scenario_for_alexa_requests
- dev-feature/OPNDLG-1859_adds_request_log_relationship_to_message
- dev-fix/chatbot-user-updated-at
- dev-fix/stored-event-cache-clear
- dev-rc/1.24.2
- dev-feature/OPNDLG-1855
- dev-feature/MOVA-222
- dev-fix/ODTR-135_form_default_value
- dev-feature/OPNDLG-1842
- dev-feature/MOVA-237
- dev-feature/laravel-10
- dev-fix/OPNDLG-1810_update_get_scenario_where_action_is_used
- dev-feature/php8.1
- dev-fix/ODTR-132_do_not_translate_messages_without_scenarios
- dev-chatwoot-demo
- dev-fix/export_to_non_en_base_language_scenario
- dev-feature/MOVA-207
- dev-feature/ODTR-130_delete_language
- dev-feature/OPNDLG-1872_user_attributes_performance
- dev-fix/ODTR-103_improve_registration_of_message_translators
- dev-feature/ODTR-124_config_for_default_scenario_base_language
- dev-feature/MOVA-114
- dev-feature/language_services
- dev-feature/ODTR-119_base_language_not_a_translation
- dev-feature/ODTR-92_persisting_translations_in_scenarios
- dev-feature/ODTR-122_translate_options_message
- dev-fix/ODTR-121_form_options
- dev-fix/OPNDLG-1875--handback-state-bug
- dev-feature/ODTR-114_auto_translate_languages_field
- dev-fix/ODTR-111_escaping_csv
- dev-feature/MOVA-187
- dev-feature/MOVA-198
- dev-fix/MOVA-197
- dev-fix/ODTR-112_fill_attributes_translated_text
- dev-temp/performance_enhancements
- dev-feature/OPNDLG-1664_large_scenarios_visualiser
- dev-fix/base_translation_formatter
- dev-feature/ODTR-86_use_current_language_on_translate
- dev-fix/translate_service_failing_tests
- dev-feature/ODTR-95_update_export_file_format
- dev-feature/ODTR-99_aws_translate
- dev-hotfix/stored_event_storage
- dev-feature/MOVA-110
- dev-feature/OPNDLG-1871_stored_event_storage
- dev-feature/MOVA-113
- dev-feature/MOVA-111
- dev-feature/MOVA-109
- dev-feature/MOVA-177
- dev-feature/MOVA-178
- dev-feature/ODTR-105_add_get_scenario_supported_languages
- dev-feature/ODTR-93_count_translation_strings
- dev-fix/update_delete_turn_events
- dev-feature/MOVA-164
- dev-feature/MOVA-163
- dev-feature/MOVA-162
- dev-feature/odtr-57-update-response-formatter-to-handle-translations
- dev-feature/ODTR-98_autotranslate_interfaces
- dev-feature/ODTR-99_AWS_translate_implementation
- dev-feature/ODTR-62_csv_file_import
- dev-feature/MOVA-106
- dev-rc/1.24.1
- dev-feature/OPNDLG-1845
- dev-fix/large_scenarios
- dev-rc/1.23.1
- dev-feature/MOVA-15
- dev-feature/OPNDLG-1845--responselog-acknowlegement-status
- dev-bug/luis-logging
- dev-feature/odtr-27-scripts-to-update-scenarios
- dev-revert-703-feature/ODTR-59-add-language-attribute
- dev-feature/files-message-type
- dev-feature/od-analyse
- dev-shift-76008
- dev-feature/MOVA-36
- dev-feature/ODTR-59-add-language-attribute
- dev-feature/MOVA-36_add_saving_of_stored_events_onto_redis_queue
- dev-feature/OPNDLG-1777_conversation-engine-functional-tests-improving
- dev-feature/ODTR-54_handle_new_options_message
- dev-features/add_translate_service_facade
- dev-feature/ODTR-17_translate_table_and_service_methods
- dev-feature/ODTR-18_options_message_type
- dev-feature/ODTR-16_messages_from_xml
- dev-rc/1.23.0
- dev-feature/ODTR-21_interface_translation_settings
- dev-fix/MOVA-59
- dev-feature/reduce-languge-list
- dev-feature/ODTR-23_scenario_supported_languages
- dev-spike/message-xml-reading
- dev-feature/ODTR-22_add_supported_languages
- dev-OPNDLG-1727-scenario-exists-rule-working-wrong
- dev-feature/conversation-engine-functional-tests
- dev-OPNDLG-1611-remove-dgraph-from-code-base
- dev-fix/OPNDLG-841--replace-dialogflow-dependency
- dev-feature/OPNDLG-1698-changing-scenario-bug
- dev-feature/OPNDLG-1742--reflection-default-configuration
- dev-feature/MOVA-13_apply_changes_from_PR_162
- dev-feature/OPNDLG-1696-scenario-alias
- dev-feature/MOVA-7_creating_endpoint_to_get_project_usage
- dev-feature/OPNDLG-1715--action-testing-backend
- dev-spike/OPNDLG-1636-scenario-id-alias
- dev-rc/1.21.0
- dev-fix/OPNDLG-1644--composite-collection-fix
- dev-feature/PEP-353--action-before-after-callbacks
- dev-fix/OPNDLG-1658_null_attribute_handling
- dev-fix/handback-user-attribute
- dev-rc/1.20.0
- dev-spike/od-translate-spike
- dev-feature/OPNDLG-1627-laravel-pint
- dev-feature/PEP-208--luis-machine-learning-entity-support
- dev-fix/sub-attribute-message-filling
- dev-fix/inferred-composite-nested-to-string
- dev-feature/PEP-109--composite-accessor-support
- dev-temp/composites-meta-2022-08-10
- dev-fix/decode_composite_inside_composite_json
- dev-feature/webchat-message-meta-data
- dev-spike/audio-message
- dev-feature/add_subtype_attribute_to_composite
- dev-feature/PEP-110_inferred_composite_attribute
- dev-fix/OPNDLG-1560--empty-conversation-system-bug
- dev-feature/PEP-107_foundation_for_composite_attribute
- dev-rc/1.19.0
- dev-feature/PEP-95--handback-support
- dev-fix/OPNDLG-1558-unable-to-create-response-intent
- dev-feature/chat-open-utterance-escalating
- dev-feature/meta-message-reset
- dev-feature/reset_meta_message
- dev-bug/OPNDLG-1516_intents_messages_ordering
- dev-feature/PEP-50--handover-support
- dev-feature/PEP-91_create_request_logger_helper
- dev-fix/button_message_generator_update
- dev-fix/dispatch_conversation_creation_events
- dev-feature/OPNDLG-1502_replace_all_data_clients
- dev-spike/test_for_conversation_eloquent_models
- dev-OPNDLG-1383--ASK-default-names
- dev-feature/OPNDLG-1473
- dev-OPNDLG-1412--voice-sample-message
- dev-feature/OPNDLG-1503_create_eloquent_model
- dev-feature/OPNDLG-1502_migrate_conversation_models
- dev-feature/add_interfaces_to_data_clients
- dev-feature/OPNDLG-1510_add_scene_data_client
- dev-feature/OPNDLG-1514-make-route-registration-configurable
- dev-feature/OPNDLG-1479_conversation_model_to_rdbms
- dev-feature/circleci_notification_updates
- dev-fix/OPNDGL-1483_form_message_checkbox
- dev-feature/OPNDLG-1475_user_data_in_rdbms
- dev-OPNDLG-1381--config-proerty-hiding
- dev-fix/avoid-cache-busting-on-env
- dev-fix/OPNDLG-798_attribute_messages
- dev-feature/dgraph-query-caching
- dev-feature/add_batch_dgraph_updates
- dev-feature/performance-test-branch
- dev-feature/conversation-event-dispatching
- dev-hotfix/revert-xml-update
- dev-OPNDLG-1337--configuration-validation
- dev-fix/OPNDLG-1403-better-validation-messages
- dev-OPNDLG-952_escape_attributes
- dev-fix/laravel-start-var-not-initialized
- dev-fix/OPNDLG-1429--error-intent
- dev-fix/component-settings
- dev-sandbox/20220209
- dev-OPNDLG-1335--generalise-setting
- dev-rc/1.5.0
- dev-feature/configuration-ownership-compatability
- dev-feature/multi-tenancy
- dev-feature/OPNDLG-594--soft-delete
This package is auto-updated.
Last update: 2023-07-13 10:48:44 UTC
README
OpenDialog is a platform that helps you design, develop, deploy and administer chatbots - or as we like to call them, conversational applications.
OpenDialog Core is the heart of this platform. It provides a framework for developing and integrating the different components that are required to build a conversational application.
OpenDialog is, on the one hand, very opinionated about how to model a conversational application, but, on the other hand, provides a lot of flexibility with respect to intent identification (or NLU more generally) . You can read more about it here.
If you are interested in seeing how OpenDialog works please head over to the OpenDialog app repository and follow the instructions there to install.
This repository is for those that are more interested in the inner workings of OpenDialog, and in particular those that would like to be involved with the core development of OpenDialog. Finally, this is also the right place if you want to integrate OpenDialog functionality into your own PHP application without a GUI.
Installing
To install using Composer run the following command:
composer require opendialogai/core
Local Config
To publish config files for local set up and customisation, run
php artisan vendor:publish --tag="config"
This will copy over all required config files into config/opendialog/
Publishing migration files
Migration files need to be published before they can be applied to an OpenDialog app's database.
To publish the migrations, run:
php artisan vendor:publish --tag="od-core-migrations"
This relies on the MULTI_TENANT
env having been set to true in the app's .env
file if being run as a
multi-tenant system to ensure the migrations end up in the right place
Running Code Sniffer
To run code sniffer, run the following command
./vendor/bin/phpcs --standard=od-cs-ruleset.xml src/ --ignore=*/migrations/*,*/tests/*
This will ignore all files inside of migration directories as they will never have a namespace
Git Hooks
To set up the included git pre-commit hook, first make sure the pre-commit script is executable by running
chmod +x .githooks/pre-commit
Then configure your local git to use this directory for git hooks by running:
git config core.hooksPath .githooks/
Now every commit you make will trigger php codesniffer to run. If there is a problem with the formatting of the code, the script will echo the output of php codesniffer. If there are no issues, the commit will go into git.
Local development and tests
We provide a Docker-based environment for local development and running tests. Head over there for more information.
Logging API requests
By default, all incoming and outgoing API calls will be logged to the request and response mysql tables.
To prevent this happening, set the LOG_API_REQUESTS
env variable to false
.
Introspection logging
To turn on introspection processing set the INTROSPECTION_PROCESSOR_ENABLED
env variable to true. This will add
extra information to all log messages including the class and line that generated the message.