ListGpt : Recherche dans dolibarr avec OpenAI

Impressionnant effectivement ! beau boulot !

1 « J'aime »

Bonjour à tous,

Re test de listGPT … petite question sur comment formuler les demandes

je veux la liste des interventions par client, réponse aucun

Ajout d’un contexte, la table des interventions, c’est mieux mais le compte n’est pas bon (par exemple Bouygues à 6 interventions (5 validés et 1 brouillon)

Ici la liste des interventions par client, cela ajoute également les achats …

Et si j’ai un extrafield dans le module intervention (un intervenant) et que je veux le temps par intervenant, par intervention et par jour. il faudrait dans l’apprentissage ajouter la table fichinterdet, fichinter_extrafiled et ajouter par jour ou dire pour aujourd’hui ou dire pour le 15 janvier 2023

j’ai pas trouvé dans la doc comment mettre du contexte dans l’entrainement

Merci,

Bonjour
prenons le cas d’un entrainement supplémentaire pour les interventions
je rajouterai les chose ainsi :

llx_fichinter(rowid, fk_projet, fk_soc, fk_contrat, ref, datec, fk_statut, duree)

==> je suis meme étonnée que sans préciser les champs que listgpt repère certains champs
pour accéder à l’extrafield quelquechose comme cela

llx_fichinter_extrafields (rowid, fk_object, intervenant)

fk_object correspond au rowid de l’intervention

Pour le moment il faut expérimenter, je travail sur un système d’entrainement dynamique avec par mots clé des informations supplémentaires
Mon but avec ce module c’était de lancer le concept et de le faire évoluer au fur et à mesures de mes expérimentation
Et d’ailleurs, je n’ai pas encore tester en précisant dans l’entrainement
« A partir de la structure de dolibarr dans sa version 16 … » mais ce serait à musant

GPT en général, c’est bluffant, mais comme module sur Dolibarr ? ça, c’est vraiment sympa !

1 « J'aime »

Hello, en complément des précédents messages, un exemple de requete avec de l’entrainement.
Je vais regarder comment rajouter des « thématiques d’entrainements », par exemple un ensemble de case a cocher pour ajouter ou non certains entrainements selon ses besoins

Tous cela pour dire que le module ne vas pas rester un gadget et évoluer

Bonjour :slightly_smiling_face:
J’adore !!
liste des clients français n’ayant que deux contacts :

SELECT s.rowid, s.nom, s.datec, s.fournisseur, s.client, s.fk_pays, pays.label, pays.code
FROM llx_societe as s
INNER JOIN llx_c_country as pays ON s.fk_pays = pays.rowid
WHERE s.client = 1 AND pays.code = 'FR' AND s.rowid IN (SELECT fk_soc
FROM llx_socpeople
GROUP BY fk_soc HAVING COUNT(*) = 2)
ORDER BY s.rowid;

Trop fort :+1:

1 « J'aime »

@defrance j’ai une question idiote « bas niveau »: est-ce que de fait GPT a accès aux données stockées dans dolibarr ? ou bien son entraînement reste sur des jeux de données génériques ?

C’est une tres bonne question et je te remercie de l’avoir posée ^^
A aucun moment l’api n’accède aux données de la base, le seul entrainement fournit concerne la structure des données. c’est d’ailleurs toute l’élégance de la solution.

Je suis cependant en train de réfléchir à une évolution qui transmettrait des données mais ce serait de manière anonyme (ex : prod1, prod2, en se basant sur l’id du produit ou client1, client2 pour les société)
mais je préfère rester dans le vague pour le moment (bon je peux en discuter en mp avec un NDA ^^).

1 « J'aime »

:star_struck: mais c’est incroyable ça !!!

comment d’ailleurs penser qu’il puisse en être autrement…

Ho … avec quelques (tout petits) efforts … ça sera tellement pratique que le glissement ne se verra quasiment pas.

Quand on voit comment MS souhaite éventuellement intégrer ça dans la suite office ça me fait rêver … ce n’est qu’une question de temps.

Une piste ?

Étape 1 (l’outil n’a pas accès aux données) : je dicte une lettre « dis-moi ma belle ia peux tu rédiger une relance pour impayé à tous mes clients qui ont plus de 3 mois de retard » → ça fera une lettre générique

Étape 2: l’outil proposera d’une manière un peu sympa d’aller extraire le montant de la relance pour pouvoir l’intégrer dans le mail … « ça serait bien de pouvoir dire à vos clients combien ils vous doivent, voulez-vous que j’aille chercher l’information dans votre dolibarr, je sais que c’est la table llx_xxx ? »

vous voyez le glissement ?

Donc entre le contenu d’un courrier générique créé par un outil et le fait de lui « donner accès aux données » la frontière est mince non ?

Et puis d’une manière plus générale, on commence par proposer un truc gratuit, puis on restreint un peu l’accès en demandant un numéro de téléphone, une adresse mail, un compte outlook ce genre de choses et pas à pas une fois la dette technologique bien assurée hop on resserre un peu le collier…

Dans tous les cas il faudra bien chercher comment rentabiliser toutes ces dépenses qui se comptent en milliards car il ne faut pas se berner un jour où l’autre il sera question de revenir sur investissement et si c’est « gratuit en apparence » c’est qu’on cherche du mauvais côté qui est le produit…

J’espère me tromper …

Dans le cas de mon développement (je ne travaille pas encore chez M$…), le code est libre d’accès pour vérifier justement ce qui est envoyé ou non à l’API.
De ce que j’ai pu voir sur l’usage de l’API, la définition des couts est claire et précis selon le type de « moteur » que l’on emploie.

OpenAI a déjà en train d’annoncer des tarifs pour l’utilisation de leur outil et meme si je trouve le tarif non négligeable (42$/mois), je fais la part des choses sur le retour sur investissement en terme de temps économisé, que ce soit pour écrire du code ou pour ma part en ce moment d’automatiser des process d’intégration continue.

Prenons un exemple, actuellement, je ne met pas en place systématiquement des tests unitaires sur mes modules car je considère cela trop chronophage par rapport au gains estimé en terme de qualité mais si je peux générer rapidement ce code de test, il est probable que je mettrais en place plus de tests (au lieu de trouver un.e stagiaire pour lui faire réaliser cette tache…)

Oui je gagne du temps pour l’écriture de code « boring » ou de truc pointu mais pour le reste … on est loin du compte.

Il s’agit bien pourtant d’une révolution intellectuelle (parallèle avec la révolution industrielle) où les taches répétitives et fatigante sont réalisées par une machine (et je fais bien la différence philosophique entre un outil et une machine pour son autonomie à réaliser des taches simples).

Ce sont clairement les développeurs à bas coups qui seront remplacés, mais je doute vraiment d’être mise à la retraite prématurément

heu, j’ai l’impression qu’on mélange plein de choses, ma réponse était uniquement liée à « comment d’ailleurs penser qu’il puisse en être autrement… » dans le contexte « A aucun moment l’api n’accède aux données de la base, le seul entrainement fournit concerne la structure des données. »

Je me suis permis d’illustrer mon point de vue sur ce sujet et uniquement ce sujet. :slight_smile:

Oui j’ai fait un pavé sur mes réflexions sur cette technologie, je réfléchis pas mal à l’impact que cette révolution va avoir et j’ai bien du mal …

J’ai suivis il y a plus d’un an une formation de data-analyst et tous ce qui avait trait au machine learning et à l’apprentissage en particulier me semblait alors complexe à mettre en oeuvre. Le retour sur investissement pour une société me semblait alors hasardeux.

Dans le cadre d’open AI, on est dans une autre logique, bien moins rigide et plus simple à employer qui permet justement un retour sur investissement rapide des utilisateurs, ce qui permet d’en justifier à mes yeux de le rendre payant.
Pour ma part je reçois régulièrement des demandes de création de requêtes SQL pour myList, mon module me permet de gagner pas mal de temps de développement mais il y a toujours un travail de finition, j’estime qd meme avoir réduit de 30% le temps pour réaliser cette tache

Rien que de voir comment certains utilise cette technologie pour le SEO, la rédaction d’article, ce sont des pans entiers d’activité dans les entreprises qui vont évoluer

1 « J'aime »

Hello ce module semble tres interessant, j’ai un cas d’usage pour les requêtes complexes, par exemple

  • trouver la liste des commandes où la totalité des produits n’a pas été validée en shipping,
  • liste des commandes où le montant est different des factures: est-ce que tu pourrais m’expliquer comment faire la requête dans le fichier demo? Si ca marche j’achète direct haha.

Hello, Challenge accepted ^^

Pour le moment l’entrainement de base contient pas la notion d’élément lié en natif, j’ai donc du ajouter cette information manuellement à l’entrainement

Pour la première question j’obtiens cela


Il me manque au niveau de l’entrainement la notion de validation mais je constate qu’il a réussi à faire le lien avec la table ll_expedition tout seul (sans faire l’erreur d’un llx_shipping)
Pour la seconde c’est mieux encore

Je suis en train de travailler sur comment ajouter des entrainements additionnels en fonction des éléments présent dans la question, pour le moment je parts sur des cases à cocher mais j’aimerai beaucoup lui proposer de sélectionner lui-même ces infos dans une première étape

Dans la série des évolutions à venir, ajouter une habilitation pour bloquer les requetes contenant la table llx_user

1 « J'aime »

Bonjour :slightly_smiling_face:
@defrance merci pour le boulot

Bonjour, je ne comprends pas grand chose a la reponse donnee, mais en gros puisque tu acceptes le challenge je peux telecharger l’application pour voir si ca marche avec mes donnees c’est ca :)?
Je peux taper la requete directement et il me listera ce qu’il trouve? Si ca marche ce sera super!

alors normalement oui, tu devrais pouvoir utiliser le module pour ton analyse,
mais dans ton cas, il faut aussi saisir des informations d’entrainement en plus ( le bloc à droite de l’écran)

Juste que pour la première question, cela demande plus d’information que je n’ai pas à savoir la notion de validation des produits

Bonjour defrance,

tu utilises le modèle code-davinci ou code-cushman ?