Skip to content

Commit 0196423

Browse files
committed
feat(knowledgegraph): add knowledge graph node
1 parent 8c33ea3 commit 0196423

File tree

9 files changed

+247
-80
lines changed

9 files changed

+247
-80
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,6 @@ examples/graph_examples/ScrapeGraphAI_generated_graph
3232
examples/**/result.csv
3333
examples/**/result.json
3434
main.py
35-
35+
lib/
36+
*.html
3637

examples/single_node/kg_node.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
"model": "gpt-4o",
5151
"temperature": 0,
5252
},
53+
"verbose": True,
5354
}
5455

5556
# ************************************************
@@ -59,19 +60,18 @@
5960
llm_model = OpenAI(graph_config["llm"])
6061

6162
robots_node = KnowledgeGraphNode(
62-
input="answer & user_prompt",
63+
input="user_prompt & answer_dict",
6364
output=["is_scrapable"],
64-
node_config={"llm_model": llm_model,
65-
"headless": False
66-
}
65+
node_config={"llm_model": llm_model}
6766
)
6867

6968
# ************************************************
7069
# Test the node
7170
# ************************************************
7271

7372
state = {
74-
"url": "https://twitter.com/home"
73+
"user_prompt": "What are the job postings?",
74+
"answer_dict": job_postings
7575
}
7676

7777
result = robots_node.execute(state)

pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ dependencies = [
3030
"playwright==1.43.0",
3131
"google==3.0.0",
3232
"yahoo-search-py==0.3",
33+
"networkx==3.3",
34+
"pyvis==0.3.2",
3335
]
3436

3537
license = "MIT"

requirements-dev.lock

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ anyio==4.3.0
2222
# via groq
2323
# via httpx
2424
# via openai
25+
asttokens==2.4.1
26+
# via stack-data
2527
async-timeout==4.0.3
2628
# via aiohttp
2729
# via langchain
@@ -43,9 +45,15 @@ certifi==2024.2.2
4345
# via requests
4446
charset-normalizer==3.3.2
4547
# via requests
48+
colorama==0.4.6
49+
# via ipython
50+
# via pytest
51+
# via tqdm
4652
dataclasses-json==0.6.6
4753
# via langchain
4854
# via langchain-community
55+
decorator==5.1.1
56+
# via ipython
4957
defusedxml==0.7.1
5058
# via langchain-anthropic
5159
distro==1.9.0
@@ -54,7 +62,10 @@ distro==1.9.0
5462
# via openai
5563
exceptiongroup==1.2.1
5664
# via anyio
65+
# via ipython
5766
# via pytest
67+
executing==2.0.1
68+
# via stack-data
5869
faiss-cpu==1.8.0
5970
# via scrapegraphai
6071
filelock==3.14.0
@@ -93,6 +104,7 @@ graphviz==0.20.3
93104
# via scrapegraphai
94105
greenlet==3.0.3
95106
# via playwright
107+
# via sqlalchemy
96108
groq==0.5.0
97109
# via langchain-groq
98110
grpcio==1.63.0
@@ -123,12 +135,20 @@ idna==3.7
123135
# via yarl
124136
iniconfig==2.0.0
125137
# via pytest
138+
ipython==8.24.0
139+
# via pyvis
140+
jedi==0.19.1
141+
# via ipython
142+
jinja2==3.1.4
143+
# via pyvis
126144
jmespath==1.0.1
127145
# via boto3
128146
# via botocore
129147
jsonpatch==1.33
130148
# via langchain
131149
# via langchain-core
150+
jsonpickle==3.0.4
151+
# via pyvis
132152
jsonpointer==2.4
133153
# via jsonpatch
134154
langchain==0.1.15
@@ -162,15 +182,22 @@ langsmith==0.1.58
162182
# via langchain-core
163183
lxml==5.2.2
164184
# via free-proxy
185+
markupsafe==2.1.5
186+
# via jinja2
165187
marshmallow==3.21.2
166188
# via dataclasses-json
189+
matplotlib-inline==0.1.7
190+
# via ipython
167191
minify-html==0.15.0
168192
# via scrapegraphai
169193
multidict==6.0.5
170194
# via aiohttp
171195
# via yarl
172196
mypy-extensions==1.0.0
173197
# via typing-inspect
198+
networkx==3.3
199+
# via pyvis
200+
# via scrapegraphai
174201
numpy==1.26.4
175202
# via faiss-cpu
176203
# via langchain
@@ -188,10 +215,14 @@ packaging==23.2
188215
# via pytest
189216
pandas==2.2.2
190217
# via scrapegraphai
218+
parso==0.8.4
219+
# via jedi
191220
playwright==1.43.0
192221
# via scrapegraphai
193222
pluggy==1.5.0
194223
# via pytest
224+
prompt-toolkit==3.0.43
225+
# via ipython
195226
proto-plus==1.23.0
196227
# via google-ai-generativelanguage
197228
# via google-api-core
@@ -202,6 +233,8 @@ protobuf==4.25.3
202233
# via googleapis-common-protos
203234
# via grpcio-status
204235
# via proto-plus
236+
pure-eval==0.2.2
237+
# via stack-data
205238
pyasn1==0.6.0
206239
# via pyasn1-modules
207240
# via rsa
@@ -220,6 +253,8 @@ pydantic-core==2.18.2
220253
# via pydantic
221254
pyee==11.1.0
222255
# via playwright
256+
pygments==2.18.0
257+
# via ipython
223258
pyparsing==3.1.2
224259
# via httplib2
225260
pytest==8.0.0
@@ -232,6 +267,8 @@ python-dotenv==1.0.1
232267
# via scrapegraphai
233268
pytz==2024.1
234269
# via pandas
270+
pyvis==0.3.2
271+
# via scrapegraphai
235272
pyyaml==6.0.1
236273
# via huggingface-hub
237274
# via langchain
@@ -254,6 +291,7 @@ s3transfer==0.10.1
254291
selectolax==0.3.21
255292
# via yahoo-search-py
256293
six==1.16.0
294+
# via asttokens
257295
# via python-dateutil
258296
sniffio==1.3.1
259297
# via anthropic
@@ -266,6 +304,8 @@ soupsieve==2.5
266304
sqlalchemy==2.0.30
267305
# via langchain
268306
# via langchain-community
307+
stack-data==0.6.3
308+
# via ipython
269309
tenacity==8.3.0
270310
# via langchain
271311
# via langchain-community
@@ -282,12 +322,16 @@ tqdm==4.66.4
282322
# via huggingface-hub
283323
# via openai
284324
# via scrapegraphai
325+
traitlets==5.14.3
326+
# via ipython
327+
# via matplotlib-inline
285328
typing-extensions==4.11.0
286329
# via anthropic
287330
# via anyio
288331
# via google-generativeai
289332
# via groq
290333
# via huggingface-hub
334+
# via ipython
291335
# via openai
292336
# via pydantic
293337
# via pydantic-core
@@ -304,6 +348,8 @@ urllib3==2.2.1
304348
# via botocore
305349
# via requests
306350
# via yahoo-search-py
351+
wcwidth==0.2.13
352+
# via prompt-toolkit
307353
yahoo-search-py==0.3
308354
# via scrapegraphai
309355
yarl==1.9.4

requirements.lock

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ anyio==4.3.0
2222
# via groq
2323
# via httpx
2424
# via openai
25+
asttokens==2.4.1
26+
# via stack-data
2527
async-timeout==4.0.3
2628
# via aiohttp
2729
# via langchain
@@ -43,9 +45,14 @@ certifi==2024.2.2
4345
# via requests
4446
charset-normalizer==3.3.2
4547
# via requests
48+
colorama==0.4.6
49+
# via ipython
50+
# via tqdm
4651
dataclasses-json==0.6.6
4752
# via langchain
4853
# via langchain-community
54+
decorator==5.1.1
55+
# via ipython
4956
defusedxml==0.7.1
5057
# via langchain-anthropic
5158
distro==1.9.0
@@ -54,6 +61,9 @@ distro==1.9.0
5461
# via openai
5562
exceptiongroup==1.2.1
5663
# via anyio
64+
# via ipython
65+
executing==2.0.1
66+
# via stack-data
5767
faiss-cpu==1.8.0
5868
# via scrapegraphai
5969
filelock==3.14.0
@@ -92,6 +102,7 @@ graphviz==0.20.3
92102
# via scrapegraphai
93103
greenlet==3.0.3
94104
# via playwright
105+
# via sqlalchemy
95106
groq==0.5.0
96107
# via langchain-groq
97108
grpcio==1.63.0
@@ -120,12 +131,20 @@ idna==3.7
120131
# via httpx
121132
# via requests
122133
# via yarl
134+
ipython==8.24.0
135+
# via pyvis
136+
jedi==0.19.1
137+
# via ipython
138+
jinja2==3.1.4
139+
# via pyvis
123140
jmespath==1.0.1
124141
# via boto3
125142
# via botocore
126143
jsonpatch==1.33
127144
# via langchain
128145
# via langchain-core
146+
jsonpickle==3.0.4
147+
# via pyvis
129148
jsonpointer==2.4
130149
# via jsonpatch
131150
langchain==0.1.15
@@ -159,15 +178,22 @@ langsmith==0.1.58
159178
# via langchain-core
160179
lxml==5.2.2
161180
# via free-proxy
181+
markupsafe==2.1.5
182+
# via jinja2
162183
marshmallow==3.21.2
163184
# via dataclasses-json
185+
matplotlib-inline==0.1.7
186+
# via ipython
164187
minify-html==0.15.0
165188
# via scrapegraphai
166189
multidict==6.0.5
167190
# via aiohttp
168191
# via yarl
169192
mypy-extensions==1.0.0
170193
# via typing-inspect
194+
networkx==3.3
195+
# via pyvis
196+
# via scrapegraphai
171197
numpy==1.26.4
172198
# via faiss-cpu
173199
# via langchain
@@ -184,8 +210,12 @@ packaging==23.2
184210
# via marshmallow
185211
pandas==2.2.2
186212
# via scrapegraphai
213+
parso==0.8.4
214+
# via jedi
187215
playwright==1.43.0
188216
# via scrapegraphai
217+
prompt-toolkit==3.0.43
218+
# via ipython
189219
proto-plus==1.23.0
190220
# via google-ai-generativelanguage
191221
# via google-api-core
@@ -196,6 +226,8 @@ protobuf==4.25.3
196226
# via googleapis-common-protos
197227
# via grpcio-status
198228
# via proto-plus
229+
pure-eval==0.2.2
230+
# via stack-data
199231
pyasn1==0.6.0
200232
# via pyasn1-modules
201233
# via rsa
@@ -214,6 +246,8 @@ pydantic-core==2.18.2
214246
# via pydantic
215247
pyee==11.1.0
216248
# via playwright
249+
pygments==2.18.0
250+
# via ipython
217251
pyparsing==3.1.2
218252
# via httplib2
219253
python-dateutil==2.9.0.post0
@@ -223,6 +257,8 @@ python-dotenv==1.0.1
223257
# via scrapegraphai
224258
pytz==2024.1
225259
# via pandas
260+
pyvis==0.3.2
261+
# via scrapegraphai
226262
pyyaml==6.0.1
227263
# via huggingface-hub
228264
# via langchain
@@ -245,6 +281,7 @@ s3transfer==0.10.1
245281
selectolax==0.3.21
246282
# via yahoo-search-py
247283
six==1.16.0
284+
# via asttokens
248285
# via python-dateutil
249286
sniffio==1.3.1
250287
# via anthropic
@@ -257,6 +294,8 @@ soupsieve==2.5
257294
sqlalchemy==2.0.30
258295
# via langchain
259296
# via langchain-community
297+
stack-data==0.6.3
298+
# via ipython
260299
tenacity==8.3.0
261300
# via langchain
262301
# via langchain-community
@@ -271,12 +310,16 @@ tqdm==4.66.4
271310
# via huggingface-hub
272311
# via openai
273312
# via scrapegraphai
313+
traitlets==5.14.3
314+
# via ipython
315+
# via matplotlib-inline
274316
typing-extensions==4.11.0
275317
# via anthropic
276318
# via anyio
277319
# via google-generativeai
278320
# via groq
279321
# via huggingface-hub
322+
# via ipython
280323
# via openai
281324
# via pydantic
282325
# via pydantic-core
@@ -293,6 +336,8 @@ urllib3==2.2.1
293336
# via botocore
294337
# via requests
295338
# via yahoo-search-py
339+
wcwidth==0.2.13
340+
# via prompt-toolkit
296341
yahoo-search-py==0.3
297342
# via scrapegraphai
298343
yarl==1.9.4

0 commit comments

Comments
 (0)