File size: 1,673 Bytes
4c91492
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import json
from langchain_openai import OpenAIEmbeddings
from langchain_core.vectorstores import InMemoryVectorStore
from langchain_core.documents import Document
from model_player import Player
from model_games import Event
from model_teams import Team

embeddings = OpenAIEmbeddings(model="text-embedding-3-large")
# vector_store = InMemoryVectorStore.load("/code/data/vectorstore.json", embedding=embeddings)
vector_store = InMemoryVectorStore(embeddings)

# add players
print("Adding players...")
for player in Player.get_players():
    print('-->',player.id)
    doc = Document(
        id=player.id,
        page_content=json.dumps(player.model_dump()),
        metadata=player.player_vector_metadata(),
    )
    vector_store.add_documents([doc])

# add events
print("Adding events...")
games = []
for event in Event.get_events():
    print('-->',event.id)
    if event.game_name not in games:
        games.append(event.game_name)
        doc = Document(
            id=event.game_name,
            page_content=event.game_name,
            metadata={"type": "game"},
        )
        vector_store.add_documents([doc])

    doc = Document(
        id=event.id,
        page_content=json.dumps(event.model_dump()),
        metadata=event.event_vector_metadata(),
    )
    vector_store.add_documents([doc])

# add teams
print("Adding teams...")
for team in Team.get_teams():
    print('-->',team.id)
    doc = Document(
        id=team.id,
        page_content=json.dumps(team.model_dump()),
        metadata=team.team_vector_metadata(),
    )
    vector_store.add_documents([doc])

print("Saving vector store...")
vector_store.dump("/code/data/vectorstore.json")