IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Création d'un Bot Opérateur


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut Création d'un Bot Opérateur
    Bonjour à tous,

    Je me nomme Sophocle, et programme en Python depuis presque trois ans. Il y a deux ans, j'ai eu l'idée de créer un programme capable d'agir en tant qu'opérateur pour l'utilisateur du système.

    Autrement dit, comme un opérateur dans "Matrix" fournit les programmes et informations nécéssaires pour ses amis dans la matrice, mon idée serait de faire en sorte qu'un programme écrit en Python puisse, grâce à une lourde base de donné et à une analyse sémantique évolué, répondre de façon correcte et utile à l'utilisateur.

    J'ai déjà commencer à écrire une partie du code, en Python, afin de voir ce que cela pourrait donner avec une base de connaissance infime, et un algorithme d'analyse sémantique de très faible capacité. Et après cela, j'ai pû voir que la chose la plus difficile et la plus fastidieuse serait uniquement d'apporter par le biais de BDD, des connaissances à mon programme.

    Son nom est Cindy, il s'agit donc d'un Bot en version Alpha, et ces capacités sont encore restreintes à ceci :

    -> Executer des commandes shell directement a partir de son IHM
    -> Executer des programmes quelconques suivant si il sont présent ou pas dans la base de donnés
    -> Executer un programme quelconque en respectant une syntaxe basique (start [prog])
    -> Executer un programme qui a été glissé sur Cindy (Accepte seulement certaine extension : Remplir la BDD)
    -> Executer un programme si on fournit l'adresse de ce dernier
    -> Donner des informations sur un mot du dictionnaire de l'underground informatique
    -> Donner des informations sur ses propres savoirs faire si on le lui demande

    Comme vous pouvez l'observer, ses capacités sont très restreintes. Mais des bases de données conséquentes permettrait de faire évoluer ce projet.

    Le but de ce post est ici de savoir si cela en intérèsserait certains de m'aider dans ce projet long et fastidieux qui est la création d'un Bot Opérateur (Encore sous Windows), par le biais de création d'algorithme de parsing ou par la création de BDD.

    Ou au pis, pouvez-vous me donner des conseils sur l'utilité d'un tel projet, ou sur la manière de faire pour que je puisse améliorer ce programme (CVS ... ).

    Merci d'avance pour vos réponses.


    Sophocle

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    N'y a-t-il pas double emploi avec webmin ???
    Ne te lances-tu pas dans une tâche un peu inutile étant donné que tu vas donner un outil (je le pense Linux vu que tu parles de shell) à des gens qui n'en ont pas besoin ? => tous les utilisateurs de Linux sont généralement des pros de l'informatique qui préfèrent taper à la main dans le système via des fenêtres consoles...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Bonjour,

    Peut-être est-ce un projet un peu inutile aux yeux de certains, je l'ignore. J'ai néanmoins commencé à rencontrer du monde souhaitant s'investir un peu dans ce projet avec moi, et les capacités du Bot s'envole de plus en plus.

    Dans sa version terminé, je pense lui intégrer une moteur de synthèse vocale, un GUI, ainsi qu'un système d'analyse sémantique plus évolué, et sûrement dans l'avenir, une reconnaissance vocale, mais cela n'est pas la priorité à l'heure actuelle.

    Pour vous donner une idée d'ou en est mon projet Cindy. Je lui est écrit en langage humain hier après-midi avant de sortir en ville "Lance moi une défragmentation s'il te plait." En revenant, le Bot avait terminé le travail, et en retestant manuellement, le système m'as spécifié que le Disque Dur en avait déjà subit une et qu'il n'était pas nécéssaire de redéfragmenter.

    Voila donc le projet. On demande quelque chose à Cindy, et il execute. Certains se diront "C'est inutile", ou encore "C'est trop long et fastidieux". A cela je répondrais que tout ceci est vrai.

    Néanmoins, aucun projet ne peut se réaliser sans temps et investissement. Et qu'il y a encore un siècle, on n'aurais jamais penser pouvoir communiquer au travers d'un écran et d'un clavier.

    J'ai déjà une idée très précise, comme un bout de "film" de ce que Cindy sera capable de faire dans se version finale. Mais je pense que tout cela sera assez long au finale.

    Sophocle

  4. #4
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Bonjour Sophocle,

    Tout d'abord felicitations, il faut une grande motivation pour ce projet d'envergure!

    Le but est séduisant et augmenter l'accessibité à l'ordinateur en utilisant un langage naturel est fort louable.

    Je n'ai malheureusement pas le temps nécessaire pour m'investir dans ce projet mais je serais heureux de le voir aboutir et d' étudier son fonctionnement.

    Bonne continuation.

    pacificator.

  5. #5
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    Oui, bravo ! D'ailleur, l'analyse du language naturel n'est-elle pas en fait, le plus complexe ? Et Cindy peut-elle apprendre de nouveaux mots ? Par exemple en posant des questions qui lui sont essentielles pour classer ce mot dans le bon registre (action, politesse, inutile etc...)?

    Un détail qui m'amuserait beaucoup, ce serait qu'elle selectionne une réponse en fonction de la manière employée pour la requête de l'utilisateur, genre t'es poli, et elle te répond tout aussi poliment et execute la tâche demandée, tu l'insulte et elle t'envoie bouler toi et ta requête .

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Bonjour à tous,

    En premier lieu, merci pour vos encouragements, cela me permet de voir qu'au moins, certains y voient un avantage potentiel.

    Pacificator, si tu le souhaite, je pourrais t'envoyer le code principal de Cindy, afin que tu vois par toi-même le fonctionnement du Bot, mais tu sera je pense, déçu étant donné que l'algorithme est vraiment d'une simplicité enfantine, et qu'il n'y a aucun mérité à l'avoir programmé, n'importe qui aurait pû faire la même chose. Néanmoins, il est tout de même assez intéréssant.

    N.Tox, j'avais eu la même idée que toi au début, puis je me suis dit "Une machine doit servir l'être humain, il ne doit pas être sensible au comportement de ce dernier". Ensuite j'ai relu les lois de la robotique et je me suis dit "J'oublie cette idée".

    Au pire N.Tox, je pourrais lui intégrer un système d'émulation comportemntale afin qu'il puisse réagir un peu comme le ferait un humain, mais tout en bridant la chose pour que la machine n'interfère pas sur les idées et les motivations de ce dernier.

    Mais de toute façon, je n'en suis pas encore là, en ce moment je cherche du monde pour m'aider à créer des bases de connaissances. En gros, là Cindy est à l'école...

    Sophocle

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Août 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 10
    Par défaut
    Moi aussi je suis de tout coeur avec toi Sophocle .

    J'espere que ton projet aboutira

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Bonjour à tous,

    J'informe seulement des nouveaux upgrades de Cindy. Donc à présent, on a:

    - Execution d'un programme quelconque simplement en demandant à Cindy
    (Il faut que le programme soit présent dans sa Base de Connaissance)

    - Execution d'un programme en faisant "start [prog]"
    ([prog] est un programme glisser-déposer dans l'IHM)

    - Reconnaissance d'OS distant par OS Fingerprinting
    (Prise d'emprinte active par TTL ICMP)

    - Contournement de protection .htaccess par exploitation Limit GET/POST

    - Reconnaissance d'un site web fourni par l'utilisateur
    (Il faut qu'il soit présent dans la Base de Connaissances)

    - Reconnaissance de l'OS sur lequel Cindy est en fonction

    - Reconnaissance du nom de l'utilisateur de Cindy

    - Capacité à fournir des informations sur un sujet quelconque
    (Il faut que l'information soit présente dans sa Base de Connaissances)

    - Possibilité de fermer Cindy en lui demandant de s'éteindre

    - Possibilité d'executer des commandes Shell directement à partir de Cindy

    Bon voilà, c'est à peu près tout ce que Cindy est capable de faire en ce moment, et je trouve cela déjà énorme pour ma part. C'est surtout énorme de pouvoir demander à son ordinateur de travailler pour soit, juste en lui écrivant la demande an langage humain.

    Sophocle

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Bonjour à tous,

    Pour ceux qui souhaiterais en savoir un peu plus, voici un extrait d'une conversation rapide avec Cindy. Amusez-vous...

    Cindy > Bonjour Demonn.

    Demonn > Quelle heure est-il s'il te plait ?
    Cindy > Il est 21 heure 59 minutes et 20 secondes..

    Demonn > Cool mercie. On est quel date aujourd'hui ?
    Cindy > Nous sommes le 8/10/2008/.

    Demonn > Vérifie ma connexion Internet maintenant.
    Cindy > Verification en cour...
    Cindy > Votre connexion Internet à l'air fonctionnel.

    Demonn > Ok, maintenant telecharge moi firefox s'il te plait.
    Cindy > Téléchargement en cour...
    Cindy > Téléchargement terminé.

    Demonn > Cool, tu peux me récupérer l'OS du serveur sur lequel tourne Developpez.com s'il te plait. Scan le système.
    Cindy > Saisissez l'URL ou l'IP du système distant : developpez.com
    Cindy > Verification en cour...

    Le TTL vaut 50
    [+] OS : Linux

    Demonn > Merci Cindy.
    Cindy > À vos services.
    Demonn > Ok, maintenant eteind toi.
    Cindy > Au revoir Demonn.


    [...]

    Bon ben voila. Ce n'était qu'un vulguère extrait, mais je vois déjà que si je continue dans cette voie, Cindy pourra très rapidement devenir très puissante.

    Sophocle

  10. #10
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Pourquoi ce choix de communiquer exculsivement en français avec Cindy (et pas en anglais, par exemple) ? Sinon, ton projet semble intéressant à priori. Y a-t-il un dépôt centralisé (subversion, mercurial, etc.) où il est possible de consulter le code pour, éventuelement, proposer des patchs ?

    En tout cas, bonne chance et meilleures salutations

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  11. #11
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    Très bon ça... je suis également curieux de voir comment l'analyse du language naturel est faite, même si je me dis que les mots clés doivent être, pour l'instant, divisés en 2 grande catégories : {action:[...], soft:{programmes:[...], commandes:[...]}}

    Cindy > Verification en cour...
    Heu... c'est courS , dit un mauvais élève...

    Sinon, encore bravo, même si je trouve que ce projet n'est pas très utile, il n'en est pas moins très interessant en tant que challenge, et amusant en tant que produit, ça a un côté vraiment attrayant. Cela me donne envie de discuter avec Cindy pour tester ses limites...

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Bonjour à tous,

    En premier lieu, merci pour vos encouragements, c'est sympas, parce qu'avec un projet d'une tel envergure, je pense qu'il va en falloir...du courage.

    Pourquoi ce choix de communiquer exculsivement en français avec Cindy (et pas en anglais, par exemple) ? Sinon, ton projet semble intéressant à priori. Y a-t-il un dépôt centralisé (subversion, mercurial, etc.) où il est possible de consulter le code pour, éventuelement, proposer des patchs ?
    Pourquoi ce choix ? Pour la simple et bonne raison que ma langue maternel est le Français, et que je vais commencer par écrire dans une langue avec laquelle je me sens le plus allaise. Qui plus est, si je devais faire en sorte de gérer toute les langues planétaires, je pense que j'y passerais 10 ans de plus... Concernant les dépôtes centralisé, non il n'en existe pas réellement. Tout le code repose chez moi, dans mon disque dur.

    Néanmoins, je pense que je ferais quelque chose de similaire dans l'avenir lorsque Cindy sera au point, car pour l'instant, je n'en suis qu'en phase de développement. Mes premières reflexions se focalisent plus sur la capacité de Cindy à répondre de façon correcte sans générer d'erreur que de commencer à vouloir augmenter sa puissance. Bien que je le perfectionne petit à petit. Qui plus est, toute sa puissance réside plus dans ses Bases de Connaissances que dans son algorithme de TAL en lui-même.

    Très bon ça... je suis également curieux de voir comment l'analyse du language naturel est faite, même si je me dis que les mots clés doivent être, pour l'instant, divisés en 2 grande catégories : {action:[...], soft:{programmes:[...], commandes:[...]}}
    D'un point de vue généraliste, on pourrait spécifier que tu n'as pas tout à fait tort. Et de fait, Cindy fonctionne par mot clé, enfin entre guillemet, et par analyse grammaticale très simple...mais tout de même pas mal performant. Ben ouais c'est fait maison .

    Sommairement, l'algorithme pourrait se voir résumer en ceci :

    User = "Télécharge moi Firefox."
    User = Minuscule(User)
    User = Fonction_Ki_Vire_Lé_Accent(User)

    Si User[Premier_Mot] est dans BDD_Download:
    Si URL de firefox est connue:
    On Download Firefox dans la Racine


    C'est vraiment très résumé, et cela fonctionne un peu comme ça, même si en réalité, c'est un peu plus évolué que cela. Donc voila en gros le type d'algorithme que j'utilise dans la majorité des cas.

    Heu... c'est courS , dit un mauvais élève...
    Oui bon, heu hein

    Sinon, encore bravo, même si je trouve que ce projet n'est pas très utile, il n'en est pas moins très interessant en tant que challenge, et amusant en tant que produit, ça a un côté vraiment attrayant. Cela me donne envie de discuter avec Cindy pour tester ses limites...
    Au stade actuel, je pense que tu serais très vite déçu par ses capacités, il n'est pas très performant. Ou tout du moins, il ne connait pas beaucoup de chose, c'est d'ailleur l'origine de ce topic que de demander si des gens étaient intéréssé pour m'aider à concevoir des Bases de Connaissances plus évolué. Ce n'est qu'une question de temps, mais bon.

    Concernant l'utilité même de Cindy, c'est vrai qu'au stade où il (Le Programme) en est, il ne sert pas à grand chose si ce n'est amuser quelques minutes. Mais comme je l'ai déjà dit, j'ai déjà une vision très précise de ce que je compte faire exactement. Par conséquent, je pense que cet outil pourra se voir alloué une certaine utilité à l'avenir. Pour imager, tu est train de me dire qu'un BB ne sert à rien. Certe, mais attend un peu qu'il soit plus grand, comme toi...

    Cindy est encore à l'école, il suffit juste de lui apprendre des choses, et on peut tout lui apprendre. J'ai des centaines d'idées pour Cindy qui se bouscules dans ma tête, donc je pense que cela devrait le faire...

    Exemples :

    -> En Faire un OS (Au Final)

    -> Reconnaissance Vocale
    -> Synthèse Vocale

    -> Reconnaissance du Langage Humain
    -> Execution de Commande Shell directement

    -> Interface Graphique
    -> PenTest sur Demande de l'User

    -> Scanning sur Demande de l'User
    -> Téléchargement de Tools Demander par l'User

    -> Execution de Tools sur Demande de l'User
    -> Navigation sur un Site Demandé par l'User en ne spécifiant que son nom

    -> Eteindre Cindy juste en lui Demandant
    -> Eteindre le Système en Demandant à Cindy

    -> Capacité à Fournir des Informations sur un Sujet Quelconque
    -> Moteur d'Apprentissage

    -> Intégration de Système Expert pour les Calculs Scientifiques
    -> Intégrer un Moteur de Simulation Comportementale pour Cindy

    -> Possibilité de Traduire des PhraseS sur Demande de l'User
    (Basé sur Reverso)

    -> Capacité à Rechercher des Infos Nativement sur le Net

    Qui plus est, je sais d'ores et déjà comment programmer tout ce que je viens de citer. La seule chose qui pourrait me ralentir est le temps...

    Et puis vous oubliez un truc : Rien de grand dans ce monde ne s'est accomplie sans passion.

    Sophocle

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Bonjour à tous,

    Je viens de créer une vidéo de démonstration de ses capacités actuelle. Je n'ai pas tout mis au sens propre, mais suffisament pour comprendre qu'il peut évoluer de façon exponentiel...

    Liens : http://fr.youtube.com/watch?v=ruZNuH4dvZQ

    Sinon, tapez "Projet Cindy" dans le Moteur de Recherche internet de Youtube.

    Sophocle

  14. #14
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Sophocle Voir le message
    Bonjour à tous,

    Je viens de créer une vidéo de démonstration de ses capacités actuelle. Je n'ai pas tout mis au sens propre, mais suffisament pour comprendre qu'il peut évoluer de façon exponentiel...

    Liens : http://fr.youtube.com/watch?v=ruZNuH4dvZQ

    Sinon, tapez "Projet Cindy" dans le Moteur de Recherche internet de Youtube.

    Sophocle
    Cela fonctionne-t-il indifféremment pour:

    "Quelle heure est-il ?"
    "Quelle heure il est ?"
    "Quelle heure c'est ?"
    "Quelle heure est-ce ?"
    "A quelle heure vit-on ?"
    "Quelle heure as-tu ?"

    On sait que l'analyse syntaxique et sémantique sur le langage naturelle est un casse-tête, car contrairement à un langage de programmation, il peux être ambigu. C'est une question et non une critique: penses-tu avoir la clé pour proproser une interprétation vraiment fiable du langage naturel ?

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Bonsoir,

    Non, je ne prétend pas avoir la clé magique permettant une chose aussi compliqué en quelques coups de clavier, même l'esprit humain est 1000 fois plus complexe pour une traduction et une compréhension de ce genre.

    Néanmoins, pour répondre à ta question, qui plus est intéréssante, oui Cindy saurait être capable de répondre à toute tes questions en te resortant exactement le même résultat, sauf que vu que tu lui demande l'heure, la valeur changerais, et c'est normal. Donc en gros, elle saurait te donner l'heure quel que soit ta façon de lui demander.

    Au passage, si cela en intérèsse certains, une nouvelle génération de Carte Sémantique créé par Cognition Technologie est basé sur l'analyse sémantique et les shéma heuristique fonctionne environ comme l'algorithme principal de Cindy. Déjà un bon point pour moi. C'est la clé même du Web 3.0.

    Sophocle

Discussions similaires

  1. Quel langage pour la création d'un BOT
    Par darioo2 dans le forum ALM
    Réponses: 1
    Dernier message: 18/11/2011, 15h40
  2. [Conception] Création d'un bot
    Par paulrad dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/01/2007, 13h37
  3. Réponses: 3
    Dernier message: 04/12/2006, 13h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo