Демонстрация семантического поиска с использованием векторной базы данных Pinecone и набора данных MusicCaps от Google AI.
Перейдите через ноутбук init-pinecone-index.ipynb
Примечания:
YOUR_API_KEY и YOUR_REGION значениями, показанными на вкладке API Keys в консоли Pinecone. В конце ноутбука есть образец запроса. Замените значение query , чтобы экспериментировать с семантическим поиском в наборе данных 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' : '' } Вы получите ощущение, что результаты, проведенные в области caption , и отметив score . ytid - это идентификатор видео YouTube, а start_s определяет отправную точку для соответствующего видео.
streamlit run search-app.py 
Чтобы запустить приложение поиска, вам нужно будет
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 Создайте файл секретов в ~/.streamlit/secrets.toml и установите свой PINECONE_KEY и PINECONE_ENV
PINECONE_KEY = "..." streamlit run search-app.py 
Этот набор данных может быть хорошим кандидатом на экспериментирование с гибридным поиском или использование фильтрации метаданных с использованием значений в аспекте metadata aspect_list в качестве ключевых слов.