Une démonstration de la recherche sémantique à l'aide de la PineCone de la base de données vectorielle et de l'ensemble de données MusicCaps de Google AI.
Parcourez le cahier init-pinecone-index.ipynb à
Notes:
YOUR_API_KEY et YOUR_REGION par les valeurs indiquées à partir de l'onglet Keys API dans la console Pinecone. Il y a un exemple de requête à la fin du cahier. Remplacez la valeur query pour expérimenter par la recherche sémantique à travers le jeu de données MusicCaps.
query = 'lively eastern european folk music with strings outdoors'
search_pinecone ( query ){ 'matches' : [{ 'id' : '5327' ,
'metadata' : { 'aspect_list' : "['romanian folk music', 'live "
"performance', 'instrumental', "
"'accordion', 'upright bass', "
"'acoustic guitar', 'percussion', "
"'fiddle', 'lively', 'upbeat', "
"'joyful']" ,
'audioset_positive_labels' : '/m/0mkg' ,
'author_id' : 9.0 ,
'caption' : 'This is the live performance of a '
'Romanian folk music piece. It is '
'instrumental. There is an accordion '
'playing the leading melody while the '
'fiddle, acoustic guitar and the upright '
'bass play in the background. There is a '
'percussive element in the rhythmic '
'background. The atmosphere is lively '
'and joyful.' ,
'end_s' : 30.0 ,
'is_audioset_eval' : False ,
'is_balanced_subset' : False ,
'start_s' : 20.0 ,
'ytid' : 'xR2p3UED4VU' },
'score' : 0.658422887 ,
'values' : []},
...
],
'namespace' : '' } Vous aurez un sens pour les résultats en lisant le champ caption et en notant le score . Le ytid est l'ID vidéo YouTube et start_s définit le point de départ de la vidéo pertinente.
streamlit run search-app.py 
Pour exécuter l'application de recherche, vous devrez
git clone https://github.com/ben-ogden/musiccaps.git
cd musiccaps
pipenv shell
pipenv install pinecone-client streamlit
streamlit version
...
Streamlit, version 1.22.0 Créez un fichier Secrets dans ~ / .Streamlit / secrets.toml et définissez votre PINECONE_KEY et PINECONE_ENV
PINECONE_KEY = "..." streamlit run search-app.py 
Cet ensemble de données pourrait être un bon candidat pour expérimenter la recherche hybride ou l'utilisation du filtrage des métadonnées en utilisant les valeurs dans les metadata aspect_list comme mots clés.