odoo-addon-ai-oca-bridge


Nameodoo-addon-ai-oca-bridge JSON
Version 18.0.1.0.0.5 PyPI version JSON
download
home_pagehttps://github.com/OCA/ai
SummaryMakes a basic configuration to be used as bridge with external AI systems
upload_time2025-09-27 02:38:58
maintainerNone
docs_urlNone
authorDixmit,Odoo Community Association (OCA)
requires_python>=3.10
licenseAGPL-3
keywords
VCS
bugtrack_url
requirements ollama
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: https://odoo-community.org/readme-banner-image
   :target: https://odoo-community.org/get-involved?utm_source=readme
   :alt: Odoo Community Association

=============
AI OCA Bridge
=============

.. 
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! This file is generated by oca-gen-addon-readme !!
   !! changes will be overwritten.                   !!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! source digest: sha256:72deaa130a35eca64ce4bea745a612bb4d9a7271bdf7f9f9e016b0e7a47932a6
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
    :target: https://odoo-community.org/page/development-status
    :alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
    :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
    :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fai-lightgray.png?logo=github
    :target: https://github.com/OCA/ai/tree/18.0/ai_oca_bridge
    :alt: OCA/ai
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/ai-18-0/ai-18-0-ai_oca_bridge
    :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
    :target: https://runboat.odoo-community.org/builds?repo=OCA/ai&target_branch=18.0
    :alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module is used to create a bridge between Odoo and other AI systems
like n8n.

**Table of contents**

.. contents::
   :local:

Use Cases / Context
===================

Right now, there are 2 different approaches for AI integration with
Odoo:

1. Make everything inside Odoo.
2. Make it using other tools and integrate Odoo with these tools.

IMO, it would be better to make use of option 2 for different reasons:

- Odoo server is intended as a transactional system. AI systems requires
  other kind of characteristics
- Everything changes too fast. I am not confident that Odoo can keep the
  pace in this topic
- There are OSS tools that fills the gap perfectly and are created just
  for this topic.

Anyway, OCA is open to everyone and we don't intend to force an
opinionated way of doing. For this reason, we have this module, that can
be used as Bridge with AI systems.

Configuration
=============

As an administrator access ``AI Bridge\AI Bridge``.

Create a new bridge. Define the name, model, url and configuration.

In order to improve the view of the AI configuration, use groups and
domain to set better filters.

Payload Configuration
---------------------

On the external system, you will receive a POST payload. The data
included will be the following:

General
~~~~~~~

- \_odoo: Standard data to identify the Odoo Database
- \_model: Model of the related object
- \_id: Id of the related object
- \_response_url: Url to call with the response in case of async calls

Record Payload
~~~~~~~~~~~~~~

Adds a new item called record with all the fields.

Asynchronous and synchronous calls
----------------------------------

The new system allows asynchronous and synchronous calls. Asynchronous
calls makes sense when the task to be processed don't need to be
immediate. For example, reviewing an invoice and leave a comment with
the result. The same would happen with a chat message. We expect that
the system will leave time to the AI to answer and Odoo's user can do
other things.

Meanwhile, Synchronous calls will froze odoo system and wait for an
answer. This makes sense when we expect some feedback from odoo user. It
makes sense, when we open an action for example.

In the synchronous call, the result is processed when the AI system
answers on the webhook. On the other hand, it will be processed
automatically on the synchronous call.

Result processing
-----------------

With the answers of the system we expect to do something about it. We
have the following options:

No processing
~~~~~~~~~~~~~

In this case, the result will do nothing

Post a Message
~~~~~~~~~~~~~~

We will post a message on the original thread of the system. The thread
is computed by a function, so it can be overriden in future modules. It
expects the keyword arguments of the ``message_post`` function.

Action
~~~~~~

It expects to launch an action on the user interface. It only makes
sense on synchronous calls.

It expects an action item with the following parameters:

- action: xmlid of the action
- context: Context to pass to the action (not required)
- res_id: Id of the resource (not required)

Usage
=====

Use the bolt widget in the chatter to execute the different AI options.

The options will be filtered according to the configuration.

Known issues / Roadmap
======================

- Define examples to use and import
- Allow child fields. Right now, only first level fields are accepted.
- Information popover is not working properly when there is large data.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/ai/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/ai/issues/new?body=module:%20ai_oca_bridge%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Dixmit

Contributors
------------

- `Dixmit <https://www.dixmit.com>`__

  - Enric Tobella

- `Sygel Technology <https://www.sygel.es>`__

  - Valentín Vinagre

- `Binhex <https://www.binhex.cloud/>`__

  - Adria Hortoneda

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
   :alt: Odoo Community Association
   :target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/ai <https://github.com/OCA/ai/tree/18.0/ai_oca_bridge>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/OCA/ai",
    "name": "odoo-addon-ai-oca-bridge",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "Dixmit,Odoo Community Association (OCA)",
    "author_email": "support@odoo-community.org",
    "download_url": null,
    "platform": null,
    "description": ".. image:: https://odoo-community.org/readme-banner-image\n   :target: https://odoo-community.org/get-involved?utm_source=readme\n   :alt: Odoo Community Association\n\n=============\nAI OCA Bridge\n=============\n\n.. \n   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n   !! This file is generated by oca-gen-addon-readme !!\n   !! changes will be overwritten.                   !!\n   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n   !! source digest: sha256:72deaa130a35eca64ce4bea745a612bb4d9a7271bdf7f9f9e016b0e7a47932a6\n   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png\n    :target: https://odoo-community.org/page/development-status\n    :alt: Beta\n.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png\n    :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html\n    :alt: License: AGPL-3\n.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fai-lightgray.png?logo=github\n    :target: https://github.com/OCA/ai/tree/18.0/ai_oca_bridge\n    :alt: OCA/ai\n.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png\n    :target: https://translation.odoo-community.org/projects/ai-18-0/ai-18-0-ai_oca_bridge\n    :alt: Translate me on Weblate\n.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png\n    :target: https://runboat.odoo-community.org/builds?repo=OCA/ai&target_branch=18.0\n    :alt: Try me on Runboat\n\n|badge1| |badge2| |badge3| |badge4| |badge5|\n\nThis module is used to create a bridge between Odoo and other AI systems\nlike n8n.\n\n**Table of contents**\n\n.. contents::\n   :local:\n\nUse Cases / Context\n===================\n\nRight now, there are 2 different approaches for AI integration with\nOdoo:\n\n1. Make everything inside Odoo.\n2. Make it using other tools and integrate Odoo with these tools.\n\nIMO, it would be better to make use of option 2 for different reasons:\n\n- Odoo server is intended as a transactional system. AI systems requires\n  other kind of characteristics\n- Everything changes too fast. I am not confident that Odoo can keep the\n  pace in this topic\n- There are OSS tools that fills the gap perfectly and are created just\n  for this topic.\n\nAnyway, OCA is open to everyone and we don't intend to force an\nopinionated way of doing. For this reason, we have this module, that can\nbe used as Bridge with AI systems.\n\nConfiguration\n=============\n\nAs an administrator access ``AI Bridge\\AI Bridge``.\n\nCreate a new bridge. Define the name, model, url and configuration.\n\nIn order to improve the view of the AI configuration, use groups and\ndomain to set better filters.\n\nPayload Configuration\n---------------------\n\nOn the external system, you will receive a POST payload. The data\nincluded will be the following:\n\nGeneral\n~~~~~~~\n\n- \\_odoo: Standard data to identify the Odoo Database\n- \\_model: Model of the related object\n- \\_id: Id of the related object\n- \\_response_url: Url to call with the response in case of async calls\n\nRecord Payload\n~~~~~~~~~~~~~~\n\nAdds a new item called record with all the fields.\n\nAsynchronous and synchronous calls\n----------------------------------\n\nThe new system allows asynchronous and synchronous calls. Asynchronous\ncalls makes sense when the task to be processed don't need to be\nimmediate. For example, reviewing an invoice and leave a comment with\nthe result. The same would happen with a chat message. We expect that\nthe system will leave time to the AI to answer and Odoo's user can do\nother things.\n\nMeanwhile, Synchronous calls will froze odoo system and wait for an\nanswer. This makes sense when we expect some feedback from odoo user. It\nmakes sense, when we open an action for example.\n\nIn the synchronous call, the result is processed when the AI system\nanswers on the webhook. On the other hand, it will be processed\nautomatically on the synchronous call.\n\nResult processing\n-----------------\n\nWith the answers of the system we expect to do something about it. We\nhave the following options:\n\nNo processing\n~~~~~~~~~~~~~\n\nIn this case, the result will do nothing\n\nPost a Message\n~~~~~~~~~~~~~~\n\nWe will post a message on the original thread of the system. The thread\nis computed by a function, so it can be overriden in future modules. It\nexpects the keyword arguments of the ``message_post`` function.\n\nAction\n~~~~~~\n\nIt expects to launch an action on the user interface. It only makes\nsense on synchronous calls.\n\nIt expects an action item with the following parameters:\n\n- action: xmlid of the action\n- context: Context to pass to the action (not required)\n- res_id: Id of the resource (not required)\n\nUsage\n=====\n\nUse the bolt widget in the chatter to execute the different AI options.\n\nThe options will be filtered according to the configuration.\n\nKnown issues / Roadmap\n======================\n\n- Define examples to use and import\n- Allow child fields. Right now, only first level fields are accepted.\n- Information popover is not working properly when there is large data.\n\nBug Tracker\n===========\n\nBugs are tracked on `GitHub Issues <https://github.com/OCA/ai/issues>`_.\nIn case of trouble, please check there if your issue has already been reported.\nIf you spotted it first, help us to smash it by providing a detailed and welcomed\n`feedback <https://github.com/OCA/ai/issues/new?body=module:%20ai_oca_bridge%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.\n\nDo not contact contributors directly about support or help with technical issues.\n\nCredits\n=======\n\nAuthors\n-------\n\n* Dixmit\n\nContributors\n------------\n\n- `Dixmit <https://www.dixmit.com>`__\n\n  - Enric Tobella\n\n- `Sygel Technology <https://www.sygel.es>`__\n\n  - Valent\u00edn Vinagre\n\n- `Binhex <https://www.binhex.cloud/>`__\n\n  - Adria Hortoneda\n\nMaintainers\n-----------\n\nThis module is maintained by the OCA.\n\n.. image:: https://odoo-community.org/logo.png\n   :alt: Odoo Community Association\n   :target: https://odoo-community.org\n\nOCA, or the Odoo Community Association, is a nonprofit organization whose\nmission is to support the collaborative development of Odoo features and\npromote its widespread use.\n\nThis module is part of the `OCA/ai <https://github.com/OCA/ai/tree/18.0/ai_oca_bridge>`_ project on GitHub.\n\nYou are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.\n",
    "bugtrack_url": null,
    "license": "AGPL-3",
    "summary": "Makes a basic configuration to be used as bridge with external AI systems",
    "version": "18.0.1.0.0.5",
    "project_urls": {
        "Homepage": "https://github.com/OCA/ai"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "181dc57ff488c2b9d1492329adcc2e2f26a747bab1fde970e7c67dbec3bd43a8",
                "md5": "eae534ffe0e6d1196da2ec4db4e093ce",
                "sha256": "f4598a6c8bef3859d4dba365af6908c2f2fff56620da4ea5f36518e26c932351"
            },
            "downloads": -1,
            "filename": "odoo_addon_ai_oca_bridge-18.0.1.0.0.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "eae534ffe0e6d1196da2ec4db4e093ce",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 137037,
            "upload_time": "2025-09-27T02:38:58",
            "upload_time_iso_8601": "2025-09-27T02:38:58.705220Z",
            "url": "https://files.pythonhosted.org/packages/18/1d/c57ff488c2b9d1492329adcc2e2f26a747bab1fde970e7c67dbec3bd43a8/odoo_addon_ai_oca_bridge-18.0.1.0.0.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-27 02:38:58",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "OCA",
    "github_project": "ai",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "ollama",
            "specs": []
        }
    ],
    "lcname": "odoo-addon-ai-oca-bridge"
}
        
Elapsed time: 1.78580s