始める無料で始める

メタデータによるフィルタリング

データベースで利用できるメタデータがあると、追加条件に基づいて結果を簡単にフィルタできるようになります。作成している映画レコメンドが、ユーザーの設定済みの好みにアクセスし、それを使って結果をさらに絞り込めるところを想像してください。

この演習では、追加のメタデータを使って Netflix の映画レコメンドをフィルタします。netflix_titles コレクションは各タイトルにメタデータを追加するよう更新され、タイトルに付与された年齢レーティングである 'rating' と、初公開年である 'release_year' が含まれています。

更新後のアイテムのプレビューは次のとおりです。

{'ids': ['s999'],
 'embeddings': None,
 'metadatas': [{'rating': 'TV-14', 'release_year': 2021}],
 'documents': ['Title: Searching For Sheela (Movie)\nDescription: Journalists and fans await Ma Anand Sheela as the infamous former Rajneesh commune’s spokesperson returns to India after decades for an interview tour.\nCategories: Documentaries, International Movies'],
 'uris': None,
 'data': None}

この演習はコースの一部です

OpenAI API ではじめる Embeddings 入門

コースを見る

演習の手順

  • reference_texts を使ってコレクションから 2 件の結果をクエリします。
  • 'G' レーティングで、かつ 2019 年より前に公開されたタイトルに結果をフィルタします。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

collection = client.get_collection(
  name="netflix_titles",
  embedding_function=OpenAIEmbeddingFunction(model_name="text-embedding-3-small", api_key="")
)

reference_texts = ["children's story about a car", "lions"]

# Query two results using reference_texts
result = collection.query(
  ____,
  ____,
  # Filter for titles with a G rating released before 2019
  ____={
    ____: [
        {"____": 
        	{____}
        },
        {"____": 
         	{____}
        }
    ]
  }
)

print(result['documents'])
コードを編集して実行