Skip to content

Commit d177afb

Browse files
committed
refactor(Ollama): integrate new LangChain chat init
1 parent ecc5e35 commit d177afb

File tree

4 files changed

+34
-22
lines changed

4 files changed

+34
-22
lines changed

requirements-dev.lock

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ aiofiles==24.1.0
1212
# via burr
1313
aiohttp==3.9.5
1414
# via langchain
15+
# via langchain-community
1516
# via langchain-fireworks
1617
# via langchain-nvidia-ai-endpoints
1718
aiosignal==1.3.1
@@ -179,6 +180,7 @@ graphviz==0.20.3
179180
# via scrapegraphai
180181
greenlet==3.0.3
181182
# via playwright
183+
# via sqlalchemy
182184
groq==0.9.0
183185
# via langchain-groq
184186
grpc-google-iam-v1==0.13.1
@@ -262,6 +264,7 @@ langchain-core==0.2.22
262264
# via langchain
263265
# via langchain-anthropic
264266
# via langchain-aws
267+
# via langchain-community
265268
# via langchain-fireworks
266269
# via langchain-google-genai
267270
# via langchain-google-vertexai
@@ -285,6 +288,7 @@ langchain-text-splitters==0.2.2
285288
# via langchain
286289
langsmith==0.1.93
287290
# via langchain
291+
# via langchain-community
288292
# via langchain-core
289293
loguru==0.7.2
290294
# via burr
@@ -319,6 +323,7 @@ numpy==1.26.4
319323
# via faiss-cpu
320324
# via langchain
321325
# via langchain-aws
326+
# via langchain-community
322327
# via matplotlib
323328
# via pandas
324329
# via pyarrow
@@ -339,6 +344,7 @@ packaging==24.1
339344
# via google-cloud-bigquery
340345
# via huggingface-hub
341346
# via langchain-core
347+
# via marshmallow
342348
# via matplotlib
343349
# via pytest
344350
# via sphinx
@@ -429,6 +435,7 @@ pytz==2024.1
429435
pyyaml==6.0.1
430436
# via huggingface-hub
431437
# via langchain
438+
# via langchain-community
432439
# via langchain-core
433440
# via uvicorn
434441
referencing==0.35.1
@@ -444,6 +451,7 @@ requests==2.32.3
444451
# via google-cloud-storage
445452
# via huggingface-hub
446453
# via langchain
454+
# via langchain-community
447455
# via langchain-fireworks
448456
# via langsmith
449457
# via sphinx
@@ -501,12 +509,14 @@ sphinxcontrib-serializinghtml==1.1.10
501509
# via sphinx
502510
sqlalchemy==2.0.31
503511
# via langchain
512+
# via langchain-community
504513
starlette==0.37.2
505514
# via fastapi
506515
streamlit==1.36.0
507516
# via burr
508517
tenacity==8.5.0
509518
# via langchain
519+
# via langchain-community
510520
# via langchain-core
511521
# via streamlit
512522
tiktoken==0.7.0
@@ -557,6 +567,7 @@ typing-extensions==4.12.2
557567
# via typing-inspect
558568
# via uvicorn
559569
typing-inspect==0.9.0
570+
# via dataclasses-json
560571
# via sf-hamilton
561572
tzdata==2024.1
562573
# via pandas

requirements.lock

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
-e file:.
1111
aiohttp==3.9.5
1212
# via langchain
13+
# via langchain-community
1314
# via langchain-fireworks
1415
# via langchain-nvidia-ai-endpoints
1516
aiosignal==1.3.1
@@ -127,6 +128,7 @@ graphviz==0.20.3
127128
# via scrapegraphai
128129
greenlet==3.0.3
129130
# via playwright
131+
# via sqlalchemy
130132
groq==0.9.0
131133
# via langchain-groq
132134
grpc-google-iam-v1==0.13.1
@@ -183,6 +185,7 @@ langchain-core==0.2.22
183185
# via langchain
184186
# via langchain-anthropic
185187
# via langchain-aws
188+
# via langchain-community
186189
# via langchain-fireworks
187190
# via langchain-google-genai
188191
# via langchain-google-vertexai
@@ -206,6 +209,7 @@ langchain-text-splitters==0.2.2
206209
# via langchain
207210
langsmith==0.1.93
208211
# via langchain
212+
# via langchain-community
209213
# via langchain-core
210214
lxml==5.2.2
211215
# via free-proxy
@@ -226,6 +230,7 @@ numpy==1.26.4
226230
# via faiss-cpu
227231
# via langchain
228232
# via langchain-aws
233+
# via langchain-community
229234
# via pandas
230235
# via shapely
231236
openai==1.37.0
@@ -239,6 +244,7 @@ packaging==24.1
239244
# via google-cloud-bigquery
240245
# via huggingface-hub
241246
# via langchain-core
247+
# via marshmallow
242248
pandas==2.2.2
243249
# via scrapegraphai
244250
pillow==10.4.0
@@ -296,6 +302,7 @@ pytz==2024.1
296302
pyyaml==6.0.1
297303
# via huggingface-hub
298304
# via langchain
305+
# via langchain-community
299306
# via langchain-core
300307
regex==2024.5.15
301308
# via tiktoken
@@ -306,6 +313,7 @@ requests==2.32.3
306313
# via google-cloud-storage
307314
# via huggingface-hub
308315
# via langchain
316+
# via langchain-community
309317
# via langchain-fireworks
310318
# via langsmith
311319
# via tiktoken
@@ -332,6 +340,7 @@ sqlalchemy==2.0.31
332340
# via langchain-community
333341
tenacity==8.5.0
334342
# via langchain
343+
# via langchain-community
335344
# via langchain-core
336345
tiktoken==0.7.0
337346
# via langchain-openai
@@ -356,6 +365,9 @@ typing-extensions==4.12.2
356365
# via pydantic-core
357366
# via pyee
358367
# via sqlalchemy
368+
# via typing-inspect
369+
typing-inspect==0.9.0
370+
# via dataclasses-json
359371
tzdata==2024.1
360372
# via pandas
361373
undetected-playwright==0.3.0

scrapegraphai/graphs/abstract_graph.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import uuid
88
from pydantic import BaseModel
99

10+
from langchain_community.chat_models import ChatOllama
11+
1012
from langchain_aws import BedrockEmbeddings
1113
from langchain_community.embeddings import HuggingFaceHubEmbeddings, OllamaEmbeddings
1214
from langchain_google_genai import GoogleGenerativeAIEmbeddings
@@ -19,22 +21,23 @@
1921
from ..models import (
2022
Anthropic,
2123
AzureOpenAI,
24+
OpenAI,
2225
Bedrock,
2326
Gemini,
2427
Groq,
2528
HuggingFace,
26-
Ollama,
27-
OpenAI,
2829
OneApi,
2930
Fireworks,
3031
VertexAI,
3132
Nvidia
3233
)
3334
from ..models.ernie import Ernie
35+
from langchain.chat_models import init_chat_model
36+
3437
from ..utils.logging import set_verbosity_debug, set_verbosity_warning, set_verbosity_info
3538

3639
from ..helpers import models_tokens
37-
from ..models import AzureOpenAI, Bedrock, Gemini, Groq, HuggingFace, Ollama, OpenAI, Anthropic, DeepSeek
40+
from ..models import AzureOpenAI, OpenAI, Bedrock, Gemini, Groq, HuggingFace, Anthropic, DeepSeek
3841

3942

4043
class AbstractGraph(ABC):
@@ -213,8 +216,10 @@ def _create_llm(self, llm_config: dict, chat=False) -> object:
213216
except KeyError as exc:
214217
raise KeyError("Model not supported") from exc
215218
return VertexAI(llm_params)
219+
216220
elif "ollama" in llm_params["model"]:
217221
llm_params["model"] = llm_params["model"].split("ollama/")[-1]
222+
llm_params["model_provider"] = "ollama"
218223

219224
# allow user to set model_tokens in config
220225
try:
@@ -231,7 +236,8 @@ def _create_llm(self, llm_config: dict, chat=False) -> object:
231236
except AttributeError:
232237
self.model_token = 8192
233238

234-
return Ollama(llm_params)
239+
return init_chat_model(**llm_params)
240+
235241
elif "hugging_face" in llm_params["model"]:
236242
llm_params["model"] = llm_params["model"].split("/")[-1]
237243
try:
@@ -320,7 +326,7 @@ def _create_default_embedder(self, llm_config=None) -> object:
320326
return FireworksEmbeddings(model=self.llm_model.model_name)
321327
elif isinstance(self.llm_model, Nvidia):
322328
return NVIDIAEmbeddings(model=self.llm_model.model_name)
323-
elif isinstance(self.llm_model, Ollama):
329+
elif isinstance(self.llm_model, ChatOllama):
324330
# unwrap the kwargs from the model whihc is a dict
325331
params = self.llm_model._lc_kwargs
326332
# remove streaming and temperature

scrapegraphai/models/ollama.py

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)