Skip to Content

PMIS AI Browser Operator

Beta Licenca: LGPL-3 PMISuite/Beta Različica: 18.0

Jezik / Language: English | Slovenščina

Omogoča sledenje izvoru ukazov, čakalno vrsto in izvajanje dejanj z umetno inteligenco ob upoštevanju pravic v Odoo 18 Community. Pooblaščena neposredna sporočila v aplikaciji Discuss postanejo zapisi ukazov, ki jih operater lahko pregleda, izvede prek običajnega uporabniškega vmesnika Odoo in zaključi z rezultatom, zabeleženim v revizijski sledi.

Modul zagotavlja pooblastila, sledenje, operativna navodila, upravljana v Odoo, zaščiteno strežniško povezavo s ChatGPT, nadaljevanje orkestracije umetne inteligence v ozadju in izvajalnik dejanj Odoo. Privzeta povezava uporablja žetone za dostop do Codex v delovnem prostoru, vezane na posamezno podjetje. Uvožene seje OAuth, zunanji izvajalni proces in ročna predaja navodil ChatGPT v brskalniku ostajajo izbirni napredni postopki.

Za postopno nastavitev in vsakodnevno uporabo glejte Uporabniški priročnik. Oznake uporabniškega vmesnika so ohranjene v angleščini, kot v izvirniku in na posnetkih zaslona.

Funkcionalnosti

Zajem pooblaščenih ukazov

  • Obstoječe interne uporabnike Odoo nastavi kot bote v brskalniku z izrecno pooblaščenimi kombinacijami naročnika in neposrednega klepeta.

  • Poišče obstoječe neposredne pogovore, ne da bi ustvarjal klepete, dodajal člane ali se izdajal za katerega od udeležencev. Upravitelji vidijo identifikatorje ustreznih pogovorov in oznake udeležencev, ne pridobijo pa dostopa do vsebine zasebnih sporočil.

  • Zajame nove neprazne komentarje v Discuss samo, kadar se uporabnik, ki objavlja, ustvarjalec sporočila in avtor ujemajo z nastavljenim naročnikom, sta bot in pooblastilo aktivna ter klepet vsebuje natanko partnerja naročnika in bota brez gostov. Dejanska sestava članstva se preveri ob vsaki objavi.

  • Vsako ustrezno sporočilo uvrsti v čakalno vrsto brez razlage naravnega jezika ali razčlenjevanja ukaznih predpon. Pooblaščeni neposredni klepeti so vhodni kanali samo za ukaze; tudi naročnikove potrditve in dodatna vprašanja postanejo ukazi.

Čakalna vrsta in revizijska sled

  • Zagotavlja čakalno vrsto Active Work (čakajoče delo in delo v izvajanju), urejeno od najstarejšega zapisa, združevanje po botu in stanju, iskanje po besedilu in identifikatorju vira, razloge za upravičenost, zajeto besedilo, napredek oziroma rezultat bota in revizijsko zgodovino.

  • Čakalno vrsto odpre v pogledu kanban, združenem po stanju; na voljo je tudi seznam. Kartice prikazujejo predogled navodila, bota, naročnika, čas zajema in trenutno upravičenost. Odprite kartico za pregled celotnega ukaza in uporabo dejanj njegovega življenjskega cikla; vlečenje kartic med stanji je onemogočeno.

  • Pred začetkom ukaza ponovno preveri nastavitve, članstvo, identiteto in nespremenjeno izvorno sporočilo.

  • Ob spremembi ali izbrisu izvornega sporočila ohrani izvor ukaza in posnetke besedila ter preprečuje spreminjanje izvora prek ORM/RPC, tudi upraviteljem.

  • Zajem ukaza, spremembe stanja in posodobitve opomb o rezultatu zabeleži kot nespremenljive revizijske dogodke z uporabnikom, ki je dejanje izvedel, in časom.

  • Dejanja življenjskega cikla izvajanja omeji na dodeljenega bota, zaporedno obravnava posodobitve ukazov in zamrzne zapise v končnih stanjih.

  • Normalizirano zajeto navodilo prepozna s shranjeno zgoščeno vrednostjo SHA-256.

Nastavitev

Poslovne veščine za ponovno uporabo

En bot lahko izbira in združuje več veščin za različne ukaze. Upravitelji vzdržujejo Configuration → AI Skills in na zavihku Skills posameznega bota dodelijo do 20 delovnih postopkov. Začetni postopki pokrivajo CRM, prodajne ponudbe in prodajna naročila; niso dodeljeni samodejno in ne namestijo izbirnih poslovnih aplikacij.

Vsaka veščina ima tehnično kodo, povzetek za izbiro, navodila, samodejno različico in zahteve glede zmožnosti v obliki JSON. Na primer, {"sale.order": ["read", "create", "action:action_confirm"]} zahteva, da so vse navedene operacije na voljo v zmožnostih izvajalnika bota, ki deluje kot običajen uporabnik. Uporabite search, read, create, write ali action:<method>. Prazen slovar zagotavlja splošna navodila brez zahteve po določeni aplikaciji. Zahteve določajo razpoložljivost veščine; ne omejujejo in ne podeljujejo operacij izvajalnika.

Ob začetku ukaza z omogočenim izvajanjem se njegove razpoložljive dodeljene veščine zamrznejo. Poziv vsebuje njihove povzetke; umetna inteligenca izbere postopek z obstoječim orodjem odoo_executor in zahtevo {"operation": "load_skill", "skill": "<code>"}. Izbrana zamrznjena navodila se nato vključijo v nadaljnje pozive. Izbira ustvari revizijski dogodek in porabi klic orodja. Ponovljena izbira ne ustvari podvojenega dogodka. Za eno nalogo je mogoče naložiti več veščin. Enak vmesniški dogovor velja v vseh povezanih izvajalnih okoljih, pripravljeni ročni poziv pa prikazuje isti katalog.

Sprememba navodil poveča njihovo različico in vpliva na prihodnje ukaze. Začeti ukazi ohranijo svoje posnetke; nove dodelitve ne vstopijo v obstoječa izvajanja. Nalaganje ponovno preveri trenutno dodelitev, stanje arhiviranja in zahteve glede zmožnosti. Že naložena navodila ostanejo zamrznjena: za ustavitev dela prekličite aktivne ukaze. Ukazom, začetim pred nadgradnjo modula, se posnetki ne dodajo naknadno.

Operaterji lahko berejo veščine, dodeljene njihovemu botu, ne morejo pa jih vzdrževati. Upravitelji lahko vzdržujejo katalog; namesto brisanja se uporablja arhiviranje. Veščine ne podeljujejo poslovnih pravic, dostopa do podjetij ali pooblastil zunaj zajete zahteve. Priprava ponudbe nikoli ne pomeni tudi potrditve naročila. Pošiljanje ponudb, izdajanje računov, dostava, preklic in urejanje potrjenih naročil ostajajo nepodprti.

Odvisnosti in dostop

Modul je odvisen od Odoo Discuss (mail) in base_setup. Podprta dejanja Odoo se izvajajo prek vgrajenega izvajalnika. Samodejno načrtovanje z umetno inteligenco privzeto poteka na strežniku Odoo. Strežnik Linux potrebuje Codex CLI 0.159.3 ali novejši, dostopen prek PATH storitve Odoo ali prek absolutne poti do izvršljive datoteke, ki jo nastavi skrbnik. Namestite ga iz uradne distribucije Codex; ni odvisnost Python in se zato ne namesti prek requirements.txt. Na uporabniških računalnikih ni potrebna namestitev programske opreme. Potrebni so delujoči izvajalni procesi cron in odhodne povezave HTTPS do OpenAI. Še vedno veljajo pogoji ponudnika in dovoljenja delovnega prostora.

Vsakemu uporabniku bota, ki potrebuje dostop do čakalne vrste, dodelite Browser Operator. Osebam, ki upravljajo nastavitve botov in pooblastila za ukaze, dodelite Browser Operator Manager; ta skupina vključuje Browser Operator, ne podeli pa skrbniških pravic za Settings ali dostopa do vsebine zasebnih sporočil Discuss.

Upravitelji lahko pregledajo vsak zajet ukaz in njegovo revizijsko zgodovino, vključno z zasebnim besedilom ukaza. To vlogo zato dodelite samo zaupanja vrednim skrbnikom ukazov. Ne podeljuje splošnega dostopa do zasebne zgodovine Discuss. Upravitelji lahko prekličejo čakajoče delo ali delo v izvajanju z obveznim razlogom oziroma aktivnemu delu dodajo upravno opombo. Ta namenska dejanja ustvarijo izrecno tipizirane revizijske dogodke z dejanskim izvajalcem in časovnim žigom. Nikoli ne zapisujejo napredka oziroma rezultata bota, ne postanejo dodatna navodila in ne pošiljajo sporočil v klepet. Upravitelji ne morejo začeti, zavrniti, dokončati ali označiti kot neuspešne ukazov drugega bota. Drugi operaterji lahko berejo in posodabljajo samo ukaze, naslovljene na njihovega uporabnika Odoo. Upravitelj, ki je hkrati dodeljeni bot, deluje pod identiteto tega bota. Naročniki morajo biti aktivni interni uporabniki, za pošiljanje ukazov pa ne potrebujejo operaterske skupine. Interni uporabniki brez operaterske skupine, uporabniki portala in javni uporabniki prek tega modula nimajo dostopa do čakalne vrste.

Poslovne skupine in dovoljena podjetja nastavite v običajnih uporabniških nastavitvah. Nastavljenim uporabnikom se pravice ne dodelijo samodejno. Discuss je skupen več podjetjem: pooblastilo za ukaz določa uporabnika in kanal, ne dostopa do podjetja. Poslovne operacije ostajajo podrejene običajnim pravicam bota in njegovemu dostopu do podjetij.

Nastavitev bota in naročnika

  1. V običajnih uporabniških nastavitvah ustvarite namenskega internega uporabnika Odoo, na primer PMIS AI Bot. Dodelite mu operatersko skupino, poslovne pravice in podjetja. UID 1 ni mogoče nastaviti kot bota. Namestitev ne ustvari uporabnikov botov.

  2. Kot upravitelj odprite PMIS AI Browser Operator → Configuration → Browser Bots in ustvarite nastavitev bota, povezano s tem uporabnikom.

  3. Vsak naročnik naj vzpostavi neposreden pogovor Discuss z botom. Oba uporabnika morata biti aktivna in imeti različna partnerja.

  4. Dodajte naročnika pod Authorized Command Channels. Če obstaja en sam veljaven klepet, je izbran samodejno. Če jih je več, izberite pravilen Direct Chat. Z Resolve Direct Chat na obrazcu pooblastila poiščite obstoječ pogovor, ko je ta vzpostavljen.

  5. Aktivirajte samo strukturno veljavna pooblastila. Med čakanjem na pogovor lahko shranite neaktivno vrstico. Polja za preverjanje razlikujejo strukturno veljavnost od omogočenega zajema; za zajem ukazov morata biti aktivna tako bot kot pooblastilo.

Nastavitve botov in pooblastila arhivirajte, ko jih ne potrebujete več; pravice dostopa modula ne dovoljujejo njihovega brisanja.

Uporaba

Izvajanje prek povezave s ChatGPT

Operativna navodila in zajete poslovne zahteve ostanejo nastavljeni v Odoo; prilagojena navodila ChatGPT ali ročna priprava JSON niso potrebni.

Privzeto izvajalno okolje Company Codex Access Token uporablja poverilnico delovnega prostora, nastavljeno za posamezno podjetje v Settings → AI Browser Operator. Ne potrebuje pojavnega okna OAuth, uporabniškega pomožnega programa, ključa API Odoo ali sprememb navodil ChatGPT.

  1. V delovnem prostoru ChatGPT Business ali Enterprise omogočite ustvarjanje žetonov za dostop in lokalni dostop do Codex za lastnika postopka. Ustvarite žeton z obsegom Codex in določenim datumom poteka. Žeton Workspace Agents ali ključ Platform API ga ne nadomesti. Glejte dokumentacijo OpenAI o žetonih za dostop.

  2. Kot skrbnik nastavitev Odoo izberite predvideno podjetje, odprite Settings → AI Browser Operator, vnesite New Codex Access Token in shranite. Polje je namenjeno samo vpisu: sprejeti žetoni se nikoli ne naložijo nazaj v obrazec. Prazno polje ohrani trenutni žeton. Uporabljajte HTTPS in zaščitite strežnik.

  3. Nastavite Codex Executable, če ni na PATH storitve Odoo. Ta nastavitev izvršljive datoteke velja za celoten strežnik, ne za posamezno podjetje.

  4. Izberite Refresh Models. Izpis kataloga ne preveri upravičenosti do uporabe. Test Inference izrecno pošlje majhno sintetično zahtevo s prvim modelom iz kataloga, kar porablja uporabo delovnega prostora, ne pošilja pa poslovnih zapisov.

  5. Pri botu izberite Company Codex Access Token, določite podjetje izvajanja ali ohranite privzeto podjetje uporabnika bota, nato izberite Refresh Company Connection. Izberite model iz kataloga in omogočite AI Enabled ter Odoo Executor. Uporabnik Odoo mora imeti dostop do podjetja izvajanja.

Samo skrbniki nastavitev, dodeljeni podjetju, lahko zamenjajo ali odstranijo njegov žeton. Operaterji in njihovi upravitelji lahko osvežijo nezaupni katalog bota, ne morejo pa pridobiti njegove poverilnice. Žetoni predstavljajo svojega ustvarjalca v delovnem prostoru ChatGPT; skupna uporaba povezave podjetja ne pomeni izdajanja za naročnika Odoo. Potekle ali preklicane žetone zamenjajte v Settings. Zamenjava ali odstranitev ustavi shranjeno delo ob naslednjem koraku izvajalnega procesa; že potrjene poslovne spremembe ostanejo. Odstranjene žetone prekličite tudi v ChatGPT. Sprememba podjetja izvajanja ali dodeljenega uporabnika bota razveljavi vezavo dnevnika; skrbniki morajo staro delo pregledati in preklicati, namesto da bi negotove spremembe prenesli na drugo identiteto.

Načrtovano dejanje PMIS AI: Process Server Instructions se izvaja vsako minuto in ob vsakem klicu posameznega aktivnega bota premakne za največ en korak načrtovanja. Codex predlaga samo omejeno strukturirano operacijo ali poročilo. Odoo predlagana dejanja izvede v kratkih transakcijah običajnega uporabnika, shrani njihova potrdila in jih posreduje naslednjemu koraku načrtovanja. Lokalna lupina, vtičniki, dostop do slikovnih datotek, spletno iskanje, programski kavlji in podagenti so onemogočeni; podrejeno izvajalno okolje ima zasebne začasne nastavitve in omejen bralni dostop do datotečnega sistema. Proces se po vsaki zahtevi konča.

Imported OAuth Session (Advanced) ohranja splošni postopek OpenAI za prenos na oddaljeni strežnik. Stran Configure AI Connection pojasnjuje lokalno odobritev OAuth in varen prenos poverilnic. External Companion (Advanced) ohranja samostojno izvajalno okolje z uporabo --sign-in in ključem API dodeljenega uporabnika bota Odoo, ki se vnese v zasebnem pozivu. Ti izbirni načini imajo ločena pravila prevzema ukazov od okolja z žetonom podjetja in za njegovo delovanje niso potrebni.

Po povezavi osvežite zavihek AI Connection bota, izberite model računa in omogočite AI Enabled. Če je AI Auto Run izklopljen, upravitelj ali dodeljeni bot vsak veljaven čakajoč ukaz uvrsti za izvajanje z Queue AI. Če je vklopljen, se ustrezni čakajoči ukazi Discuss prevzamejo samodejno. Upravitelji lahko delo uvrstijo v vrsto, vsi dejanski klici pa se izvajajo kot dodeljeni običajni uporabnik bota Odoo.

Izbrano izvajalno okolje OpenAI pošlje operativna navodila Odoo, zajete ukaze, zmožnosti in potrebne rezultate orodij. Zahteve z žetonom podjetja uporabljajo podprti protokol Codex app-server; zahteve z uvoženo sejo uporabljajo Responses API. Rezultati načrtovanja se preverijo pred klici izvajalnika, ki upoštevajo pravice. Podprta so spodaj navedena nameščena orodja za stike, CRM, prodajo in spletna mesta. Model nima dostopa do lupine, poljubnega RPC, neomejenega ORM ali končne točke za piškotke brskalnika ChatGPT. Sklepanje pri ponudniku poteka zunaj transakcij podatkovne baze Odoo.

Odoo in izbrano izvajalno okolje omejita delo na nastavljeno število klicev orodij (1–50). Odoo pred vsakim klicem ponovno preveri pooblastilo, pravice izvajanja in dostopa do podjetja ter omejitev izvajanja; zavrne izvajanja, starejša od 15 minut. Vsaka dokončana sprememba se potrdi samostojno s svojim potrdilom: poznejša napaka ne razveljavi predhodnih sprememb. Končno poročilo modela se shrani kot Awaiting Review, ne samodejno kot Done. Preglejte potrdila o izvedbi in spremenjene zapise, nato zaključite običajni življenjski cikel bota. Sama poročila niso dokaz uspešne poslovne izvedbe.

Upravičenost računa, izbiro modelov, podeljeno dovoljenje za uporabo naročniškega paketa in omejitve uporabe določa OpenAI. Sama prijava z identiteto ChatGPT ne zadostuje. Izvajalno okolje sporoči manjkajoča dovoljenja in omejitve računa oziroma uporabe brez ponavljajočih prijav ali ponovnih poskusov ob napakah kvote. Ta integracija ne more zagotoviti podpore za vsak paket ChatGPT; preverite dostop aplikacij in omejitve v ChatGPT Settings → Usage.

Nadzor izvajalnega okolja in zasebnost

Zaščiten dnevnik za nadaljevanje pred izvedbo shrani celotne elemente odgovorov in izvirne identifikatorje klicev. Ob izgubljenem odgovoru na spremembo se vrne njeno potrdilo, namesto da bi nastala podvojena operacija. Identifikatorji prevzema omogočajo tudi obnovitev izgubljenih odgovorov na prevzem. Strežniški izvajalni proces po omrežnih prekinitvah samodejno nadaljuje dnevnik z zamikom pred ponovnim poskusom. Napake pravic in kvot ustavijo samodejne ponovne poskuse; po odpravi omejitve računa uporabite Refresh Company Connection (ali Refresh Server Connection pri uvoženi seji OAuth). Petnajstminutna omejitev izvajanja velja tudi med načrtovanimi koraki. Uspešno poročilo počisti dnevnik. Preklic prepreči nadaljnje klice, ne more pa razveljaviti sprememb ali odpoklicati konteksta, že poslanega OpenAI.

Žetoni podjetij so shranjeni pod <odoo-data-dir>/pmis_ai_codex/<database-digest>/<company-id>/. Dnevniki poslovnih podatkov okolja z žetonom podjetja so ločeni, pod <odoo-data-dir>/pmis_ai_codex_journals/pmis_ai_server/<database-digest>/<bot-id>/. Žetoni za dostop, osveževanje in identiteto uvožene seje ter dnevniki so pod <odoo-data-dir>/pmis_ai_server/<database-digest>/<bot-id>/, v imenikih z dostopom samo za lastnika in v datotekah, ki se zamenjajo atomarno. Niso shranjeni v poljih ORM, priponkah, shrambi brskalnika, datotekah repozitorija ali diagnostičnih dnevnikih. Imena oziroma UUID podatkovnih baz ločujejo profile, shranjena vezava pa preprečuje tiho ponovno uporabo dnevnikov po spremembi dodeljenega uporabnika Odoo ali podjetja izvajanja. Zaščitite imenik izvajalnega okolja in njegove varnostne kopije; namestitve na več vozliščih potrebujejo skupno zaščiteno shrambo z delujočim zaklepanjem datotek. Ne kopirajte aktivnih sej z obnavljajočimi se žetoni med izvajalnimi procesi. Prenos prek HTTPS prenese skrivnosti v območje zaupanja upravljavca strežnika.

Izbirni zunanji spremljevalni program hrani profil pod ~/.config/pmis-ai-operator/<profile>/. Njegove možnosti --once, --sign-out in Ctrl+C veljajo samo za to zunanje izvajalno okolje. Stanje povezave Odoo prikazuje dejavnost izvajalnega okolja, ne zagotavlja pa upravičenosti računa ali preostale kvote.

Viri za implementacijo: uradna dokumentacija za registracijo in prijavo, sklepanje modelov in omejitve predogledne različice.

Izvajalnik dejanj Odoo

Kot upravitelj omogočite Execution Enabled na zavihku Odoo Executor bota. Izberite Execution Company, do katerega ima uporabnik dostop, ali pustite polje prazno za uporabo privzetega podjetja uporabnika bota. Običajne poslovne skupine Odoo nastavite ločeno; omogočanje te nastavitve ne podeli poslovnih pravic.

Po Claim / Start lahko dodeljeni bot z Execute Prepared Action pregleda razpoložljive operacije, pošlje strukturirano zahtevo za dejanje in pregleda rezultat. To je ročno pogovorno okno za integracijo oziroma preizkušanje, ne povezava z umetno inteligenco v naravnem jeziku. New Call namenoma začne novo zahtevo; ponovitev istega identifikatorja klica spremembe vrne obstoječe potrdilo brez ponovitve spremembe. Pri ponovnem poskusu zahteve z izgubljenim odgovorom ohranite isti identifikator klica.

Podprte nameščene aplikacije postanejo razpoložljive glede na pravice ACL modelov in skupine polj uporabnika bota. Vsaka izvedba preveri trenutni izvor ukaza, aktivnost uporabnika in bota, operatersko članstvo, prevzeto stanje, omogočeno izvajanje, pravila zapisov, dostop do povezanih zapisov in obseg podjetja. Upravitelji ne morejo izvajati ukazov drugega bota. Izvajalnik pred poslovnim dostopom odstrani kontekst, ki ga je posredoval klicatelj, in način povišanih pravic. Vsak klic uporablja natanko eno nastavljeno podjetje.

Začetni register podpira:

  • Stike: iskanje, branje, ustvarjanje in urejanje podprtih polj stikov oziroma naslovov.

  • CRM: iskanje, branje, ustvarjanje in posodabljanje sledi oziroma priložnosti, vključno s stopnjami in pričakovanimi prihodki; označitev priložnosti kot dobljene prek standardnega dejanja Odoo.

  • Prodajo: ustvarjanje in urejanje osnutkov ponudb in njihovih postavk, branje izdelkov in cenikov ter potrjevanje ponudb prek standardnega dejanja Odoo. Potrjena naročila in njihove postavke so izključeni iz orodij za urejanje osnutkov.

  • Spletno mesto: pregled strani in spletnih mest, zamenjava statične vsebine znotraj enolično določenega elementa v wrap strani, posodobitev metapodatkov oziroma stanja objave za posamezno spletno mesto ter ustvarjanje ali posodabljanje menijev. Skupna vsebina strani uporablja mehanizem Odoo kopiranja ob pisanju za izrecno izbrano spletno mesto. Obstoječe direktive postavitve QWeb ostanejo nedotaknjene; vnesena vsebina se prečisti in ne more dodajati direktiv QWeb. Poljubno urejanje pogledov oziroma predlog ni na voljo.

Te aplikacije so izbirne: namestitev tega dodatka ne namesti CRM, Sales ali Website. Nepodprti modeli, polja, metode, neposredna Python/SQL, brisanje, upravljanje poverilnic in poljuben kontekst niso na voljo. Dodatni moduli lahko zasebni register pmis.ai.command.executor._model_specs() razširijo s pregledanimi poslovnimi vmesniki; običajna preverjanja uporabnika in podjetja še vedno veljajo.

Uspešne spremembe in njihova nespremenljiva potrdila oziroma revizijski dogodki se shranijo v eni transakciji podatkovne baze. Napaka razveljavi spremembe podatkovne baze tega klica. Potrdila ohranijo operacijo, izvajalca, podjetje, identifikator klica, zgoščeno vrednost zahteve in identifikatorje prizadetih zapisov; ne hranijo posredovanih vrednosti polj ali posnetkov prebranih poslovnih zapisov. Pred ponovno vrnitvijo potrdila se preverita trenutni dostop in pooblastilo. Iskanja so omejena na 50 zapisov, odmik 10.000, neposredna podprta polja in omejene zahteve oziroma rezultate JSON. Gnezdeni ukazi za zapisovanje relacij niso na voljo; postavke ponudb ustvarjajte z ločenimi klici.

Nameščen dodatek lahko običajnim dejanjem Odoo, vključno s potrditvijo naročila, doda stranske učinke. Razveljavitev transakcije podatkovne baze ne more razveljaviti oddaljenih učinkov, ki jih je takšna razširitev že poslala. Revizijska potrdila dokazujejo sprejete klice orodij, ne zunanje dostave ali namena v naravnem jeziku. Umetna inteligenca oziroma operater mora vsak klic ohraniti v obsegu zajetega navodila; Odoo tega obsega ne sklepa iz besedila.

Vmesniški dogovor povezovalnika

Prijavite se kot dodeljeni bot z običajnim mehanizmom sej/RPC Odoo. Za prevzet ukaz action_get_executor_tools() vrne sheme funkcij in trenutne zmožnosti modelov, polj ter dejanj. Povezovalnik strukturirano zahtevo modela posreduje v action_execute_tool(call_id, request) in rezultat vrne kot izhod klica funkcije. Za vsako spremembo zagotovi stabilen enoličen identifikator klica, klice ponudnika izvaja zunaj transakcije Odoo in pred vsakim nadaljnjim klicem orodja osveži pooblastilo ukaza. Nikoli ne izbere druge identitete izvajanja Odoo in ne posreduje konteksta s povišanimi pravicami.

Primer sintetične zahteve za stik:

{"operation": "create", "model": "res.partner",
 "values": {"name": "Synthetic contact"}}

Zahteva za vsebino spletnega mesta uporablja operation: edit_page, model: website.page, en identifikator strani in values z element_id ter html. Za skupne strani navedite tudi website_id. Vrnjeni identifikator strani določa kopijo za posamezno spletno mesto in se lahko razlikuje od posredovanega identifikatorja strani.

Strežniški izvajalni proces z žetonom podjetja ta dogovor implementira s strukturiranim načrtovanjem Codex. Napredni izvajalni proces OAuth in izbirni spremljevalni program uporabljata pretočno orkestracijo Responses. Izvajalnik deluje neodvisno od obeh ponudnikov in v svojih poslovnih transakcijah ne pošilja zahtev ponudniku umetne inteligence.

Predaja navodil ChatGPT v brskalniku

Upravitelji vzdržujejo Operating Instructions na zavihku ChatGPT Instructions bota. Ta navodila opisujejo, kako izvesti pooblaščeno delo in o njem poročati; ne morejo odobriti dodatnih poslovnih operacij ali razširiti pravic uporabnika Odoo. V to polje ne vnašajte gesel, žetonov ali drugih poverilnic.

Open ChatGPT / Sign In odpre ChatGPT v drugem zavihku brskalnika. Tam se prijavite s predvidenim računom in izberite predvideni delovni prostor. Prijava ostane v tem profilu brskalnika: Odoo ne hrani poverilnic ChatGPT, ne more preveriti aktivnega računa in ne deli njegove seje z drugimi uporabniki Odoo.

Po Claim / Start lahko dodeljeni bot izbere Prepare ChatGPT Instructions. Preglejte ustvarjeni poziv, uporabite Copy Instructions, odprite ChatGPT in ga prilepite v nov pogovor. Poziv vključuje meje izvajanja, identifikatorje ukaza in izvornega sporočila, zgoščeno vrednost ukaza, trenutna navodila upravitelja in nespremenljiv zajeti poslovni ukaz. Izključuje nastavitvene opombe, rezultate bota in upravne opombe. Prilagojena navodila ChatGPT niso potrebna. Priprava poziva ne spremeni stanja ukaza in ne pošlje podatkov. Pošiljanje v ChatGPT njegovo vsebino deli s storitvijo tega računa.

Strežnik zavrne predajo za neprevzeto delo, delo v končnem stanju ali delo s preklicanim pooblastilom ter za uporabnike, ki niso dodeljeni bot, vključno z upravitelji. Osvežite pred pripravo in pred nadaljnjimi operacijami; kopiran poziv je posnetek in ga ni mogoče preklicati na daljavo. Poslovno delo pooblašča samo zajeti ukaz. Za samodejno uporabo orodij izvajalnika Odoo seja ChatGPT potrebuje prijavljen povezovalnik ali razpoložljivega operaterja v brskalniku. Kopiranje navodil ne zagotovi nobene od teh povezav. Dejanski rezultat zabeležite prek obstoječega življenjskega cikla čakalne vrste.

Ta predaja v brskalniku je izbirna ročna možnost. Za samodejno izvajanje, ki izvira iz Odoo, uporabite zgornjo povezavo z žetonom podjetja.

Postopek v čakalni vrsti

  1. Kot pooblaščeni naročnik objavite novo besedilno sporočilo v nastavljenem neposrednem pogovoru Discuss. Vsako ustrezno sporočilo ustvari ukaz Pending, zato pooblaščeni pogovor uporabljajte samo za ukaze. Med zahtevo, potrditvijo prejema in običajnim odgovorom ni samodejnega razlikovanja.

  2. Kot uporabnik bota odprite PMIS AI Browser Operator → Command Queue in pred izbiro dela osvežite pogled. Kanban združuje ukaze po stanju; za tabelarni pregled preklopite na seznam. Active Work vključuje prevzete ukaze, da ostanejo vidni ob vrnitvi iz Discuss ali poslovne operacije. Z Pending, In Progress ali Assigned to Me zožite seznam. Za pregled končne zgodovine odstranite Active Work.

  3. Odprite ukaz ter preverite zajeto besedilo in izvor. Izberite Claim / Start, da ponovno preverite trenutno pooblastilo in premaknete ukaz v In Progress.

  4. Izvajajte prek podprtih orodij izvajalnika ali običajnega vmesnika Odoo kot bot. Z Open Originating Chat odprite Discuss v drugem zavihku, odgovorite kot bot in se vrnite na ukaz. V odgovorih o stanju navedite identifikator izvornega sporočila. Odgovori tega bota se ne ujemajo z identiteto naročnika tega pooblastila. Običajen pogovor z naročnikom vodite zunaj pooblaščenega klepeta. Priponke in vsebina povezanih zapisov ne nosijo pooblastila za ukaz. Navigacija preveri običajni dostop bota in prvotno članstvo dveh udeležencev; ostane na voljo po preklicu pooblastila ali zaključku, če je pogovor še veljaven. Nikoli ne dodaja članov in upraviteljem ne podeljuje dostopa do zasebne zgodovine klepeta.

  5. Shranite napredek in dejanski rezultat pod Bot Progress / Outcome. To dokazilo se zabeleži v revizijsko sled in se nikoli ne pošlje samodejno v Discuss. Izberite Mark Done za poročano dokončanje ali Mark Failed, ko začetega dela ni mogoče dokončati. Z Reject zavrnite čakajoče delo brez izvajanja. Cancel with Reason ustavi čakajoče delo ali delo v izvajanju in zahteva razlog v pogovornem oknu. Pred prehodom v končno stanje shranite končne opombe bota. Ukazov v končnih stanjih prek podprtih zapisov ni mogoče znova zagnati ali jim dodajati opomb.

  6. Upravitelji nadzorujejo isto čakalno vrsto. Za opažanja uporabite Administrative Note, za ustavitev aktivnega dela pa Cancel with Reason. V Audit preglejte vrsto dogodka, stanje, izvajalca, čas, razlog preklica in dokazila bota. Upravno besedilo ni pooblastilo za ukaz niti operativni rezultat.

Čakalna vrsta opozori, ko trenutni izvor postane neveljaven. Preklic pooblastila, spremenjeno članstvo, neaktivni uporabniki bota oziroma naročnika, odvzem operaterskega dostopa botu ali urejeno oziroma izbrisano izvorno sporočilo preprečijo začetek dela. Čakalna vrsta navede trenutni razlog; obrazec opozori na ustavitev nadaljnjega dela, ko je pooblastilo prevzetega dela preklicano. Ponovna aktivacija nespremenjenega veljavnega pooblastila lahko znova omogoči čakajoč ukaz. Delu v izvajanju je še vedno mogoče dodajati opombe in ga označiti kot neuspešno, dokončano ali preklicano, da se zabeleži dogajanje po preklicu pooblastila. Poročanje o rezultatu ne pooblašča za nadaljnje poslovne operacije. Neaktiven uporabnik ali uporabnik brez operaterskega dostopa ne more uporabljati življenjskega cikla; upravitelj lahko njegovo delo še vedno upravno prekliče.

Izrecni zapisi istega stanja, vključno s ponovljenim Start, so zavrnjeni. Nespremenjene opombe o rezultatu in prazni zapisi ne ustvarijo dodatnih revizijskih dogodkov. Posodobitve več zapisov preverijo vse ukaze pred spremembo katerega koli; spremembe življenjskega cikla in njihovi dogodki uspejo ali se razveljavijo skupaj.

Zunanji operater mora pred nadaljnjim delom osvežiti podatke in upoštevati preklic pooblastila. Odoo po začetku dela ne more prekiniti ali prisilno nadzorovati njegovega ravnanja. Upravičenost se preveri v posnetku podatkovne baze transakcije prevzema; preklic pooblastila, potrjen sočasno ali pozneje, se zazna ob osvežitvi. Preklic in posodobitve življenjskega cikla se zaporedno obravnavajo z zaklepanjem vrstice ukaza. Če najprej uspe preklic, poznejše dokončanje ali urejanje rezultata ne uspe; če najprej uspe dokončanje, preklic ne uspe, ker je zgodovina zamrznjena. Noben vrstni red ne dokazuje, ali je bila ločena operacija v brskalniku že izvedena.

Poslovna navodila daje samo nespremenljivo besedilo Command. Rezultati bota, upravne in nastavitvene opombe, priponke, razprava ob zapisih, povezani poslovni zapisi ter vsebina obiskanih strani so dokazila ali kontekst in ne morejo razširiti ukaza. Operativna navodila upravitelja dopolnjujejo politiko izvajanja brez razširitve pooblastila ukaza. Pooblastilo Discuss nikoli ne razširi poslovnih skupin, pravil zapisov ali dovoljenih podjetij bota.

Opombe o podatkovnem modelu

  • pmis.ai.browser.bot povezuje nastavitev z obstoječim uporabnikom Odoo.

  • pmis.ai.command.authorization povezuje bota, naročnika in neposredni klepet ter določa, ali ta kombinacija lahko zajema nove ukaze.

  • pmis.ai.command je zapis pooblastila zajetega ukaza. Ohrani identifikator izvornega sporočila, posnetka HTML in navadnega besedila, naročnika, partnerja avtorja, bota, kanal, pooblastilo in časovni žig zajema. Izbris vira odstrani povezavo do živega sporočila, ohrani pa prvotni identifikator sporočila in posnetke. command_digest je šestnajstiška vrednost SHA-256 z malimi črkami za command_text, kodiran v UTF-8: pretvorba Odoo html2plaintext brez referenc povezav, nato odstranitev začetnih in končnih preslednih znakov. Drugih normalizacij preslednih znakov ali Unicode ni. Enaka normalizirana navodila imajo enake zgoščene vrednosti; identifikatorji zapisov ukazov in izvor razlikujejo oddane zahteve.

  • pmis.ai.command.event hrani nespremenljive revizijske vnose, ki izrecno ločujejo zajem ukaza, napredek oziroma rezultat bota, preklic bota, upravni preklic in upravne opombe. Ukazov in revizijskih dogodkov prek modula ni mogoče izbrisati.

  • pmis.ai.command.intervention je začasno pogovorno okno za razlog oziroma opombo. Njegovo dejanje oddaje ponovno preveri pooblastilo dejanskega uporabnika in trenutno stanje ukaza.

Programski kavelj objave Discuss ohrani uporabnika, ki objavlja v Odoo, vključno z okoljem sudo običajnega spletnega krmilnika. Zasebna storitev preveri identiteto in pooblastilo, nato ozko poviša dostop za ustvarjanje ukaza in revizijskega zapisa. Javno ustvarjanje ukazov je blokirano; ni zastavic zaupanja, ki bi jih posredoval klicatelj, ali javnih metod zajema. Poslovna dejanja ne prejmejo povišanih pravic.

Ustrezna objava in zajem njenega ukaza oziroma revizijskega zapisa so del iste transakcije objave. Napake zajema se posredujejo naprej, namesto da bi bilo sporočilo sprejeto brez ukaza. Neustrezna sporočila preskočijo ustvarjanje ukaza. Podvojeni zajem vrne obstoječi ukaz; sočasni vnos, neviden v trenutnem posnetku PostgreSQL, zahteva ponovni poskus transakcije, namesto da bi se ukaz ali revizijski zapis izgubil.

Delni enolični indeksi podatkovne baze preprečujejo podvojene aktivne nastavitve bota za enega uporabnika in podvojene aktivne kombinacije pooblastil. Enolična omejitev uporabnika bota in izvornega sporočila preprečuje podvojen zajem ukazov.

Zapisi življenjskega cikla preverijo dostop, izvedejo flush množice zapisov ORM in zaklenejo vrstice ukazov po vrstnem redu identifikatorjev s PostgreSQL FOR UPDATE NOWAIT, preden preverijo njihovo stanje. Predpomnilnik ORM se po zaklepanju razveljavi. Običajni ponovni poskus transakcije RPC Odoo obravnava spore zaklepanja in serializacije pri izolaciji repeatable-read; ko zmagovalec potrdi transakcijo, ponovljeni začetek ne prestane preverjanja stanja. Razveljavljen prevzem pusti ukaz v čakajočem stanju. V to transakcijo prevzema ne sodi nobeno poslovno delo: zunanji operater pred ukrepanjem počaka na uspešen Claim / Start.

Shranjena zgoščena vrednost se izračuna iz zajetega besedila, tudi pri ukazih v končnih stanjih in ukazih z izbrisanim virom. Izračun ne zajame sporočil znova in ne ustvari dogodkov življenjskega cikla. Prepozna besedilo navodila, ne zagotavlja pa dokazila, odpornega proti posegom skrbnikov podatkovne baze ali zaupanja vredne strežniške kode.

Recorded By določa zadnjega avtorja opombe o rezultatu z uporabo dogodkov posodobitve bota in Legacy Capture / Update, pri čemer prezre dogodke, ki opombo samo ponovijo. Obrazec opozori, ko avtorstva dodeljenega bota ni mogoče ugotoviti. Samo dodeljeni bot lahko ureja svoj rezultat pri aktivnih ukazih; zapisi v končnih stanjih ostajajo zamrznjeni.

Preklic uporablja action_cancel(reason) ali pogovorno okno za razlog. Neposredni write({'state': 'cancelled'}) sproži napako. Upravna opažanja uporabljajo action_administrative_note(note) in nikoli ne posodobijo result_note. Trenutni modul naloži pogovorno okno za posege in tipizirane revizijske dogodke skupaj z običajnimi modeli in pogledi.

Znane omejitve

  • Obstoječa sporočila se ne pregledujejo za nazaj. Obvestila, e-pošta, odgovori bota, drugi pogovori, razprave na drugih modelih in neposredni klici mail.message.create() ne ustvarijo ukazov.

  • Priponke, same slike, cilji povezav in vsebina poslovnih zapisov se ne izluščijo kot ukazi. Sporočilo mora vsebovati neprazno navadno besedilo.

  • Dokončanje zabeleži rezultat, o katerem poroča operater. Potrdila izvajalnika zabeležijo sprejeta podprta dejanja; modul ne sklepa, ali ta dejanja v celoti izpolnjujejo navodilo v naravnem jeziku.

  • Preklic pooblastila prepreči nov začetek, ne more pa ustaviti zunanjega operaterja, ki že dela. Operater je še vedno odgovoren za preverjanje trenutnega pooblastila.

  • Ročni prevzem velja za posamezen ukaz in uporabnika bota. Povezana izvajanja umetne inteligence imajo dodatno varovan identifikator prevzema, omejen čas izvajanja, signal aktivnosti in zasebni dnevnik ponovnih poskusov. Različni pooblaščeni ukazi se lahko še vedno izvajajo neodvisno.

  • Modul nima samodejnega hranjenja revizijskih zapisov ali zunanjega zajema ukazov. Vsako ustrezno sporočilo v pooblaščenem pogovoru se zajame. Zajem ne podeli dostopa do podjetij in se ne izdaja za naročnika.

  • Upravni preklic zabeleži zahtevo za ustavitev in končno stanje čakalne vrste; ne prekine brskalnika in ne razveljavi že izvedenih poslovnih sprememb. Poznejši popravki potrebujejo ločen operativni zapis; končne revizijske zgodovine tukaj ni mogoče prepisati.

Razvoj

Imena datotek Python modelov in čarovnikov sledijo njihovim polnim tehničnim imenom modelov, na primer models/pmis_ai_browser_bot.py. Ločene razširitve uporabljajo opisne pripone. Vsak razred Python ima svojo izvorno datoteko, imena usmerjenih testnih datotek pa ustrezajo njihovim izvornim modulom. Datoteke XML za posamezen model uporabljajo isto predpono, vključno z views/pmis_ai_browser_bot_views.xml in data/pmis_ai_skill_data.xml. Pogledi posegov v ukaze in čarovnika izvajalnika imajo ločene datoteke za posamezen model.

Deterministični testi v tests/ uporabljajo sintetične odgovore ponudnika in preverjajo izvajanje Odoo kot običajen uporabnik. Ne prijavljajo se v pravi račun ChatGPT in ne pošiljajo dejanskih zahtev za sklepanje.

Uporabite omejene testne izvajalnike repozitorija z odobreno začasno podatkovno bazo, katere ime se začne s test_. Testi sočasnosti potrdijo sintetične testne podatke, zato nikoli ne uporabljajte produkcijskih podatkovnih baz. tests/odoo_dependencies.txt določa CRM, Sales in Website kot odvisnosti samo za teste. Oba standardna izvajalnika jih samodejno namestita pred pytest, tudi pri zagonih PyCharm z izvajalnikom za en dodatek. Ročna priprava ali ohranjena podatkovna baza nista potrebni. Te aplikacije v produkciji ostajajo izbirne; modulov ne nameščajte znotraj testnih priprav.

Za usmerjene teste uporabite run_pytest_addon.sh, za pokritost pa run_pytest_repo.sh --addons <addon-path>. Pri ponovni uporabi pripravljene podatkovne baze dodajte --keep-db samo, če mora ostati na voljo za pregled. Za popolno pokritost stavkov in vej zaženite omejeno preverjanje pokritosti z --cov-branch in --cov-fail-under=100. Določene testne aplikacije morajo biti na voljo na nastavljeni poti dodatkov Odoo.

Po koncu odstranite samo začasno podatkovno bazo, ki pripada nalogi. Statična preverjanja uporabljajo pyproject.toml repozitorija in ukaz brez zapisovanja run_lint_addon.sh --addon <addon-path> --check.

TODO

  • Razširiti pregledane operacije izvajalnika pred dodajanjem veščin za pošiljanje ponudb, izdajanje računov, obdelavo dostav, preklic naročil ali urejanje potrjenih naročil.

  • Dodati neposredno odobritev ChatGPT v Odoo, ko bo za to integracijo na voljo podprt vmesniški dogovor za prijavo in uporabo gostovanega naročniškega paketa. Povezava z žetonom podjetja trenutno zahteva ročno ustvarjanje žetona v delovnem prostoru.

Prijava napak

Napake se beležijo v PMISuite Repository Issues. Pred odprtjem nove prijave preverite, ali je bila napaka že prijavljena. Vključite različici modula in Odoo, korake za ponovitev ter pričakovane in dejanske rezultate. Uporabljajte sintetične primere in odstranite občutljive podatke.

Zasluge

Avtorji

Sodelavci

  • Matjaž Mozetič

Vzdrževalci

LUXIM MATMOZ

Trenutni vzdrževalec:

sysadminmatmoz

Luxim je neodvisno podjetje za raziskave, razvoj in uvajanje rešitev, osredotočeno na reševanje kompleksnih težav v ekosistemu Odoo.

Odoo Community Association

Luxim je aktiven član OCA (Odoo Community Association).