forked from AI_team/Philosophy-RAG-demo
Remove dependency on huggingface and use Ollama
This commit is contained in:
parent
abc4ac947c
commit
0d7d5cf39f
@ -6,10 +6,10 @@ from langchain_aws import BedrockEmbeddings
|
|||||||
from langchain_core.embeddings import Embeddings
|
from langchain_core.embeddings import Embeddings
|
||||||
from langchain_core.language_models.chat_models import BaseChatModel
|
from langchain_core.language_models.chat_models import BaseChatModel
|
||||||
from langchain_google_vertexai import VertexAIEmbeddings
|
from langchain_google_vertexai import VertexAIEmbeddings
|
||||||
from langchain_huggingface import HuggingFaceEmbeddings
|
|
||||||
from langchain_ollama import ChatOllama
|
from langchain_ollama import ChatOllama
|
||||||
from langchain_openai import AzureChatOpenAI, AzureOpenAIEmbeddings
|
from langchain_openai import AzureChatOpenAI, AzureOpenAIEmbeddings
|
||||||
from langchain_openai import OpenAIEmbeddings
|
from langchain_openai import OpenAIEmbeddings
|
||||||
|
from langchain_ollama import OllamaEmbeddings
|
||||||
|
|
||||||
|
|
||||||
class BackendType(Enum):
|
class BackendType(Enum):
|
||||||
@ -29,7 +29,8 @@ def get_chat_model(backend_type: BackendType) -> BaseChatModel:
|
|||||||
return AzureChatOpenAI(
|
return AzureChatOpenAI(
|
||||||
azure_endpoint=os.environ["AZURE_LLM_ENDPOINT"],
|
azure_endpoint=os.environ["AZURE_LLM_ENDPOINT"],
|
||||||
azure_deployment=os.environ["AZURE_LLM_DEPLOYMENT_NAME"],
|
azure_deployment=os.environ["AZURE_LLM_DEPLOYMENT_NAME"],
|
||||||
openai_api_version=os.environ["AZURE_LLM_API_VERSION"])
|
openai_api_version=os.environ["AZURE_LLM_API_VERSION"],
|
||||||
|
)
|
||||||
|
|
||||||
if backend_type == BackendType.openai:
|
if backend_type == BackendType.openai:
|
||||||
return init_chat_model(os.environ["OPENAI_CHAT_MODEL"], model_provider="openai")
|
return init_chat_model(os.environ["OPENAI_CHAT_MODEL"], model_provider="openai")
|
||||||
@ -51,7 +52,8 @@ def get_embedding_model(backend_type: BackendType) -> Embeddings:
|
|||||||
return AzureOpenAIEmbeddings(
|
return AzureOpenAIEmbeddings(
|
||||||
azure_endpoint=os.environ["AZURE_EMB_ENDPOINT"],
|
azure_endpoint=os.environ["AZURE_EMB_ENDPOINT"],
|
||||||
azure_deployment=os.environ["AZURE_EMB_DEPLOYMENT_NAME"],
|
azure_deployment=os.environ["AZURE_EMB_DEPLOYMENT_NAME"],
|
||||||
openai_api_version=os.environ["AZURE_EMB_API_VERSION"])
|
openai_api_version=os.environ["AZURE_EMB_API_VERSION"],
|
||||||
|
)
|
||||||
|
|
||||||
if backend_type == BackendType.openai:
|
if backend_type == BackendType.openai:
|
||||||
return OpenAIEmbeddings(model=os.environ["OPENAI_EMB_MODEL"])
|
return OpenAIEmbeddings(model=os.environ["OPENAI_EMB_MODEL"])
|
||||||
@ -63,6 +65,6 @@ def get_embedding_model(backend_type: BackendType) -> Embeddings:
|
|||||||
return BedrockEmbeddings(model_id=os.environ["AWS_EMB_MODEL"])
|
return BedrockEmbeddings(model_id=os.environ["AWS_EMB_MODEL"])
|
||||||
|
|
||||||
if backend_type == BackendType.local:
|
if backend_type == BackendType.local:
|
||||||
return HuggingFaceEmbeddings(model_name=os.environ["LOCAL_EMB_MODEL"])
|
return OllamaEmbeddings(model=os.environ["LOCAL_EMB_MODEL"])
|
||||||
|
|
||||||
raise ValueError(f"Unknown backend type: {backend_type}")
|
raise ValueError(f"Unknown backend type: {backend_type}")
|
||||||
|
|||||||
@ -13,7 +13,6 @@ dependencies = [
|
|||||||
"langchain-chroma>=0.2.2",
|
"langchain-chroma>=0.2.2",
|
||||||
"langchain-community>=0.3.19",
|
"langchain-community>=0.3.19",
|
||||||
"langchain-google-vertexai>=2.0.15",
|
"langchain-google-vertexai>=2.0.15",
|
||||||
"langchain-huggingface>=0.1.2",
|
|
||||||
"langchain-ollama>=0.2.3",
|
"langchain-ollama>=0.2.3",
|
||||||
"langchain-openai>=0.3.7",
|
"langchain-openai>=0.3.7",
|
||||||
"langchain-text-splitters>=0.3.6",
|
"langchain-text-splitters>=0.3.6",
|
||||||
|
|||||||
73
uv.lock
73
uv.lock
@ -1468,22 +1468,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/b8/28/1c719815be7a5314b3dcddb98c8780377e910add650ef39d10204c5a06fd/langchain_google_vertexai-2.0.15-py3-none-any.whl", hash = "sha256:994d6ab6430ce4d13541f4ca363c1f26b5ec53ad7fef29a0e72f98d3335eb64f", size = 95355 },
|
{ url = "https://files.pythonhosted.org/packages/b8/28/1c719815be7a5314b3dcddb98c8780377e910add650ef39d10204c5a06fd/langchain_google_vertexai-2.0.15-py3-none-any.whl", hash = "sha256:994d6ab6430ce4d13541f4ca363c1f26b5ec53ad7fef29a0e72f98d3335eb64f", size = 95355 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "langchain-huggingface"
|
|
||||||
version = "0.1.2"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "huggingface-hub" },
|
|
||||||
{ name = "langchain-core" },
|
|
||||||
{ name = "sentence-transformers" },
|
|
||||||
{ name = "tokenizers" },
|
|
||||||
{ name = "transformers" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/a1/0f/8277d993d5307f06523e72c9bc8a505ed028f7b1c1e5276d8e89044b6036/langchain_huggingface-0.1.2.tar.gz", hash = "sha256:4a66d5c449298fd353bd84c9ed01f9bf4303bf2e4ffce14aab8c55c584eee57c", size = 16129 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/9d/f8/77a303ddc492f6eed8bf0979f2bc6db4fa6eb1089c5e9f0f977dd87bc9c2/langchain_huggingface-0.1.2-py3-none-any.whl", hash = "sha256:7de5cfcae32bfb6a99c084fc16176f02583a4f8d94febb6bb45bed5b34699174", size = 21251 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "langchain-ollama"
|
name = "langchain-ollama"
|
||||||
version = "0.2.3"
|
version = "0.2.3"
|
||||||
@ -3202,34 +3186,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/69/e2/b011c38e5394c4c18fb5500778a55ec43ad6106126e74723ffaee246f56e/safetensors-0.5.3-cp38-abi3-win_amd64.whl", hash = "sha256:836cbbc320b47e80acd40e44c8682db0e8ad7123209f69b093def21ec7cafd11", size = 308878 },
|
{ url = "https://files.pythonhosted.org/packages/69/e2/b011c38e5394c4c18fb5500778a55ec43ad6106126e74723ffaee246f56e/safetensors-0.5.3-cp38-abi3-win_amd64.whl", hash = "sha256:836cbbc320b47e80acd40e44c8682db0e8ad7123209f69b093def21ec7cafd11", size = 308878 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "scikit-learn"
|
|
||||||
version = "1.6.1"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "joblib" },
|
|
||||||
{ name = "numpy" },
|
|
||||||
{ name = "scipy" },
|
|
||||||
{ name = "threadpoolctl" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/9e/a5/4ae3b3a0755f7b35a280ac90b28817d1f380318973cff14075ab41ef50d9/scikit_learn-1.6.1.tar.gz", hash = "sha256:b4fc2525eca2c69a59260f583c56a7557c6ccdf8deafdba6e060f94c1c59738e", size = 7068312 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/0a/18/c797c9b8c10380d05616db3bfb48e2a3358c767affd0857d56c2eb501caa/scikit_learn-1.6.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:926f207c804104677af4857b2c609940b743d04c4c35ce0ddc8ff4f053cddc1b", size = 12104516 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c4/b7/2e35f8e289ab70108f8cbb2e7a2208f0575dc704749721286519dcf35f6f/scikit_learn-1.6.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2c2cae262064e6a9b77eee1c8e768fc46aa0b8338c6a8297b9b6759720ec0ff2", size = 11167837 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a4/f6/ff7beaeb644bcad72bcfd5a03ff36d32ee4e53a8b29a639f11bcb65d06cd/scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1061b7c028a8663fb9a1a1baf9317b64a257fcb036dae5c8752b2abef31d136f", size = 12253728 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/29/7a/8bce8968883e9465de20be15542f4c7e221952441727c4dad24d534c6d99/scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e69fab4ebfc9c9b580a7a80111b43d214ab06250f8a7ef590a4edf72464dd86", size = 13147700 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/62/27/585859e72e117fe861c2079bcba35591a84f801e21bc1ab85bce6ce60305/scikit_learn-1.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:70b1d7e85b1c96383f872a519b3375f92f14731e279a7b4c6cfd650cf5dffc52", size = 11110613 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/2e/59/8eb1872ca87009bdcdb7f3cdc679ad557b992c12f4b61f9250659e592c63/scikit_learn-1.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ffa1e9e25b3d93990e74a4be2c2fc61ee5af85811562f1288d5d055880c4322", size = 12010001 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/9d/05/f2fc4effc5b32e525408524c982c468c29d22f828834f0625c5ef3d601be/scikit_learn-1.6.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:dc5cf3d68c5a20ad6d571584c0750ec641cc46aeef1c1507be51300e6003a7e1", size = 11096360 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c8/e4/4195d52cf4f113573fb8ebc44ed5a81bd511a92c0228889125fac2f4c3d1/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c06beb2e839ecc641366000ca84f3cf6fa9faa1777e29cf0c04be6e4d096a348", size = 12209004 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/94/be/47e16cdd1e7fcf97d95b3cb08bde1abb13e627861af427a3651fcb80b517/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8ca8cb270fee8f1f76fa9bfd5c3507d60c6438bbee5687f81042e2bb98e5a97", size = 13171776 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/34/b0/ca92b90859070a1487827dbc672f998da95ce83edce1270fc23f96f1f61a/scikit_learn-1.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:7a1c43c8ec9fde528d664d947dc4c0789be4077a3647f232869f41d9bf50e0fb", size = 11071865 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/12/ae/993b0fb24a356e71e9a894e42b8a9eec528d4c70217353a1cd7a48bc25d4/scikit_learn-1.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a17c1dea1d56dcda2fac315712f3651a1fea86565b64b48fa1bc090249cbf236", size = 11955804 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/d6/54/32fa2ee591af44507eac86406fa6bba968d1eb22831494470d0a2e4a1eb1/scikit_learn-1.6.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a7aa5f9908f0f28f4edaa6963c0a6183f1911e63a69aa03782f0d924c830a35", size = 11100530 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/3f/58/55856da1adec655bdce77b502e94a267bf40a8c0b89f8622837f89503b5a/scikit_learn-1.6.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0650e730afb87402baa88afbf31c07b84c98272622aaba002559b614600ca691", size = 12433852 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ff/4f/c83853af13901a574f8f13b645467285a48940f185b690936bb700a50863/scikit_learn-1.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:3f59fe08dc03ea158605170eb52b22a105f238a5d512c4470ddeca71feae8e5f", size = 11337256 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "scipy"
|
name = "scipy"
|
||||||
version = "1.15.2"
|
version = "1.15.2"
|
||||||
@ -3268,24 +3224,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/0a/c8/b3f566db71461cabd4b2d5b39bcc24a7e1c119535c8361f81426be39bb47/scipy-1.15.2-cp313-cp313t-win_amd64.whl", hash = "sha256:fe8a9eb875d430d81755472c5ba75e84acc980e4a8f6204d402849234d3017db", size = 40477705 },
|
{ url = "https://files.pythonhosted.org/packages/0a/c8/b3f566db71461cabd4b2d5b39bcc24a7e1c119535c8361f81426be39bb47/scipy-1.15.2-cp313-cp313t-win_amd64.whl", hash = "sha256:fe8a9eb875d430d81755472c5ba75e84acc980e4a8f6204d402849234d3017db", size = 40477705 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "sentence-transformers"
|
|
||||||
version = "3.4.1"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "huggingface-hub" },
|
|
||||||
{ name = "pillow" },
|
|
||||||
{ name = "scikit-learn" },
|
|
||||||
{ name = "scipy" },
|
|
||||||
{ name = "torch" },
|
|
||||||
{ name = "tqdm" },
|
|
||||||
{ name = "transformers" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/16/74/aca6f8a2b8d62b4daf8c9a0c49d2aa573381caf47dc35cbb343389229376/sentence_transformers-3.4.1.tar.gz", hash = "sha256:68daa57504ff548340e54ff117bd86c1d2f784b21e0fb2689cf3272b8937b24b", size = 223898 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/05/89/7eb147a37b7f31d3c815543df539d8b8d0425e93296c875cc87719d65232/sentence_transformers-3.4.1-py3-none-any.whl", hash = "sha256:e026dc6d56801fd83f74ad29a30263f401b4b522165c19386d8bc10dcca805da", size = 275896 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "setuptools"
|
name = "setuptools"
|
||||||
version = "75.8.2"
|
version = "75.8.2"
|
||||||
@ -3370,7 +3308,6 @@ dependencies = [
|
|||||||
{ name = "langchain-chroma" },
|
{ name = "langchain-chroma" },
|
||||||
{ name = "langchain-community" },
|
{ name = "langchain-community" },
|
||||||
{ name = "langchain-google-vertexai" },
|
{ name = "langchain-google-vertexai" },
|
||||||
{ name = "langchain-huggingface" },
|
|
||||||
{ name = "langchain-ollama" },
|
{ name = "langchain-ollama" },
|
||||||
{ name = "langchain-openai" },
|
{ name = "langchain-openai" },
|
||||||
{ name = "langchain-text-splitters" },
|
{ name = "langchain-text-splitters" },
|
||||||
@ -3392,7 +3329,6 @@ requires-dist = [
|
|||||||
{ name = "langchain-chroma", specifier = ">=0.2.2" },
|
{ name = "langchain-chroma", specifier = ">=0.2.2" },
|
||||||
{ name = "langchain-community", specifier = ">=0.3.19" },
|
{ name = "langchain-community", specifier = ">=0.3.19" },
|
||||||
{ name = "langchain-google-vertexai", specifier = ">=2.0.15" },
|
{ name = "langchain-google-vertexai", specifier = ">=2.0.15" },
|
||||||
{ name = "langchain-huggingface", specifier = ">=0.1.2" },
|
|
||||||
{ name = "langchain-ollama", specifier = ">=0.2.3" },
|
{ name = "langchain-ollama", specifier = ">=0.2.3" },
|
||||||
{ name = "langchain-openai", specifier = ">=0.3.7" },
|
{ name = "langchain-openai", specifier = ">=0.3.7" },
|
||||||
{ name = "langchain-text-splitters", specifier = ">=0.3.6" },
|
{ name = "langchain-text-splitters", specifier = ">=0.3.6" },
|
||||||
@ -3481,15 +3417,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/b6/cb/b86984bed139586d01532a587464b5805f12e397594f19f931c4c2fbfa61/tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539", size = 28169 },
|
{ url = "https://files.pythonhosted.org/packages/b6/cb/b86984bed139586d01532a587464b5805f12e397594f19f931c4c2fbfa61/tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539", size = 28169 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "threadpoolctl"
|
|
||||||
version = "3.5.0"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/bd/55/b5148dcbf72f5cde221f8bfe3b6a540da7aa1842f6b491ad979a6c8b84af/threadpoolctl-3.5.0.tar.gz", hash = "sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107", size = 41936 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/4b/2c/ffbf7a134b9ab11a67b0cf0726453cedd9c5043a4fe7a35d1cefa9a1bcfb/threadpoolctl-3.5.0-py3-none-any.whl", hash = "sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467", size = 18414 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tiktoken"
|
name = "tiktoken"
|
||||||
version = "0.9.0"
|
version = "0.9.0"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user