Il flusso di lavoro text-to-query

Agent text-to-query con MongoDB e LangGraph

Apoorva Joshi

Senior AI/ML Developer Advocate, MongoDB

Text-to-query

texttoquery1.jpg

Agent text-to-query con MongoDB e LangGraph

Text-to-query

texttoquery2.jpg

Agent text-to-query con MongoDB e LangGraph

Text-to-query

texttoquery3.jpg

Agent text-to-query con MongoDB e LangGraph

Text-to-query

texttoquery4.jpg

Agent text-to-query con MongoDB e LangGraph

Text-to-query

texttoquery5.jpg

Agent text-to-query con MongoDB e LangGraph

Text-to-query

texttoquery6.jpg

Agent text-to-query con MongoDB e LangGraph

Text-to-query: approccio agentico

 

query_agent.png

Agent text-to-query con MongoDB e LangGraph

Dati: alla maniera di MongoDB!

 

mongodb_data.png

Agent text-to-query con MongoDB e LangGraph

Structured Query Language (SQL)

Esempio di query SQL

SELECT *
FROM table
WHERE year>=1950
LIMIT 5

MongoDB Query API

Esempio di input tipo JSON

{ "$and": [
              {"year": {"$gte": 1990}},
              {"year": {"$lt": 2000}}
          ]
}

Metodi di query MongoDB

  • .find(), .insert(), .update(), .delete()
Agent text-to-query con MongoDB e LangGraph

Esempio: raccolta movies

_id Titolo Anno di uscita Cast Generi
573a1396f29313caabce3d17 Larks on a String 1990 [Rudolf Hrusènskè, Vlastimil Brodskè] [Commedia, Dramma, Romanzo]
573a1398f29313caabceab72 The Witching of Ben Wagner 1990 [Sam Bottoms, Harriet Hall, Bettina Rae, Justin Gocke] [Famiglia]
... ... ... [...] [...]
Agent text-to-query con MongoDB e LangGraph

Filtri singoli

query = {"genre": "Romance"}
Agent text-to-query con MongoDB e LangGraph

Filtri singoli

query = {"genre": "Romance"}
_id Titolo Anno di uscita Cast Generi
573a1390f29313caabcd6377 Wild and Woolly 1917 [Douglas Fairbanks, Eileen Percy, Calvert Carter, Charles Stevens] [Commedia, Western, Romanzo]
573a1391f29313caabcd70b4 The Four Horsemen of the Apocalypse 1921 [Pomeroy Cannon, Josef Swickard, Bridgetta Clark, Rudolph Valentino] [Dramma, Romanzo, Guerra]
Agent text-to-query con MongoDB e LangGraph

Filtri multipli

query = { "$and": [
                    {"year": {"$gte": 1990}},
                    {"year": {"$lt": 2000}}
                  ]
        }
Agent text-to-query con MongoDB e LangGraph

Filtri multipli

query = { "$and": [
                    {"year": {"$gte": 1990}},
                    {"year": {"$lt": 2000}}
                  ]
        }
_id Titolo Anno di uscita Cast Generi
573a1396f29313caabce3d17 Larks on a String 1990 [Rudolf Hrusènskè, Vlastimil Brodskè] [Commedia, Dramma, Romanzo]
573a1398f29313caabceab72 The Witching of Ben Wagner 1990 [Sam Bottoms, Harriet Hall, Bettina Rae, Justin Gocke] [Famiglia]
Agent text-to-query con MongoDB e LangGraph

Pipeline di aggregazione

pipeline.png

db.<collection>.aggregate([
    {stage-1},
    {stage-2},
    {stage-3},
    {stage-4},
])
Agent text-to-query con MongoDB e LangGraph

Operazioni multiple

query = [




]
Agent text-to-query con MongoDB e LangGraph

Operazioni multiple

query = [

{ "$sort": { "released": -1 } },


]
  • Ordina per released
Agent text-to-query con MongoDB e LangGraph

Operazioni multiple

query = [

{ "$sort": { "released": -1 } },
{ "$limit": 5 },

]
  • Ordina per released
  • Limita a 5 risultati
Agent text-to-query con MongoDB e LangGraph

Operazioni multiple

query = [

{ "$sort": { "released": -1 } },
{ "$limit": 5 },
{ "$project": { "title": 1, "_id": 0 } }
]
  • Ordina per released
  • Limita a 5 risultati
  • Proietta la colonna "title"
Agent text-to-query con MongoDB e LangGraph

Operazioni multiple

query = [

{ "$sort": { "released": -1 } },
{ "$limit": 5 },
{ "$project": { "title": 1, "_id": 0 } }
]
  • Ordina per released
  • Limita a 5 risultati
  • Proietta la colonna "title"
Titolo
The Treasure
Knight of Cups
Sand Castles
Shut In
Dègradè
Agent text-to-query con MongoDB e LangGraph

Aggregazioni con raggruppamento

_id Titolo Anno di uscita Cast Generi
573a1396f29313caabce3d17 Larks on a String 1990 [Rudolf Hrusènskè, Vlastimil Brodskè] [Commedia, Dramma, Romanzo]
573a1398f29313caabceab72 The Witching of Ben Wagner 1990 [Sam Bottoms, Harriet Hall, Bettina Rae, Justin Gocke] [Famiglia]
... ... ... [...] [...]
Agent text-to-query con MongoDB e LangGraph

Aggregazioni con raggruppamento

query = [

{ "$unwind": "$genres" },
{ "$group": { "_id": "$genres", "numMovies": { "$sum": 1 } }},
{ "$match": { "numMovies": { "$gte": 50 } } }
]
Agent text-to-query con MongoDB e LangGraph

Aggregazioni con raggruppamento

 

Genere Conteggio
Dramma 12385
Commedia 6532
Romanzo 3318
Crimine 2457
Thriller 2454
... ...

Fasi della pipeline

  • $match, $group, $facet, $geoNear, $lookup, $merge, $search, $sort...

Operatori

  • Confronto: $eq, $gt, $gte, ...
  • Matematica: $add, $multiply, $divide...
  • Array: $push, $reduce, ...
  • Stringa: $toUpper, $toLower, ...
  • Temporale: $dateAdd, $dateDiff, ...
Agent text-to-query con MongoDB e LangGraph

Passiamo alla pratica !

Agent text-to-query con MongoDB e LangGraph

Preparing Video For Download...