SlideShare une entreprise Scribd logo
1  sur  47
Neo4j, Inc. All rights reserved 2021
Neo4j, Inc. All rights reserved 2021
1
Interrogez vos données
connectées en langage naturel
(chatbot/callbot)
avec Neo4j & Prisme.ai
Nicolas Rouyer
Sales Engineer, Neo4j, France
Antoine Aamarcha
CEO, Prisme.ai, France
Neo4j, Inc. All rights reserved 2021
2
Neo4j
Dotée de performances
uniques, Neo4j est la seule
base de données de
graphes d’entreprise qui
offre le stockage graphe
natif, une architecture
évolutive et optimisée pour
la rapidité d’exécution, et la
compatibilité ACID.
L’architecture distribuée
(cluster causal) de Neo4j
supporte des tâches
transactionnelles &
analytiques complexes en
simultané. (algorithmes
graph data science)
Neo4j, Inc. All rights reserved 2021
3
Prisme.ai - une technologie ouverte
Neo4j, Inc. All rights reserved 2021
Actualités Neo4j - Pandora papers
Neo4j, Inc. All rights reserved 2021
Actualités Neo4j - Aura DB Free !
Neo4j, Inc. All rights reserved 2021
Actualités Neo4j - nouveau site GraphAcademy
Neo4j, Inc. All rights reserved 2021
Actualités Neo4j - événements
Neo4j, Inc. All rights reserved 2021
Actualités Prisme.ai - New Prisme.ai Messenger
- Un menu latéral avec une liste de service
- Theming
- Formulaires
Neo4j, Inc. All rights reserved 2021
Actualités Prisme.ai - Open Source DSUL-Server
- Un DSUL est un standard mis en place pour décrire une application avec des
triggers et workflows
- Nous avons décidé de mettre en Open Source le DSUL-Server (runtime)
Intents:
I_LIKE_FRUIT:
when:
match phrases:
- j'aime la [poire](fruit)
- j'aime bien les [pommes](fruit)
- j'aime les fruits
parameters:
- name: fruit
entity: Fruit
required: true
questions:
- Quel fruit tu aimes ?
do:
- say text: je suis vraiment ravi d'apprendre que tu aimes les $fruit !
Neo4j, Inc. All rights reserved 2021
10
Pourquoi Neo4j & Prisme.ai
1 2
La base de données
graphe native Neo4j
simplifie la complexité
backend
Prisme.ai propose un
studio low-code
d’automatisation end-
to-end boostée par le
NLP
3
Exposition d’API
native avec
GraphQL + Neo4j
Neo4j, Inc. All rights reserved 2021
Architecture - Assistant Prisme.ai : Chatbot + Workflow
Messaging channels
Intent: Intent p,
Entities :
EntityName1: value 1
EntityName2: value 2
EntityName3: value 3
Chatbot
Intent 1 Intent 2 ... Intent n
NLU 1 NLU 2 NLU 3
No NLU
Events
trigger
Knowledge 1 Knowledge 2 Knowledge 3
Workflow
Step 1 Step 2 ... Step n
Intent represents end
user intention that
matches with “user says”
Entities represents
named slots extracted
from the “user says” such
as cities, dates, contracts,
…
Step represents a
specific action in the
workflow such as Call
GraphQL query, send
SMS, insert in CRM..,
Scheduler
Natural Language / event trigger
Neo4j, Inc. All rights reserved 2021
Architecture - Neo4j et GraphQL
Neo4j, Inc. All rights reserved 2021
Architecture - Neo4j et GraphQL
Neo4j, Inc. All rights reserved 2021
Modèle graphe - mon compte twitter
ingérée dans
une base
Neo4j.
Le modèle
graphe
comprend :
● moi,
● Les
comptes
Twitter que
je suis
● mes posts
● leurs posts
● les liens,
tags &
Neo4j, Inc. All rights reserved 2021
15
Démo
Neo4j
Neo4j, Inc. All rights reserved 2021
16
Démo Neo4j & Cypher
1. Qui me mentionne sur Twitter?
2. Qui sont les “followers” les + influents ?
3. Quels sont les “hashtags” que j’utilise fréquemment ?
4. Quelle proportion de personnes que je suis me suivent aussi ?
5. Qui sont ceux qui tweetent sur moi, mais que je ne suis pas ?
6. Quels liens figurent dans les “retweets” ?
7. Quelles autres personnes tweetent en utilisant mes “hashtags” préférés ?
Neo4j, Inc. All rights reserved 2021
17
Qui me mentionne sur Twitter?
// Graph of some of your mentions
MATCH (u:User)-[p:POSTS]->(t:Tweet)-[:MENTIONS]->(m:Me:User)
WITH u,p,t,m, COUNT(m.screen_name) AS count
ORDER BY count DESC
RETURN u,p,t,m
LIMIT 10
Neo4j, Inc. All rights reserved 2021
18
Qui je mentionne sur Twitter?
// Graph of some of your mentions
MATCH (u:Me:User)-[p:POSTS]->(t:Tweet)-[:MENTIONS]->(m:User)
WITH u,p,t,m, COUNT(m.screen_name) AS count
ORDER BY count DESC
RETURN u,p,t,m
LIMIT 10
Neo4j, Inc. All rights reserved 2021
19
Parmi mes “followers”, quels sont les plus influents ?
// Most influential followers
MATCH (follower:User)-[:FOLLOWS]->(u:User:Me)
RETURN follower.screen_name AS user,
follower.followers AS followers
ORDER BY followers DESC
LIMIT 10
╒═════════════════╤═══════════╕
│"user" │"followers"│
╞═════════════════╪═══════════╡
│"matchActus" │56240 │
├─────────────────┼───────────┤
│"rasangarocks" │51146 │
├─────────────────┼───────────┤
│"Talend" │45292 │
├─────────────────┼───────────┤
│"neo4j" │36649 │
├─────────────────┼───────────┤
│"carbone" │30928 │
├─────────────────┼───────────┤
│"DontkillFreeTNT"│26183 │
├─────────────────┼───────────┤
│"La_Melee" │14481 │
├─────────────────┼───────────┤
│"LaCantine_Tlse" │13126 │
├─────────────────┼───────────┤
│"ed_dodds" │10791 │
├─────────────────┼───────────┤
│"jimwebber" │6820 │
└─────────────────┴───────────┘
Neo4j, Inc. All rights reserved 2021
20
Mes “hashtags” préférés
// The hashtags you have used most often
MATCH
(h:Hashtag)<-[:TAGS]-(t:Tweet)<-[:POSTS]-(u:User:Me)
WITH h, COUNT(h) AS Hashtags
ORDER BY Hashtags DESC
LIMIT 10
RETURN h.name, Hashtags
╒═══════════════╤══════════╕
│"h.name" │"Hashtags"│
╞═══════════════╪══════════╡
│"neo4j" │163 │
├───────────────┼──────────┤
│"runkeeper" │25 │
├───────────────┼──────────┤
│"graphconnect" │21 │
├───────────────┼──────────┤
│"graphdb" │18 │
├───────────────┼──────────┤
│"bigdata" │18 │
├───────────────┼──────────┤
│"toulouse" │18 │
├───────────────┼──────────┤
│"graphday" │13 │
├───────────────┼──────────┤
│"talendconnect"│10 │
├───────────────┼──────────┤
│"ndlv2015" │10 │
├───────────────┼──────────┤
│"panamapapers" │10 │
└───────────────┴──────────┘
Neo4j, Inc. All rights reserved 2021
21
“Followback rate” : ratio des “followers” qui me suivent
// Followback rate
MATCH (me:User:Me)-[:FOLLOWS]->(f)
WITH me, f, size((f)-[:FOLLOWS]->(me)) as doesFollowBack
RETURN SUM(doesFollowBack) / toFloat(COUNT(f)) AS followBackRate
╒════════════════╕
│"followBackRate"│
╞════════════════╡
│0.3375 │
└────────────────┘
Neo4j, Inc. All rights reserved 2021
22
Qui poste sur moi, que je ne suis pas ?
// Follower Recommendations - tweeting about you, but you don't follow
MATCH (ou:User)-[:POSTS]->(t:Tweet)-[mt:MENTIONS]->(me:User:Me)
WITH DISTINCT ou, me
WHERE (ou)-[:FOLLOWS]->(me)
AND NOT (me)-[:FOLLOWS]->(ou)
RETURN ou.screen_name
╒════════════════╕
│"ou.screen_name"│
╞════════════════╡
│"benoitbonte" │
├────────────────┤
│"ExcelSysFrance"│
├────────────────┤
│"geraudster" │
├────────────────┤
│"lagraula" │
└────────────────┘
Neo4j, Inc. All rights reserved 2021
23
Quels liens je re-poste ?
A quelle fréquence sont-ils mis en favoris?
// Links from interesting retweets
MATCH (:User:Me)-[:POSTS]->(t:Tweet)-[:RETWEETS]->(rt)-[:CONTAINS]->(link:Link)
RETURN t.id_str AS tweet, link.url AS url, rt.favorites AS favorites
ORDER BY favorites DESC
LIMIT 10
╒═════════════════════╤═════════════════════════════════════════════════════════════════╤═══════════╕
│"tweet" │"url" │"favorites"│
╞═════════════════════╪═════════════════════════════════════════════════════════════════╪═══════════╡
│"969123346855157760" │"https://twitter.com/i/web/status/967051706696683521" │13 │
├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤
│"993462306943184896" │"https://twitter.com/i/web/status/993462187409793026" │10 │
├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤
│"808381506536280064" │"https://twitter.com/i/web/status/808381317817794561" │5 │
├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤
│"780556194339495940" │"http://buff.ly/2d4q3m3" │5 │
├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤
│"1319201148264419333"│"https://twitter.com/i/web/status/1319164082289844225" │4 │
├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤
│"1091043031749480448"│"https://twitter.com/i/web/status/1091042931321044993" │4 │
├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤
│"1262316390373040128"│"https://twitter.com/i/web/status/1262316263579234304" │4 │
├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤
│"697409927766274049" │"http://d-booker.jo.my/neo4j-livre" │2 │
├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤
│"915291853758615552" │"https://www.meetup.com/fr-FR/graphdb-toulouse/events/243229177/"│2 │
├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤
│"1181516413414100992"│"https://twitter.com/i/web/status/1181503756132855809" │2 │
└─────────────────────┴─────────────────────────────────────────────────────────────────┴───────────┘
Neo4j, Inc. All rights reserved 2021
24
Quels utilisateurs postent avec mes hashtags favoris ?
// Users tweeting with your top hashtags
MATCH
(me:User:Me)-[:POSTS]->(tweet:Tweet)-[:TAGS]->(ht)
MATCH
(ht)<-[:TAGS]-(tweet2:Tweet)<-[:POSTS]-(sugg:User)
WHERE
sugg <> me
AND NOT
(tweet2)-[:RETWEETS]->(tweet)
WITH
sugg, collect(distinct(ht)) as tags
RETURN
sugg.screen_name as friend, size(tags) as common
ORDER BY
common DESC
LIMIT 20
╒════════════════╤════════╕
│"friend" │"common"│
╞════════════════╪════════╡
│"Neo4jFr" │11 │
├────────────────┼────────┤
│"CedricFauvet" │9 │
├────────────────┼────────┤
│"neo4j" │6 │
├────────────────┼────────┤
│"rvanbruggen" │5 │
├────────────────┼────────┤
│"chrissVallez" │4 │
├────────────────┼────────┤
│"hlakkache" │4 │
├────────────────┼────────┤
│"nmervaillie" │3 │
├────────────────┼────────┤
│"GraphConnect" │3 │
├────────────────┼────────┤
│"EvaDelier" │3 │
├────────────────┼────────┤
│"meisshaily" │3 │
├────────────────┼────────┤
Neo4j, Inc. All rights reserved 2021
25
Démo
API GraphQL
Neo4j, Inc. All rights reserved 2021
26
Qui suis-je sur Twitter ?
Combien de personnes me suivent ?
Neo4j, Inc. All rights reserved 2021
27
Donne-moi 5 de mes posts !
query {
us {
posts(options:
{limit: 5}) {
text
created_at
}
}
}
Neo4j, Inc. All rights reserved 2021
28
Qui me mentionne sur Twitter ?
query {
us {
tweets {
posted_by{
name
screen_name
}
}
}
}
Neo4j, Inc. All rights reserved 2021
29
Qui je mentionne sur Twitter ?
query {
us {
posts {
mentions {
name
screen_name
}
}
}
}
Neo4j, Inc. All rights reserved 2021
30
Qui sont mes “followers” les plus influents ?
query {
us {
followed_by
(where:
{followers_GT: 5000},
options:
{sort: {followers:
DESC}}
) {
name
screen_name
followers
}
}
}
Neo4j, Inc. All rights reserved 2021
31
Quels sont mes “hashtags” préférés ?
query {
us {
tweets (where: {tags_NOT:
null}){
text
tags {
name
num_tweets
}
}
}
}
Neo4j, Inc. All rights reserved 2021
32
Jusqu’à quel point mes “followers” me suivent-ils ?
query {
us {
followBackRate
}
}
Neo4j, Inc. All rights reserved 2021
33
Qui poste sur moi, que je ne suis pas ?
query {
us {
tweets {
posted_by {
name
screen_name
}
}
}
}
Regarder qui tweete sur
moi...
Neo4j, Inc. All rights reserved 2021
34
Who tweets about me, but I don’t follow?
query {
users(where:
{screen_name_IN:
["neo4j", "lagraula"]}){
screen_name
followed_by
{screen_name}
}
}
...En sélectionner un, et vérifier si je le
suis
Neo4j, Inc. All rights reserved 2021
35
Quels sont les liens que je re-poste ?
A quelle fréquence sont-ils mis en favoris ?
query{
us {
posts(where: {retweets_NOT: null}) {
retweets (options: {sort: {favorites: DESC}, limit: 10}, where:
{favorites_GT: 5}) {
favorites
contains {
url
}
}
}
}
}
Neo4j, Inc. All rights reserved 2021
36
Quels utilisateurs postent avec mes “hashtags” préférés ?
query {
us {
posts {
tags {
name
num_tweets
}
}
}
}
Commencer par trouver
les hashtags...
Neo4j, Inc. All rights reserved 2021
37
Quels utilisateurs postent avec mes “hashtags” préférés ?
query {
hashtags(where: {name_IN:
["neo4j", "Neo4j"]}) {
name
tweets {
posted_by(where:
{screen_name_NOT: "rrrouyer"})
{
name
screen_name
}
}
}
}
...ensuite, les filtrer et
chercher les utilisateurs
qui postent avec ces
hashtags
Neo4j, Inc. All rights reserved 2021
Annexe
38
Mutations
Neo4j, Inc. All rights reserved 2021
Création d’un utilisateur
mutation {
createUsers(input: [
{
name: "smoothtalker"
screen_name: "Smooth Talker"
}
]) {
users {
name
screen_name
}
}
}
{
"data": {
"createUsers": {
"users": [
{
"name": "smoothtalker",
"screen_name": "Smooth
Talker"
}
]
}
}
}
Neo4j, Inc. All rights reserved 2021
Recherche du nouvel utilisateur
query {users( where:
{name: "smoothtalker"} ){
name
screen_name
}}
{
"data": {
"users": [
{
"name": "smoothtalker",
"screen_name": "Smooth
Talker"
}
]
}
}
Neo4j, Inc. All rights reserved 2021
Création d’un nouvel utilisateur + tweet
mutation {
createUsers(input: [
{
name: "Nicooo"
screen_name: "nicooo"
posts: {
create: [
{
node: {
id: 123456
text: "Hi, my name is John!"
}
}
]
}
}
]) {
users {
name
posts {
id
text
}
}
}
}
{
"data": {
"createUsers": {
"users": [
{
"name": "Nicooo",
"posts": [
{
"id": "123456",
"text": "Hi, my name is
John!"
}
]
}
]
}
}
}
Neo4j, Inc. All rights reserved 2021
Récupération du nouvel utilisateur avec son tweet
query {users (where: {name: "AAA"}){
name
screen_name
posts {text}
}}
{
"data": {
"users": [
{
"name": "Nicooo",
"screen_name": "nicooo",
"posts": [
{
"text": "Hi, my name is
John!"
}
]
}
]
}
}
Neo4j, Inc. All rights reserved 2021
Mise à jour utilisateur en créant un tweet
mutation {
updateUsers(
where: { name: "AAA" }
create: {
posts: [
{ node:
{
id: 100000001
text: "An interesting way of adding a second Post!" } }
]
}
) {
users {
name
screen_name
posts {
text
}
}
}
}
{
"data": {
"updateUsers": {
"users": [
{
"name": "AAA",
"screen_name": "AAA",
"posts": [
{
"text": "An interesting way of adding a second Post!"
},
{
"text": "An interesting way of adding a new Post!"
},
{
"text": "Salut Nicolas"
}
]
}
]
}
}
}
Neo4j, Inc. All rights reserved 2021
Récupération de l’utilisateur actuel avec ses tweets
{
"data": {
"updateUsers": {
"users": [
{
"name": "AAA",
"screen_name": "AAA",
"posts": [
{
"text": "An interesting way of adding a second Post!"
},
{
"text": "An interesting way of adding a new Post!"
},
{
"text": "Salut Nicolas"
}
]
}
]
}
}
}
Neo4j, Inc. All rights reserved 2021
45
Démo
Prisme.ai
Neo4j, Inc. All rights reserved 2021
46
Conclusion
Capture de contexte temps réel
Automatisation des réponses complexes aux événements
Neo4j, Inc. All rights reserved 2021
Neo4j, Inc. All rights reserved 2021
47
Merci !
nicolas.rouyer@neo4j.com

Contenu connexe

Similaire à Neo4j & Prisme.ai : Interrogez vos données connectées en langage naturel avec un chatbot

La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!OCTO Technology
 
meetup devops aix-marseille 27/10/2022
meetup devops aix-marseille 27/10/2022meetup devops aix-marseille 27/10/2022
meetup devops aix-marseille 27/10/2022Frederic Leger
 
Eloge de la User Story - Agile Tour Bordeaux -
Eloge de la User Story - Agile Tour Bordeaux - Eloge de la User Story - Agile Tour Bordeaux -
Eloge de la User Story - Agile Tour Bordeaux - Cecil Dijoux
 
ASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSAASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSAFrédéric Sagez
 
Paris Container Day 2016 : Architecture microservices hautement disponible au...
Paris Container Day 2016 : Architecture microservices hautement disponible au...Paris Container Day 2016 : Architecture microservices hautement disponible au...
Paris Container Day 2016 : Architecture microservices hautement disponible au...Publicis Sapient Engineering
 
Introduction à Neo4j
Introduction à Neo4jIntroduction à Neo4j
Introduction à Neo4jNeo4j
 
ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)Nicolas Aguenot
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Rapport-ilovepdf-compressed
Rapport-ilovepdf-compressedRapport-ilovepdf-compressed
Rapport-ilovepdf-compressedArthur Cousseau
 
TFC_KATSHINDA_MBEMBA_GRACE_2017_2018
TFC_KATSHINDA_MBEMBA_GRACE_2017_2018TFC_KATSHINDA_MBEMBA_GRACE_2017_2018
TFC_KATSHINDA_MBEMBA_GRACE_2017_2018GRACEKATSHINDA
 
Conversation pendant 24h avec une AI - ChatGPT
Conversation pendant 24h avec une AI - ChatGPTConversation pendant 24h avec une AI - ChatGPT
Conversation pendant 24h avec une AI - ChatGPTUGAIA
 
Standards ouverts et logiciels libres
Standards ouverts et logiciels libresStandards ouverts et logiciels libres
Standards ouverts et logiciels libresGenève Lab
 
Presentation Projet R&D Dynarchi
Presentation Projet R&D Dynarchi Presentation Projet R&D Dynarchi
Presentation Projet R&D Dynarchi Marc Bourhis
 
2019 04 25_lybero_chiffrement_5
2019 04 25_lybero_chiffrement_52019 04 25_lybero_chiffrement_5
2019 04 25_lybero_chiffrement_5alaprevote
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) univalence
 
Elasticsearch - Esme sudria
Elasticsearch - Esme sudriaElasticsearch - Esme sudria
Elasticsearch - Esme sudriaDavid Pilato
 
Portable Class Library et Nuget : Le Combo gagnant
Portable Class Library et Nuget : Le Combo gagnantPortable Class Library et Nuget : Le Combo gagnant
Portable Class Library et Nuget : Le Combo gagnantMicrosoft
 

Similaire à Neo4j & Prisme.ai : Interrogez vos données connectées en langage naturel avec un chatbot (20)

Jcom02.ppt
Jcom02.pptJcom02.ppt
Jcom02.ppt
 
La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!
 
meetup devops aix-marseille 27/10/2022
meetup devops aix-marseille 27/10/2022meetup devops aix-marseille 27/10/2022
meetup devops aix-marseille 27/10/2022
 
Eloge de la User Story - Agile Tour Bordeaux -
Eloge de la User Story - Agile Tour Bordeaux - Eloge de la User Story - Agile Tour Bordeaux -
Eloge de la User Story - Agile Tour Bordeaux -
 
ASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSAASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSA
 
Paris Container Day 2016 : Architecture microservices hautement disponible au...
Paris Container Day 2016 : Architecture microservices hautement disponible au...Paris Container Day 2016 : Architecture microservices hautement disponible au...
Paris Container Day 2016 : Architecture microservices hautement disponible au...
 
Introduction à Neo4j
Introduction à Neo4jIntroduction à Neo4j
Introduction à Neo4j
 
Hackerspace jan-2013
Hackerspace jan-2013Hackerspace jan-2013
Hackerspace jan-2013
 
ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Rapport-ilovepdf-compressed
Rapport-ilovepdf-compressedRapport-ilovepdf-compressed
Rapport-ilovepdf-compressed
 
TFC_KATSHINDA_MBEMBA_GRACE_2017_2018
TFC_KATSHINDA_MBEMBA_GRACE_2017_2018TFC_KATSHINDA_MBEMBA_GRACE_2017_2018
TFC_KATSHINDA_MBEMBA_GRACE_2017_2018
 
Conversation pendant 24h avec une AI - ChatGPT
Conversation pendant 24h avec une AI - ChatGPTConversation pendant 24h avec une AI - ChatGPT
Conversation pendant 24h avec une AI - ChatGPT
 
Standards ouverts et logiciels libres
Standards ouverts et logiciels libresStandards ouverts et logiciels libres
Standards ouverts et logiciels libres
 
Presentation Projet R&D Dynarchi
Presentation Projet R&D Dynarchi Presentation Projet R&D Dynarchi
Presentation Projet R&D Dynarchi
 
2019 04 25_lybero_chiffrement_5
2019 04 25_lybero_chiffrement_52019 04 25_lybero_chiffrement_5
2019 04 25_lybero_chiffrement_5
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 
Elasticsearch - Esme sudria
Elasticsearch - Esme sudriaElasticsearch - Esme sudria
Elasticsearch - Esme sudria
 
Portable Class Library et Nuget : Le Combo gagnant
Portable Class Library et Nuget : Le Combo gagnantPortable Class Library et Nuget : Le Combo gagnant
Portable Class Library et Nuget : Le Combo gagnant
 
Revit structure pdf
Revit structure pdfRevit structure pdf
Revit structure pdf
 

Plus de Neo4j

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansQIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansNeo4j
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...Neo4j
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosNeo4j
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Neo4j
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j
 
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdfRabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Neo4j
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 
Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)Neo4j
 
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdfNeo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdfNeo4j
 
Enabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge GraphsEnabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge GraphsNeo4j
 
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdfNeo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdfNeo4j
 
Neo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with GraphNeo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with GraphNeo4j
 

Plus de Neo4j (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansQIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
 
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdfRabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)
 
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdfNeo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
 
Enabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge GraphsEnabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge Graphs
 
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdfNeo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
 
Neo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with GraphNeo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with Graph
 

Neo4j & Prisme.ai : Interrogez vos données connectées en langage naturel avec un chatbot

  • 1. Neo4j, Inc. All rights reserved 2021 Neo4j, Inc. All rights reserved 2021 1 Interrogez vos données connectées en langage naturel (chatbot/callbot) avec Neo4j & Prisme.ai Nicolas Rouyer Sales Engineer, Neo4j, France Antoine Aamarcha CEO, Prisme.ai, France
  • 2. Neo4j, Inc. All rights reserved 2021 2 Neo4j Dotée de performances uniques, Neo4j est la seule base de données de graphes d’entreprise qui offre le stockage graphe natif, une architecture évolutive et optimisée pour la rapidité d’exécution, et la compatibilité ACID. L’architecture distribuée (cluster causal) de Neo4j supporte des tâches transactionnelles & analytiques complexes en simultané. (algorithmes graph data science)
  • 3. Neo4j, Inc. All rights reserved 2021 3 Prisme.ai - une technologie ouverte
  • 4. Neo4j, Inc. All rights reserved 2021 Actualités Neo4j - Pandora papers
  • 5. Neo4j, Inc. All rights reserved 2021 Actualités Neo4j - Aura DB Free !
  • 6. Neo4j, Inc. All rights reserved 2021 Actualités Neo4j - nouveau site GraphAcademy
  • 7. Neo4j, Inc. All rights reserved 2021 Actualités Neo4j - événements
  • 8. Neo4j, Inc. All rights reserved 2021 Actualités Prisme.ai - New Prisme.ai Messenger - Un menu latéral avec une liste de service - Theming - Formulaires
  • 9. Neo4j, Inc. All rights reserved 2021 Actualités Prisme.ai - Open Source DSUL-Server - Un DSUL est un standard mis en place pour décrire une application avec des triggers et workflows - Nous avons décidé de mettre en Open Source le DSUL-Server (runtime) Intents: I_LIKE_FRUIT: when: match phrases: - j'aime la [poire](fruit) - j'aime bien les [pommes](fruit) - j'aime les fruits parameters: - name: fruit entity: Fruit required: true questions: - Quel fruit tu aimes ? do: - say text: je suis vraiment ravi d'apprendre que tu aimes les $fruit !
  • 10. Neo4j, Inc. All rights reserved 2021 10 Pourquoi Neo4j & Prisme.ai 1 2 La base de données graphe native Neo4j simplifie la complexité backend Prisme.ai propose un studio low-code d’automatisation end- to-end boostée par le NLP 3 Exposition d’API native avec GraphQL + Neo4j
  • 11. Neo4j, Inc. All rights reserved 2021 Architecture - Assistant Prisme.ai : Chatbot + Workflow Messaging channels Intent: Intent p, Entities : EntityName1: value 1 EntityName2: value 2 EntityName3: value 3 Chatbot Intent 1 Intent 2 ... Intent n NLU 1 NLU 2 NLU 3 No NLU Events trigger Knowledge 1 Knowledge 2 Knowledge 3 Workflow Step 1 Step 2 ... Step n Intent represents end user intention that matches with “user says” Entities represents named slots extracted from the “user says” such as cities, dates, contracts, … Step represents a specific action in the workflow such as Call GraphQL query, send SMS, insert in CRM.., Scheduler Natural Language / event trigger
  • 12. Neo4j, Inc. All rights reserved 2021 Architecture - Neo4j et GraphQL
  • 13. Neo4j, Inc. All rights reserved 2021 Architecture - Neo4j et GraphQL
  • 14. Neo4j, Inc. All rights reserved 2021 Modèle graphe - mon compte twitter ingérée dans une base Neo4j. Le modèle graphe comprend : ● moi, ● Les comptes Twitter que je suis ● mes posts ● leurs posts ● les liens, tags &
  • 15. Neo4j, Inc. All rights reserved 2021 15 Démo Neo4j
  • 16. Neo4j, Inc. All rights reserved 2021 16 Démo Neo4j & Cypher 1. Qui me mentionne sur Twitter? 2. Qui sont les “followers” les + influents ? 3. Quels sont les “hashtags” que j’utilise fréquemment ? 4. Quelle proportion de personnes que je suis me suivent aussi ? 5. Qui sont ceux qui tweetent sur moi, mais que je ne suis pas ? 6. Quels liens figurent dans les “retweets” ? 7. Quelles autres personnes tweetent en utilisant mes “hashtags” préférés ?
  • 17. Neo4j, Inc. All rights reserved 2021 17 Qui me mentionne sur Twitter? // Graph of some of your mentions MATCH (u:User)-[p:POSTS]->(t:Tweet)-[:MENTIONS]->(m:Me:User) WITH u,p,t,m, COUNT(m.screen_name) AS count ORDER BY count DESC RETURN u,p,t,m LIMIT 10
  • 18. Neo4j, Inc. All rights reserved 2021 18 Qui je mentionne sur Twitter? // Graph of some of your mentions MATCH (u:Me:User)-[p:POSTS]->(t:Tweet)-[:MENTIONS]->(m:User) WITH u,p,t,m, COUNT(m.screen_name) AS count ORDER BY count DESC RETURN u,p,t,m LIMIT 10
  • 19. Neo4j, Inc. All rights reserved 2021 19 Parmi mes “followers”, quels sont les plus influents ? // Most influential followers MATCH (follower:User)-[:FOLLOWS]->(u:User:Me) RETURN follower.screen_name AS user, follower.followers AS followers ORDER BY followers DESC LIMIT 10 ╒═════════════════╤═══════════╕ │"user" │"followers"│ ╞═════════════════╪═══════════╡ │"matchActus" │56240 │ ├─────────────────┼───────────┤ │"rasangarocks" │51146 │ ├─────────────────┼───────────┤ │"Talend" │45292 │ ├─────────────────┼───────────┤ │"neo4j" │36649 │ ├─────────────────┼───────────┤ │"carbone" │30928 │ ├─────────────────┼───────────┤ │"DontkillFreeTNT"│26183 │ ├─────────────────┼───────────┤ │"La_Melee" │14481 │ ├─────────────────┼───────────┤ │"LaCantine_Tlse" │13126 │ ├─────────────────┼───────────┤ │"ed_dodds" │10791 │ ├─────────────────┼───────────┤ │"jimwebber" │6820 │ └─────────────────┴───────────┘
  • 20. Neo4j, Inc. All rights reserved 2021 20 Mes “hashtags” préférés // The hashtags you have used most often MATCH (h:Hashtag)<-[:TAGS]-(t:Tweet)<-[:POSTS]-(u:User:Me) WITH h, COUNT(h) AS Hashtags ORDER BY Hashtags DESC LIMIT 10 RETURN h.name, Hashtags ╒═══════════════╤══════════╕ │"h.name" │"Hashtags"│ ╞═══════════════╪══════════╡ │"neo4j" │163 │ ├───────────────┼──────────┤ │"runkeeper" │25 │ ├───────────────┼──────────┤ │"graphconnect" │21 │ ├───────────────┼──────────┤ │"graphdb" │18 │ ├───────────────┼──────────┤ │"bigdata" │18 │ ├───────────────┼──────────┤ │"toulouse" │18 │ ├───────────────┼──────────┤ │"graphday" │13 │ ├───────────────┼──────────┤ │"talendconnect"│10 │ ├───────────────┼──────────┤ │"ndlv2015" │10 │ ├───────────────┼──────────┤ │"panamapapers" │10 │ └───────────────┴──────────┘
  • 21. Neo4j, Inc. All rights reserved 2021 21 “Followback rate” : ratio des “followers” qui me suivent // Followback rate MATCH (me:User:Me)-[:FOLLOWS]->(f) WITH me, f, size((f)-[:FOLLOWS]->(me)) as doesFollowBack RETURN SUM(doesFollowBack) / toFloat(COUNT(f)) AS followBackRate ╒════════════════╕ │"followBackRate"│ ╞════════════════╡ │0.3375 │ └────────────────┘
  • 22. Neo4j, Inc. All rights reserved 2021 22 Qui poste sur moi, que je ne suis pas ? // Follower Recommendations - tweeting about you, but you don't follow MATCH (ou:User)-[:POSTS]->(t:Tweet)-[mt:MENTIONS]->(me:User:Me) WITH DISTINCT ou, me WHERE (ou)-[:FOLLOWS]->(me) AND NOT (me)-[:FOLLOWS]->(ou) RETURN ou.screen_name ╒════════════════╕ │"ou.screen_name"│ ╞════════════════╡ │"benoitbonte" │ ├────────────────┤ │"ExcelSysFrance"│ ├────────────────┤ │"geraudster" │ ├────────────────┤ │"lagraula" │ └────────────────┘
  • 23. Neo4j, Inc. All rights reserved 2021 23 Quels liens je re-poste ? A quelle fréquence sont-ils mis en favoris? // Links from interesting retweets MATCH (:User:Me)-[:POSTS]->(t:Tweet)-[:RETWEETS]->(rt)-[:CONTAINS]->(link:Link) RETURN t.id_str AS tweet, link.url AS url, rt.favorites AS favorites ORDER BY favorites DESC LIMIT 10 ╒═════════════════════╤═════════════════════════════════════════════════════════════════╤═══════════╕ │"tweet" │"url" │"favorites"│ ╞═════════════════════╪═════════════════════════════════════════════════════════════════╪═══════════╡ │"969123346855157760" │"https://twitter.com/i/web/status/967051706696683521" │13 │ ├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤ │"993462306943184896" │"https://twitter.com/i/web/status/993462187409793026" │10 │ ├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤ │"808381506536280064" │"https://twitter.com/i/web/status/808381317817794561" │5 │ ├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤ │"780556194339495940" │"http://buff.ly/2d4q3m3" │5 │ ├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤ │"1319201148264419333"│"https://twitter.com/i/web/status/1319164082289844225" │4 │ ├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤ │"1091043031749480448"│"https://twitter.com/i/web/status/1091042931321044993" │4 │ ├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤ │"1262316390373040128"│"https://twitter.com/i/web/status/1262316263579234304" │4 │ ├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤ │"697409927766274049" │"http://d-booker.jo.my/neo4j-livre" │2 │ ├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤ │"915291853758615552" │"https://www.meetup.com/fr-FR/graphdb-toulouse/events/243229177/"│2 │ ├─────────────────────┼─────────────────────────────────────────────────────────────────┼───────────┤ │"1181516413414100992"│"https://twitter.com/i/web/status/1181503756132855809" │2 │ └─────────────────────┴─────────────────────────────────────────────────────────────────┴───────────┘
  • 24. Neo4j, Inc. All rights reserved 2021 24 Quels utilisateurs postent avec mes hashtags favoris ? // Users tweeting with your top hashtags MATCH (me:User:Me)-[:POSTS]->(tweet:Tweet)-[:TAGS]->(ht) MATCH (ht)<-[:TAGS]-(tweet2:Tweet)<-[:POSTS]-(sugg:User) WHERE sugg <> me AND NOT (tweet2)-[:RETWEETS]->(tweet) WITH sugg, collect(distinct(ht)) as tags RETURN sugg.screen_name as friend, size(tags) as common ORDER BY common DESC LIMIT 20 ╒════════════════╤════════╕ │"friend" │"common"│ ╞════════════════╪════════╡ │"Neo4jFr" │11 │ ├────────────────┼────────┤ │"CedricFauvet" │9 │ ├────────────────┼────────┤ │"neo4j" │6 │ ├────────────────┼────────┤ │"rvanbruggen" │5 │ ├────────────────┼────────┤ │"chrissVallez" │4 │ ├────────────────┼────────┤ │"hlakkache" │4 │ ├────────────────┼────────┤ │"nmervaillie" │3 │ ├────────────────┼────────┤ │"GraphConnect" │3 │ ├────────────────┼────────┤ │"EvaDelier" │3 │ ├────────────────┼────────┤ │"meisshaily" │3 │ ├────────────────┼────────┤
  • 25. Neo4j, Inc. All rights reserved 2021 25 Démo API GraphQL
  • 26. Neo4j, Inc. All rights reserved 2021 26 Qui suis-je sur Twitter ? Combien de personnes me suivent ?
  • 27. Neo4j, Inc. All rights reserved 2021 27 Donne-moi 5 de mes posts ! query { us { posts(options: {limit: 5}) { text created_at } } }
  • 28. Neo4j, Inc. All rights reserved 2021 28 Qui me mentionne sur Twitter ? query { us { tweets { posted_by{ name screen_name } } } }
  • 29. Neo4j, Inc. All rights reserved 2021 29 Qui je mentionne sur Twitter ? query { us { posts { mentions { name screen_name } } } }
  • 30. Neo4j, Inc. All rights reserved 2021 30 Qui sont mes “followers” les plus influents ? query { us { followed_by (where: {followers_GT: 5000}, options: {sort: {followers: DESC}} ) { name screen_name followers } } }
  • 31. Neo4j, Inc. All rights reserved 2021 31 Quels sont mes “hashtags” préférés ? query { us { tweets (where: {tags_NOT: null}){ text tags { name num_tweets } } } }
  • 32. Neo4j, Inc. All rights reserved 2021 32 Jusqu’à quel point mes “followers” me suivent-ils ? query { us { followBackRate } }
  • 33. Neo4j, Inc. All rights reserved 2021 33 Qui poste sur moi, que je ne suis pas ? query { us { tweets { posted_by { name screen_name } } } } Regarder qui tweete sur moi...
  • 34. Neo4j, Inc. All rights reserved 2021 34 Who tweets about me, but I don’t follow? query { users(where: {screen_name_IN: ["neo4j", "lagraula"]}){ screen_name followed_by {screen_name} } } ...En sélectionner un, et vérifier si je le suis
  • 35. Neo4j, Inc. All rights reserved 2021 35 Quels sont les liens que je re-poste ? A quelle fréquence sont-ils mis en favoris ? query{ us { posts(where: {retweets_NOT: null}) { retweets (options: {sort: {favorites: DESC}, limit: 10}, where: {favorites_GT: 5}) { favorites contains { url } } } } }
  • 36. Neo4j, Inc. All rights reserved 2021 36 Quels utilisateurs postent avec mes “hashtags” préférés ? query { us { posts { tags { name num_tweets } } } } Commencer par trouver les hashtags...
  • 37. Neo4j, Inc. All rights reserved 2021 37 Quels utilisateurs postent avec mes “hashtags” préférés ? query { hashtags(where: {name_IN: ["neo4j", "Neo4j"]}) { name tweets { posted_by(where: {screen_name_NOT: "rrrouyer"}) { name screen_name } } } } ...ensuite, les filtrer et chercher les utilisateurs qui postent avec ces hashtags
  • 38. Neo4j, Inc. All rights reserved 2021 Annexe 38 Mutations
  • 39. Neo4j, Inc. All rights reserved 2021 Création d’un utilisateur mutation { createUsers(input: [ { name: "smoothtalker" screen_name: "Smooth Talker" } ]) { users { name screen_name } } } { "data": { "createUsers": { "users": [ { "name": "smoothtalker", "screen_name": "Smooth Talker" } ] } } }
  • 40. Neo4j, Inc. All rights reserved 2021 Recherche du nouvel utilisateur query {users( where: {name: "smoothtalker"} ){ name screen_name }} { "data": { "users": [ { "name": "smoothtalker", "screen_name": "Smooth Talker" } ] } }
  • 41. Neo4j, Inc. All rights reserved 2021 Création d’un nouvel utilisateur + tweet mutation { createUsers(input: [ { name: "Nicooo" screen_name: "nicooo" posts: { create: [ { node: { id: 123456 text: "Hi, my name is John!" } } ] } } ]) { users { name posts { id text } } } } { "data": { "createUsers": { "users": [ { "name": "Nicooo", "posts": [ { "id": "123456", "text": "Hi, my name is John!" } ] } ] } } }
  • 42. Neo4j, Inc. All rights reserved 2021 Récupération du nouvel utilisateur avec son tweet query {users (where: {name: "AAA"}){ name screen_name posts {text} }} { "data": { "users": [ { "name": "Nicooo", "screen_name": "nicooo", "posts": [ { "text": "Hi, my name is John!" } ] } ] } }
  • 43. Neo4j, Inc. All rights reserved 2021 Mise à jour utilisateur en créant un tweet mutation { updateUsers( where: { name: "AAA" } create: { posts: [ { node: { id: 100000001 text: "An interesting way of adding a second Post!" } } ] } ) { users { name screen_name posts { text } } } } { "data": { "updateUsers": { "users": [ { "name": "AAA", "screen_name": "AAA", "posts": [ { "text": "An interesting way of adding a second Post!" }, { "text": "An interesting way of adding a new Post!" }, { "text": "Salut Nicolas" } ] } ] } } }
  • 44. Neo4j, Inc. All rights reserved 2021 Récupération de l’utilisateur actuel avec ses tweets { "data": { "updateUsers": { "users": [ { "name": "AAA", "screen_name": "AAA", "posts": [ { "text": "An interesting way of adding a second Post!" }, { "text": "An interesting way of adding a new Post!" }, { "text": "Salut Nicolas" } ] } ] } } }
  • 45. Neo4j, Inc. All rights reserved 2021 45 Démo Prisme.ai
  • 46. Neo4j, Inc. All rights reserved 2021 46 Conclusion Capture de contexte temps réel Automatisation des réponses complexes aux événements
  • 47. Neo4j, Inc. All rights reserved 2021 Neo4j, Inc. All rights reserved 2021 47 Merci ! nicolas.rouyer@neo4j.com

Notes de l'éditeur

  1. For each scenario step, we provide: The business question, in natural language Cypher query and graph results Graphql API call Prisme.ai configuration
  2. For each scenario step, we provide: The business question, in natural language Cypher query and graph results Graphql API call Prisme.ai configuration
  3. (*) we cannot sort on num_tweets, as it is computed by a cypher query
  4. Start with finding some people tweeting about me...
  5. For each scenario step, we provide: The business question, in natural language Cypher query and graph results Graphql API call Prisme.ai configuration