|
from langchain_community.embeddings.ollama import OllamaEmbeddings |
|
from fetishTest.character import BaseCharacter |
|
import json |
|
|
|
|
|
|
|
label_list = [] |
|
|
|
standard_character = [ |
|
BaseCharacter( |
|
key=1, |
|
name="Oberyn Martell", |
|
type="TV series", |
|
media="Game of Thrones", |
|
label=["Sensual","Non-traditional", "Charismatic", "Confident", "Adventurous"] |
|
), |
|
BaseCharacter( |
|
key=2, |
|
name="Christian Grey", |
|
type="movie", |
|
media="50 Shades of Grey", |
|
label=["BDSM", "Private", "Mysterious", "Dominant", "Caring"] |
|
), |
|
BaseCharacter( |
|
key=3, |
|
name="Maddy Perez", |
|
type="TV series", |
|
media="Euphoria", |
|
label=["Protective", "Adventurous", "Sensual", "Independent", "Passionate", "Confident"] |
|
), |
|
BaseCharacter( |
|
key=4, |
|
name="Geralt of Rivia", |
|
type="movie", |
|
media="The Witcher", |
|
label=["Selective", "Non-committal", "Discreet", "Sensual", "Courageous"] |
|
), |
|
BaseCharacter( |
|
key=5, |
|
name="Emily Cooper", |
|
type="movie", |
|
media="Emily in Paris", |
|
label=["Romantic", "Ambitious", "Adventurous", "Courageous", "Flirtatious"] |
|
), |
|
BaseCharacter( |
|
key=6, |
|
name="Gatsby ", |
|
type="movie", |
|
media="The Great Gatsby", |
|
label=["Luxurious", "Persistent", "Romantic", "Obsessive"] |
|
), |
|
BaseCharacter( |
|
key=7, |
|
name="Daenerys Targaryen", |
|
type="TV series", |
|
media="Game of Thrones", |
|
label=["Passionate", "Empowered", "Compassionate", "Fierce", "Loyal", "Romantic"] |
|
), |
|
BaseCharacter( |
|
key=8, |
|
name="Daemon Targaryen", |
|
type="TV series", |
|
media="House of the Dragon", |
|
label=["Dominant", "Seductive", "Experimental", "Power-driven", "Unpredictable"] |
|
), |
|
BaseCharacter( |
|
key=9, |
|
name="Jessica Rabbit", |
|
type="movie", |
|
media="Who Framed Roger Rabbit", |
|
label=["Seductive", "Vulnerable", "Confident", "Playful", "Passionate"] |
|
), |
|
BaseCharacter( |
|
key=10, |
|
name="Tony Stark", |
|
type="movie", |
|
media="Iron Man", |
|
label=["Loyal", "Confident", "Dominant", "Affectionate", "Adventurous"] |
|
), |
|
BaseCharacter( |
|
key=15, |
|
name="Lucifer Morningstar", |
|
type="movie", |
|
media="Lucifer", |
|
label=["Confident", "Playful", "Dominant", "Adventurous", "Passionate"] |
|
), |
|
BaseCharacter( |
|
key=11, |
|
name="Love Quinn", |
|
type="movie", |
|
media="You", |
|
label=["Romantic", "Impulsive", "Adventurous", "Intense", "Possessive"] |
|
), |
|
BaseCharacter( |
|
key=12, |
|
name="Joe Goldberg", |
|
type="movie", |
|
media="You", |
|
label=["Obsessive", "Controlling", "Intense", "Dedicated", "Possessive"] |
|
), |
|
BaseCharacter( |
|
key=13, |
|
name="Marilyn Monroe", |
|
type="movie", |
|
media="Blonde", |
|
label=["Vulnerable", "Emotional", "Romantic", "Passionate", "Sensual"] |
|
), |
|
BaseCharacter( |
|
key=14, |
|
name="Don Massimo", |
|
type="movie", |
|
media="365 Days", |
|
label=["BDSM", "Dominant", "Controlling", "Assertive", "Protective", "Passionate"] |
|
), |
|
BaseCharacter( |
|
key=16, |
|
name="Harley Quinn", |
|
type="movie", |
|
media="The Suicide Squad", |
|
label=["Spontaneous", "Playful", "Adventurous", "Dominant", "Passionate"] |
|
), |
|
BaseCharacter( |
|
key=17, |
|
name="Catwoman", |
|
type="movie", |
|
media="The Batman", |
|
label=["Seductive", "Confident", "Independent", "Adventurous", "Playful"] |
|
), |
|
BaseCharacter( |
|
key=18, |
|
name="Mike Lane", |
|
type="movie", |
|
media="Magic Mike", |
|
label=["Confident", "Charming", "Hardworking", "Dominant", "Sensual"] |
|
), |
|
BaseCharacter( |
|
key=20, |
|
name="Lara Croft", |
|
type="movie", |
|
media="Tomb Raider", |
|
label=["Adventurous", "Confident", "Independent", "Dominant", "Explorative"] |
|
), |
|
BaseCharacter( |
|
key=19, |
|
name="Natasha Romanoff", |
|
type="movie", |
|
media="Black Widow", |
|
label=["Confident", "Mysterious", "Passionate", "Dominant", "Sensual"] |
|
), |
|
] |
|
for character in standard_character: |
|
labels = character.label |
|
for label in labels: |
|
if label not in label_list: |
|
label_list.append(label) |
|
print(len(label_list)) |
|
|
|
|
|
for c in standard_character: |
|
c.label = sorted(c.label) |
|
|
|
|
|
embed_model = OllamaEmbeddings(model="bge-m3") |
|
for character in standard_character: |
|
character.embedding = embed_model.embed_query(character.get_label()) |
|
standard_character_dicts = [character.to_dict() for character in standard_character] |
|
|
|
with open("standard_character.json", "w") as f: |
|
json.dump(standard_character_dicts, f, indent=4) |
|
|
|
|