メタデータによる絞り込み
データベースでメタデータを活用すると、追加の条件に基づいて結果をより簡単に絞り込めるようになります。たとえば、作成した映画のレコメンデーションがユーザーの設定した好みにアクセスし、それをもとに結果をさらに絞り込めるようになります。
この演習では、追加のメタデータを使って 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 で学ぶ埋め込み入門
演習の手順
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'])