Серверні дії зі штучним інтелектом¶
Серверні дії AI розширюють можливості автоматизації Odoo, дозволяючи штучному інтелекту приймати рішення під час виконання робочого процесу.
Вони призначені для випадків, коли логіку неможливо повністю виразити через фіксовані умови, але все одно потрібне контрольоване виконання через стандартні серверні дії.
Jak fungují akce serveru AI¶
Pracovní postupy řízené AI v Odoo jsou postaveny na jasném rozdělení odpovědností mezi akci serveru AI, neboli Správce, a nástroj, neboli Pracovník.
Akce serveru AI: správce¶
Akce serveru AI funguje jako rozhodovatel, neboli správce. Přečte záznam a jeho kontext. Interpretuje výzvu AI. A rozhodne, který nástroj zavolat a jaké argumenty použít.
Akce serveru nevynucuje obchodní pravidla, přímo neupravuje záznamy ani nezaručuje správnost operace. Jeho role je omezena na rozhodování.
Nástroj AI: pracovník¶
Nástroj je standardní akce serveru s povolenou volbou Použít v AI na kartě Použití. Nástroje obsahují veškerou prováděcí logiku a provádějí aktualizace, přesuny nebo zápisy záznamů. Nástroje musí explicitně vynucovat obchodní pravidla v kódu Pythonu.
Pokud je nástroj volán akcí serveru AI, provede se bezpodmínečně, pokud mu v tom samotný kód nezabrání.
Pracovní postup akce serveru AI¶
Pracovní postup akce serveru AI následuje tuto sekvenci:
Záznam spustí akci serveru AI.
Výzva AI je vyhodnocena s použitím záznamu jako kontextu.
AI vybere jeden z dostupných nástrojů.
AI poskytne argumenty očekávané nástrojem.
Vybraný nástroj provede svůj kód Pythonu.
Важливо
Akce serveru AI fungují bez vlastní logiky pouze tehdy, když základní chování již v Odoo existuje, například přesunutí dokumentu do složky. V těchto případech AI vybírá parametry a Odoo provádí akci.
Procházení případu použití¶
Příklad Automatické třídění dokumentů v Doručené poště demonstruje plný vzor Akce serveru AI. Přejděte do nabídky Akce serveru pomocí .
Примітка
Tato akce serveru je navržena tak, aby kontrolovala obsah dokumentů a přidávala štítky. Samotná akce nepřesouvá dokumenty ani nepřidává štítky, pouze rozhoduje, který nástroj by měl být použit na základě obsahu dokumentů.
Model pro akci je uveden jako Dokument a Typ je AI.
Запит для цієї дії надає контекст про документ, а також мету дії.
ПолеToolвключає кілька дій, які можна виконати на основі цього запиту, включаючи переміщення документа, додавання тегів або створення рахунків чи рахунків-фактур.
Примітка
AI: Add Tags, AI: Move to Folder та AI: Rename Document — це серверні дії Execute Code, тобто вони запускають код Python.
Наприклад, якщо дія визначає на основі вмісту документа, що найбільш відповідним інструментом є AI: Move to Folder, код Python виконує наступну операцію:
ai['result'] = record._ai_action_move_in_folder(folder_id)
Цей код виконується безумовно при виклику та здійснює переміщення за допомогою існуючого методу.
Примітка
AI не виводить аргументи з коду Python або з сигнатури методу. Натомість аргументи, що передаються інструменту, визначаються виключно конфігурацією інструменту.
Для інструменту AI: Move to Folder код Python очікує змінну з назвою folder_id. AI знає, що потрібно надати folder_id, оскільки вона явно оголошена як аргумент у конфігурації. Це можна знайти на вкладці Usage серверної дії в поліAI Schema. СтовпецьNameпід AI Schema повинен точно відповідати назві змінної, що використовується в коді Python.
AI використовує опис аргументу, щоб зрозуміти, що представляє параметр, який тип значення очікується та коли доцільно його надавати.
Якщо аргумент не визначений на вкладці Usage, AI не може його надати, навіть якщо код Python посилається на нього.
Створення власних інструментів AI¶
Той самий шаблон з прикладу Auto-sort documents in Inbox вище можна реалізувати за допомогою стандартної логіки Odoo. Наприклад, щоб створити дію, яка може оновити опис завдання, можна створити дію Execute Code з наступним кодом:
record.write({'description': content})
Для правильної роботи content повинен бути визначений як аргумент на вкладці Usage інструменту.
Див. також
Поширені проблеми¶
Чому поле Tools порожнє?¶
Переконайтеся, що принаймні одна серверна дія має увімкнену опціюUse in AI.
Переконайтеся, що принаймні один інструмент призначений тій самій моделіModel, що й серверна дія.
Чому інструмент запустився, але нічого не сталося?¶
Код Python завершився без змін.
Обов’язкові аргументи були відсутні або порожні.
Бізнес-умови не були реалізовані в логіці інструменту.
Чому ШІ вибрав неочікуваний інструмент?¶
У підказці бракувало достатнього контексту.
Кілька інструментів відповідали одному й тому ж наміру.
Жодних обмежень не було застосовано на рівні інструменту.