■ Neo4jGraph 클래스의 query 메소드를 사용해 데이터를 추가하는 방법을 보여준다.
▶ main.py
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 |
from dotenv import load_dotenv from langchain_neo4j import Neo4jGraph load_dotenv() neo4jGraph = Neo4jGraph() insertDataQuery = """ LOAD CSV WITH HEADERS FROM 'https://raw.githubusercontent.com/tomasonjo/blog-datasets/main/movies/movies_small.csv' AS row MERGE (m:Movie {id:row.movieId}) SET m.released = date(row.released), m.title = row.title, m.imdbRating = toFloat(row.imdbRating) FOREACH (director in split(row.director, '|') | MERGE (p:Person {name:trim(director)}) MERGE (p)-[:DIRECTED]->(m)) FOREACH (actor in split(row.actors, '|') | MERGE (p:Person {name:trim(actor)}) MERGE (p)-[:ACTED_IN]->(m)) FOREACH (genre in split(row.genres, '|') | MERGE (g:Genre {name:trim(genre)}) MERGE (m)-[:IN_GENRE]->(g)) """ neo4jGraph.query(insertDataQuery) |
▶ requirements.txt
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 |
aiohappyeyeballs==2.4.4 aiohttp==3.11.10 aiosignal==1.3.2 annotated-types==0.7.0 anyio==4.7.0 attrs==24.3.0 certifi==2024.12.14 charset-normalizer==3.4.0 frozenlist==1.5.0 greenlet==3.1.1 h11==0.14.0 httpcore==1.0.7 httpx==0.28.1 idna==3.10 jsonpatch==1.33 jsonpointer==3.0.0 langchain==0.3.12 langchain-core==0.3.25 langchain-neo4j==0.1.1 langchain-text-splitters==0.3.3 langsmith==0.2.3 multidict==6.1.0 neo4j==5.27.0 numpy==2.2.0 orjson==3.10.12 packaging==24.2 propcache==0.2.1 pydantic==2.10.3 pydantic_core==2.27.1 python-dotenv==1.0.1 pytz==2024.2 PyYAML==6.0.2 requests==2.32.3 requests-toolbelt==1.0.0 sniffio==1.3.1 SQLAlchemy==2.0.36 tenacity==9.0.0 typing_extensions==4.12.2 urllib3==2.2.3 yarl==1.18.3 |
※ pip install python-dotenv langchain-neo4j 명령을 실행했다.