[PYTHON/LANGCHAIN] CYPHER 템플리트와 커스텀 도구를 사용해 NEO4J 데이터베이스 검색하기
■ CYPHER 템플리트와 커스텀 도구를 사용해 NEO4J 데이터베이스를 검색하는 방법을 보여준다. ※ NEO4J_URI, NEO4J_USERNAME, NEO4J_PASSWORD 환경 변수 값은 .env 파일에 정의한다. ※
■ CYPHER 템플리트와 커스텀 도구를 사용해 NEO4J 데이터베이스를 검색하는 방법을 보여준다. ※ NEO4J_URI, NEO4J_USERNAME, NEO4J_PASSWORD 환경 변수 값은 .env 파일에 정의한다. ※
■ NEO4J 데이터베이스 결과에 기반한 답변을 생성하는 방법을 보여준다. ※ NEO4J_URI, NEO4J_USERNAME, NEO4J_PASSWORD 환경 변수 값은 .env 파일에 정의한다. ※ OPENAI_API_KEY 환경
■ 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 명령을
■ ALTER USER ~ SET PASSWORD 명령을 사용해 사용자 계정의 패스워드를 변경하는 방법을 보여준다. ▶ 예제 코드 (CYPHER)
1 2 3 |
ALTER USER neo4j SET PASSWORD 'test1234' |
※ neo4j :
■ SHOW USERS 명령을 사용해 사용자 목록을 조회하는 방법을 보여준다. ▶ 예제 코드 (CYPHER)
1 2 3 |
SHOW USERS |