File size: 1,505 Bytes
b457ce3
337404c
b457ce3
2793b59
337404c
 
c7aff61
b5c66fd
337404c
b457ce3
 
b5c66fd
2793b59
2c13607
118bf2e
 
 
9f1fe74
 
 
 
 
 
 
bbb086e
 
56f1fe3
bbb086e
 
337404c
 
c9a4e08
 
b5c66fd
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
#from llama_index.core import KnowledgeGraphIndex,StorageContext
from llama_index.core import StorageContext
#from llama_index.core.graph_stores import SimpleGraphStore
from llama_index.core import VectorStoreIndex
from llama_index.vector_stores.postgres import PGVectorStore
import psycopg2
import os

def build_graph_idx(docs,table_name):
    #graph_store=SimpleGraphStore()
    #storage_context=StorageContext.from_defaults(graph_store=graph_store)

    #idx=KnowledgeGraphIndex.from_documents(docs,max_triplets_per_chunk=3,storage_context=storage_context,include_embeddings=True)
    for doc in docs:
        if doc.get_content():
            clean_text=doc.get_content().replace("\x00","")
            doc.set_content(clean_text)
    user=os.getenv("DB_USER")
    password=os.getenv("DB_PWD")
    host=os.getenv("DB_HOST")
    port=os.getenv("DB_PORT", "6543")
    dbname=os.getenv("DB_NAME", "postgres")
    conn_str=f"postgresql://{user}:{password}@{host}:{port}/{dbname}"
    vector_store=PGVectorStore(
        connection_string=conn_str,
        async_connection_string=conn_str.replace("postgresql://", "postgresql+asyncpg://"),
        table_name=table_name,
        embed_dim=384,
        create_engine_kwargs={"connect_args": {"sslmode": "require"}}
    )
    storage_context=StorageContext.from_defaults(vector_store=vector_store)
    idx=VectorStoreIndex.from_documents(docs,storage_context=storage_context)
    print(f"Successfully pushed {len(docs)} docs to {table_name}")
    return idx