-
Notifications
You must be signed in to change notification settings - Fork 13.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrate mlflow and databricks classes to deployments APIs. #13699
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@harupy Can we file a PR to update https://python.langchain.com/docs/integrations/providers/mlflow_ai_gateway as well? We need to mark this deprecated, introducing https://python.langchain.com/docs/integrations/providers/mlflow, and then add content to https://python.langchain.com/docs/integrations/providers/databricks
Yes, I will. |
@baskaryan Would you mind reviewing this PR? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes look good. Left some comments. The biggest concern is to test out if the added chat_models and llms support LangChain's serialization. mlflow.langchain
relies on LangChain's serialization to save/load the chain.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@harupy LGTM once we:
- Support
databricks
anddatabricks://scope:profile
as target URIs in the MLflow integrations - Support
params
inlangchain.llms.Databricks
raise ValueError( | ||
"Invalid target URI. The target URI must be a valid HTTP/HTTPS URI." | ||
f"Invalid target URI: {self.target_uri}. " | ||
"The scheme must be one of {allowed}." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
f-string
@baskaryan Could you take another look? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thanks @harupy !
|
||
# Ignoring type because below is valid pydantic code | ||
# Unexpected keyword argument "extra" for "__init_subclass__" of "object" [call-arg] | ||
class ChatParams(BaseModel, extra=Extra.allow): # type: ignore[call-arg] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
out of curiosity, why not put known params directly on ChatMlflow? seems like a slightly nicer ux
Signed-off-by: harupy <17039389+harupy@users.noreply.github.com>
…s APIs. (langchain-ai#13699) ## Description Related to mlflow/mlflow#10420. MLflow AI gateway will be deprecated and replaced by the `mlflow.deployments` module. Happy to split this PR if it's too large. ``` pip install git+https://github.com/langchain-ai/langchain.git@refs/pull/13699/merge#subdirectory=libs/langchain ``` ## Dependencies Install mlflow from mlflow/mlflow#10420: ``` pip install git+https://github.com/mlflow/mlflow.git@refs/pull/10420/merge ``` ## Testing plan The following code works fine on local and databricks: <details><summary>Click</summary> <p> ```python """ Setup ----- mlflow deployments start-server --config-path examples/gateway/openai/config.yaml databricks secrets create-scope <scope> databricks secrets put-secret <scope> openai-api-key --string-value $OPENAI_API_KEY Run --- python /path/to/this/file.py secrets/<scope>/openai-api-key """ from langchain.chat_models import ChatMlflow, ChatDatabricks from langchain.embeddings import MlflowEmbeddings, DatabricksEmbeddings from langchain.llms import Databricks, Mlflow from langchain.schema.messages import HumanMessage from langchain.chains.loading import load_chain from mlflow.deployments import get_deploy_client import uuid import sys import tempfile from langchain.chains import LLMChain from langchain.prompts import PromptTemplate ############################### # MLflow ############################### chat = ChatMlflow( target_uri="http://127.0.0.1:5000", endpoint="chat", params={"temperature": 0.1} ) print(chat([HumanMessage(content="hello")])) embeddings = MlflowEmbeddings(target_uri="http://127.0.0.1:5000", endpoint="embeddings") print(embeddings.embed_query("hello")[:3]) print(embeddings.embed_documents(["hello", "world"])[0][:3]) llm = Mlflow( target_uri="http://127.0.0.1:5000", endpoint="completions", params={"temperature": 0.1}, ) print(llm("I am")) llm_chain = LLMChain( llm=llm, prompt=PromptTemplate( input_variables=["adjective"], template="Tell me a {adjective} joke", ), ) print(llm_chain.run(adjective="funny")) # serialization/deserialization with tempfile.TemporaryDirectory() as tmpdir: print(tmpdir) path = f"{tmpdir}/llm.yaml" llm_chain.save(path) loaded_chain = load_chain(path) print(loaded_chain("funny")) ############################### # Databricks ############################### secret = sys.argv[1] client = get_deploy_client("databricks") # External - chat name = f"chat-{uuid.uuid4()}" client.create_endpoint( name=name, config={ "served_entities": [ { "name": "test", "external_model": { "name": "gpt-4", "provider": "openai", "task": "llm/v1/chat", "openai_config": { "openai_api_key": "{{" + secret + "}}", }, }, } ], }, ) try: chat = ChatDatabricks( target_uri="databricks", endpoint=name, params={"temperature": 0.1} ) print(chat([HumanMessage(content="hello")])) finally: client.delete_endpoint(endpoint=name) # External - embeddings name = f"embeddings-{uuid.uuid4()}" client.create_endpoint( name=name, config={ "served_entities": [ { "name": "test", "external_model": { "name": "text-embedding-ada-002", "provider": "openai", "task": "llm/v1/embeddings", "openai_config": { "openai_api_key": "{{" + secret + "}}", }, }, } ], }, ) try: embeddings = DatabricksEmbeddings(target_uri="databricks", endpoint=name) print(embeddings.embed_query("hello")[:3]) print(embeddings.embed_documents(["hello", "world"])[0][:3]) finally: client.delete_endpoint(endpoint=name) # External - completions name = f"completions-{uuid.uuid4()}" client.create_endpoint( name=name, config={ "served_entities": [ { "name": "test", "external_model": { "name": "gpt-3.5-turbo-instruct", "provider": "openai", "task": "llm/v1/completions", "openai_config": { "openai_api_key": "{{" + secret + "}}", }, }, } ], }, ) try: llm = Databricks( endpoint_name=name, model_kwargs={"temperature": 0.1}, ) print(llm("I am")) finally: client.delete_endpoint(endpoint=name) # Foundation model - chat chat = ChatDatabricks( endpoint="databricks-llama-2-70b-chat", params={"temperature": 0.1} ) print(chat([HumanMessage(content="hello")])) # Foundation model - embeddings embeddings = DatabricksEmbeddings(endpoint="databricks-bge-large-en") print(embeddings.embed_query("hello")[:3]) # Foundation model - completions llm = Databricks( endpoint_name="databricks-mpt-7b-instruct", model_kwargs={"temperature": 0.1} ) print(llm("hello")) llm_chain = LLMChain( llm=llm, prompt=PromptTemplate( input_variables=["adjective"], template="Tell me a {adjective} joke", ), ) print(llm_chain.run(adjective="funny")) # serialization/deserialization with tempfile.TemporaryDirectory() as tmpdir: print(tmpdir) path = f"{tmpdir}/llm.yaml" llm_chain.save(path) loaded_chain = load_chain(path) print(loaded_chain("funny")) ``` Output: ``` content='Hello! How can I assist you today?' [-0.025058426, -0.01938856, -0.027781019] [-0.025058426, -0.01938856, -0.027781019] sorry, but I cannot continue the sentence as it is incomplete. Can you please provide more information or context? Sure, here's a classic one for you: Why don't scientists trust atoms? Because they make up everything! /var/folders/dz/cd_nvlf14g9g__n3ph0d_0pm0000gp/T/tmpx_4no6ad {'adjective': 'funny', 'text': "Sure, here's a classic one for you:\n\nWhy don't scientists trust atoms?\n\nBecause they make up everything!"} content='Hello! How can I assist you today?' [-0.025058426, -0.01938856, -0.027781019] [-0.025058426, -0.01938856, -0.027781019] a 23 year old female and I am currently studying for my master's degree content="\nHello! It's nice to meet you. Is there something I can help you with or would you like to chat for a bit?" [0.051055908203125, 0.007221221923828125, 0.003879547119140625] [0.051055908203125, 0.007221221923828125, 0.003879547119140625] hello back Well, I don't really know many jokes, but I do know this funny story... /var/folders/dz/cd_nvlf14g9g__n3ph0d_0pm0000gp/T/tmp7_ds72ex {'adjective': 'funny', 'text': " Well, I don't really know many jokes, but I do know this funny story..."} ``` </p> </details> The existing workflow doesn't break: <details><summary>click</summary> <p> ```python import uuid import mlflow from mlflow.models import ModelSignature from mlflow.types.schema import ColSpec, Schema class MyModel(mlflow.pyfunc.PythonModel): def predict(self, context, model_input): return str(uuid.uuid4()) with mlflow.start_run(): mlflow.pyfunc.log_model( "model", python_model=MyModel(), pip_requirements=["mlflow==2.8.1", "cloudpickle<3"], signature=ModelSignature( inputs=Schema( [ ColSpec("string", "prompt"), ColSpec("string", "stop"), ] ), outputs=Schema( [ ColSpec(name=None, type="string"), ] ), ), registered_model_name=f"lang-{uuid.uuid4()}", ) # Manually create a serving endpoint with the registered model and run from langchain.llms import Databricks llm = Databricks(endpoint_name="<name>") llm("hello") # 9d0b2491-3d13-487c-bc02-1287f06ecae7 ``` </p> </details> ## Follow-up tasks (This PR is too large. I'll file a separate one for follow-up tasks.) - Update `docs/docs/integrations/providers/mlflow_ai_gateway.mdx` and `docs/docs/integrations/providers/databricks.md`. --------- Signed-off-by: harupy <17039389+harupy@users.noreply.github.com> Co-authored-by: Bagatur <baskaryan@gmail.com>
…s APIs. (langchain-ai#13699) ## Description Related to mlflow/mlflow#10420. MLflow AI gateway will be deprecated and replaced by the `mlflow.deployments` module. Happy to split this PR if it's too large. ``` pip install git+https://github.com/langchain-ai/langchain.git@refs/pull/13699/merge#subdirectory=libs/langchain ``` ## Dependencies Install mlflow from mlflow/mlflow#10420: ``` pip install git+https://github.com/mlflow/mlflow.git@refs/pull/10420/merge ``` ## Testing plan The following code works fine on local and databricks: <details><summary>Click</summary> <p> ```python """ Setup ----- mlflow deployments start-server --config-path examples/gateway/openai/config.yaml databricks secrets create-scope <scope> databricks secrets put-secret <scope> openai-api-key --string-value $OPENAI_API_KEY Run --- python /path/to/this/file.py secrets/<scope>/openai-api-key """ from langchain.chat_models import ChatMlflow, ChatDatabricks from langchain.embeddings import MlflowEmbeddings, DatabricksEmbeddings from langchain.llms import Databricks, Mlflow from langchain.schema.messages import HumanMessage from langchain.chains.loading import load_chain from mlflow.deployments import get_deploy_client import uuid import sys import tempfile from langchain.chains import LLMChain from langchain.prompts import PromptTemplate ############################### # MLflow ############################### chat = ChatMlflow( target_uri="http://127.0.0.1:5000", endpoint="chat", params={"temperature": 0.1} ) print(chat([HumanMessage(content="hello")])) embeddings = MlflowEmbeddings(target_uri="http://127.0.0.1:5000", endpoint="embeddings") print(embeddings.embed_query("hello")[:3]) print(embeddings.embed_documents(["hello", "world"])[0][:3]) llm = Mlflow( target_uri="http://127.0.0.1:5000", endpoint="completions", params={"temperature": 0.1}, ) print(llm("I am")) llm_chain = LLMChain( llm=llm, prompt=PromptTemplate( input_variables=["adjective"], template="Tell me a {adjective} joke", ), ) print(llm_chain.run(adjective="funny")) # serialization/deserialization with tempfile.TemporaryDirectory() as tmpdir: print(tmpdir) path = f"{tmpdir}/llm.yaml" llm_chain.save(path) loaded_chain = load_chain(path) print(loaded_chain("funny")) ############################### # Databricks ############################### secret = sys.argv[1] client = get_deploy_client("databricks") # External - chat name = f"chat-{uuid.uuid4()}" client.create_endpoint( name=name, config={ "served_entities": [ { "name": "test", "external_model": { "name": "gpt-4", "provider": "openai", "task": "llm/v1/chat", "openai_config": { "openai_api_key": "{{" + secret + "}}", }, }, } ], }, ) try: chat = ChatDatabricks( target_uri="databricks", endpoint=name, params={"temperature": 0.1} ) print(chat([HumanMessage(content="hello")])) finally: client.delete_endpoint(endpoint=name) # External - embeddings name = f"embeddings-{uuid.uuid4()}" client.create_endpoint( name=name, config={ "served_entities": [ { "name": "test", "external_model": { "name": "text-embedding-ada-002", "provider": "openai", "task": "llm/v1/embeddings", "openai_config": { "openai_api_key": "{{" + secret + "}}", }, }, } ], }, ) try: embeddings = DatabricksEmbeddings(target_uri="databricks", endpoint=name) print(embeddings.embed_query("hello")[:3]) print(embeddings.embed_documents(["hello", "world"])[0][:3]) finally: client.delete_endpoint(endpoint=name) # External - completions name = f"completions-{uuid.uuid4()}" client.create_endpoint( name=name, config={ "served_entities": [ { "name": "test", "external_model": { "name": "gpt-3.5-turbo-instruct", "provider": "openai", "task": "llm/v1/completions", "openai_config": { "openai_api_key": "{{" + secret + "}}", }, }, } ], }, ) try: llm = Databricks( endpoint_name=name, model_kwargs={"temperature": 0.1}, ) print(llm("I am")) finally: client.delete_endpoint(endpoint=name) # Foundation model - chat chat = ChatDatabricks( endpoint="databricks-llama-2-70b-chat", params={"temperature": 0.1} ) print(chat([HumanMessage(content="hello")])) # Foundation model - embeddings embeddings = DatabricksEmbeddings(endpoint="databricks-bge-large-en") print(embeddings.embed_query("hello")[:3]) # Foundation model - completions llm = Databricks( endpoint_name="databricks-mpt-7b-instruct", model_kwargs={"temperature": 0.1} ) print(llm("hello")) llm_chain = LLMChain( llm=llm, prompt=PromptTemplate( input_variables=["adjective"], template="Tell me a {adjective} joke", ), ) print(llm_chain.run(adjective="funny")) # serialization/deserialization with tempfile.TemporaryDirectory() as tmpdir: print(tmpdir) path = f"{tmpdir}/llm.yaml" llm_chain.save(path) loaded_chain = load_chain(path) print(loaded_chain("funny")) ``` Output: ``` content='Hello! How can I assist you today?' [-0.025058426, -0.01938856, -0.027781019] [-0.025058426, -0.01938856, -0.027781019] sorry, but I cannot continue the sentence as it is incomplete. Can you please provide more information or context? Sure, here's a classic one for you: Why don't scientists trust atoms? Because they make up everything! /var/folders/dz/cd_nvlf14g9g__n3ph0d_0pm0000gp/T/tmpx_4no6ad {'adjective': 'funny', 'text': "Sure, here's a classic one for you:\n\nWhy don't scientists trust atoms?\n\nBecause they make up everything!"} content='Hello! How can I assist you today?' [-0.025058426, -0.01938856, -0.027781019] [-0.025058426, -0.01938856, -0.027781019] a 23 year old female and I am currently studying for my master's degree content="\nHello! It's nice to meet you. Is there something I can help you with or would you like to chat for a bit?" [0.051055908203125, 0.007221221923828125, 0.003879547119140625] [0.051055908203125, 0.007221221923828125, 0.003879547119140625] hello back Well, I don't really know many jokes, but I do know this funny story... /var/folders/dz/cd_nvlf14g9g__n3ph0d_0pm0000gp/T/tmp7_ds72ex {'adjective': 'funny', 'text': " Well, I don't really know many jokes, but I do know this funny story..."} ``` </p> </details> The existing workflow doesn't break: <details><summary>click</summary> <p> ```python import uuid import mlflow from mlflow.models import ModelSignature from mlflow.types.schema import ColSpec, Schema class MyModel(mlflow.pyfunc.PythonModel): def predict(self, context, model_input): return str(uuid.uuid4()) with mlflow.start_run(): mlflow.pyfunc.log_model( "model", python_model=MyModel(), pip_requirements=["mlflow==2.8.1", "cloudpickle<3"], signature=ModelSignature( inputs=Schema( [ ColSpec("string", "prompt"), ColSpec("string", "stop"), ] ), outputs=Schema( [ ColSpec(name=None, type="string"), ] ), ), registered_model_name=f"lang-{uuid.uuid4()}", ) # Manually create a serving endpoint with the registered model and run from langchain.llms import Databricks llm = Databricks(endpoint_name="<name>") llm("hello") # 9d0b2491-3d13-487c-bc02-1287f06ecae7 ``` </p> </details> ## Follow-up tasks (This PR is too large. I'll file a separate one for follow-up tasks.) - Update `docs/docs/integrations/providers/mlflow_ai_gateway.mdx` and `docs/docs/integrations/providers/databricks.md`. --------- Signed-off-by: harupy <17039389+harupy@users.noreply.github.com> Co-authored-by: Bagatur <baskaryan@gmail.com>
Depends on #13699. Updates the existing mlflow and databricks examples. --------- Co-authored-by: Ben Wilson <39283302+BenWilson2@users.noreply.github.com>
Depends on langchain-ai#13699. Updates the existing mlflow and databricks examples. --------- Co-authored-by: Ben Wilson <39283302+BenWilson2@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [langchain](https://togithub.com/langchain-ai/langchain) | `==0.0.337` -> `==0.0.345` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/langchain/0.0.345?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/langchain/0.0.345?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/langchain/0.0.337/0.0.345?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/langchain/0.0.337/0.0.345?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>langchain-ai/langchain (langchain)</summary> ### [`v0.0.345`](https://togithub.com/langchain-ai/langchain/releases/tag/v0.0.345) [Compare Source](https://togithub.com/langchain-ai/langchain/compare/v0.0.344...v0.0.345) #### What's Changed - Adds OllamaFunctions wrapper by [@​jacoblee93](https://togithub.com/jacoblee93) in [https://github.com/langchain-ai/langchain/pull/13330](https://togithub.com/langchain-ai/langchain/pull/13330) - Update metaphor_search.ipynb by [@​HubertY](https://togithub.com/HubertY) in [https://github.com/langchain-ai/langchain/pull/14093](https://togithub.com/langchain-ai/langchain/pull/14093) - local docs build <5s by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/14096](https://togithub.com/langchain-ai/langchain/pull/14096) - Improve indexing performance for Postgres (remote database) for refresh by [@​mescanne](https://togithub.com/mescanne) in [https://github.com/langchain-ai/langchain/pull/14126](https://togithub.com/langchain-ai/langchain/pull/14126) - Update invalid link by [@​YQisme](https://togithub.com/YQisme) in [https://github.com/langchain-ai/langchain/pull/14106](https://togithub.com/langchain-ai/langchain/pull/14106) - templates\[patch]: opensearch readme update by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/14103](https://togithub.com/langchain-ai/langchain/pull/14103) - docs\[patch]: Update facebook.ipynb by [@​169](https://togithub.com/169) in [https://github.com/langchain-ai/langchain/pull/14102](https://togithub.com/langchain-ai/langchain/pull/14102) - Template for Ollama + Multi-query retriever by [@​rlancemartin](https://togithub.com/rlancemartin) in [https://github.com/langchain-ai/langchain/pull/14092](https://togithub.com/langchain-ai/langchain/pull/14092) - docs\[patch]: Update discord.ipynb by [@​169](https://togithub.com/169) in [https://github.com/langchain-ai/langchain/pull/14099](https://togithub.com/langchain-ai/langchain/pull/14099) - \[Nits] Evaluation - Some Rendering Improvements by [@​hinthornw](https://togithub.com/hinthornw) in [https://github.com/langchain-ai/langchain/pull/14097](https://togithub.com/langchain-ai/langchain/pull/14097) - Update Prompt Format Error by [@​hinthornw](https://togithub.com/hinthornw) in [https://github.com/langchain-ai/langchain/pull/14044](https://togithub.com/langchain-ai/langchain/pull/14044) - Improve indexing performance for Postgres (remote database) for refresh for async API by [@​eyurtsev](https://togithub.com/eyurtsev) in [https://github.com/langchain-ai/langchain/pull/14132](https://togithub.com/langchain-ai/langchain/pull/14132) - Harrison/ibm by [@​hwchase17](https://togithub.com/hwchase17) in [https://github.com/langchain-ai/langchain/pull/14133](https://togithub.com/langchain-ai/langchain/pull/14133) - fix: set maxsplit when parse python function docstring by [@​lijie-lee](https://togithub.com/lijie-lee) in [https://github.com/langchain-ai/langchain/pull/14121](https://togithub.com/langchain-ai/langchain/pull/14121) - fix: use async_embed_with_retry in \_aget_len_safe_embeddings by [@​salqueng](https://togithub.com/salqueng) in [https://github.com/langchain-ai/langchain/pull/14110](https://togithub.com/langchain-ai/langchain/pull/14110) - docs\[patch]: Add mermaid JS theme dependency to docusaurus by [@​akira](https://togithub.com/akira) in [https://github.com/langchain-ai/langchain/pull/14051](https://togithub.com/langchain-ai/langchain/pull/14051) - docs(ernie): add deprecated note for ErnieChatBot by [@​axiangcoding](https://togithub.com/axiangcoding) in [https://github.com/langchain-ai/langchain/pull/14061](https://togithub.com/langchain-ai/langchain/pull/14061) - add contribs by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/14137](https://togithub.com/langchain-ai/langchain/pull/14137) - Update text_splitter.py by [@​govinda18](https://togithub.com/govinda18) in [https://github.com/langchain-ai/langchain/pull/14025](https://togithub.com/langchain-ai/langchain/pull/14025) - docs\[patch]: Add getting started section to LCEL doc by [@​akira](https://togithub.com/akira) in [https://github.com/langchain-ai/langchain/pull/14045](https://togithub.com/langchain-ai/langchain/pull/14045) - Add unit tests for Huggingface dataset loader by [@​Amyh102](https://togithub.com/Amyh102) in [https://github.com/langchain-ai/langchain/pull/14053](https://togithub.com/langchain-ai/langchain/pull/14053) - docs\[patch]: Fix templates/index by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/14146](https://togithub.com/langchain-ai/langchain/pull/14146) - Fix minor typos (casing) by [@​mjul](https://togithub.com/mjul) in [https://github.com/langchain-ai/langchain/pull/14138](https://togithub.com/langchain-ai/langchain/pull/14138) - relock templates by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/14149](https://togithub.com/langchain-ai/langchain/pull/14149) - Change RunnableMap to RunnableParallel for consistency by [@​akira](https://togithub.com/akira) in [https://github.com/langchain-ai/langchain/pull/14142](https://togithub.com/langchain-ai/langchain/pull/14142) - docs\[patch]: docs local build by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/14152](https://togithub.com/langchain-ai/langchain/pull/14152) - Update Open CLIP embd by [@​rlancemartin](https://togithub.com/rlancemartin) in [https://github.com/langchain-ai/langchain/pull/14155](https://togithub.com/langchain-ai/langchain/pull/14155) - Bagatur/lcel why doc by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/14089](https://togithub.com/langchain-ai/langchain/pull/14089) - fix broken api docs links by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/14154](https://togithub.com/langchain-ai/langchain/pull/14154) - Improve file system blob loader and generic loader by [@​eyurtsev](https://togithub.com/eyurtsev) in [https://github.com/langchain-ai/langchain/pull/14004](https://togithub.com/langchain-ai/langchain/pull/14004) - Title:fixed a bug that was causing the streaming transfer to not work… by [@​quantum00549](https://togithub.com/quantum00549) in [https://github.com/langchain-ai/langchain/pull/10827](https://togithub.com/langchain-ai/langchain/pull/10827) - Added missing `py.typed` to `langchain_core` by [@​jamesbraza](https://togithub.com/jamesbraza) in [https://github.com/langchain-ai/langchain/pull/14143](https://togithub.com/langchain-ai/langchain/pull/14143) - add azure ai data document loader by [@​samuel100](https://togithub.com/samuel100) in [https://github.com/langchain-ai/langchain/pull/13404](https://togithub.com/langchain-ai/langchain/pull/13404) - fix: Running SQLDatabaseChain adds prefix "SQLQuery:\n" by [@​ridha](https://togithub.com/ridha) in [https://github.com/langchain-ai/langchain/pull/14058](https://togithub.com/langchain-ai/langchain/pull/14058) - Support passing parameters to `llms.Databricks` and `llms.Mlflow` by [@​harupy](https://togithub.com/harupy) in [https://github.com/langchain-ai/langchain/pull/14100](https://togithub.com/langchain-ai/langchain/pull/14100) - `BaseTracer` helper method for `Run` lookup by [@​jamesbraza](https://togithub.com/jamesbraza) in [https://github.com/langchain-ai/langchain/pull/14139](https://togithub.com/langchain-ai/langchain/pull/14139) - core\[patch]: Release 0.0.9 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/14182](https://togithub.com/langchain-ai/langchain/pull/14182) - langchain\[patch]: Release langchain 0.0.345 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/14184](https://togithub.com/langchain-ai/langchain/pull/14184) #### New Contributors - [@​HubertY](https://togithub.com/HubertY) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14093](https://togithub.com/langchain-ai/langchain/pull/14093) - [@​mescanne](https://togithub.com/mescanne) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14126](https://togithub.com/langchain-ai/langchain/pull/14126) - [@​YQisme](https://togithub.com/YQisme) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14106](https://togithub.com/langchain-ai/langchain/pull/14106) - [@​lijie-lee](https://togithub.com/lijie-lee) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14121](https://togithub.com/langchain-ai/langchain/pull/14121) - [@​salqueng](https://togithub.com/salqueng) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14110](https://togithub.com/langchain-ai/langchain/pull/14110) - [@​akira](https://togithub.com/akira) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14051](https://togithub.com/langchain-ai/langchain/pull/14051) - [@​govinda18](https://togithub.com/govinda18) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14025](https://togithub.com/langchain-ai/langchain/pull/14025) - [@​mjul](https://togithub.com/mjul) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14138](https://togithub.com/langchain-ai/langchain/pull/14138) - [@​quantum00549](https://togithub.com/quantum00549) made their first contribution in [https://github.com/langchain-ai/langchain/pull/10827](https://togithub.com/langchain-ai/langchain/pull/10827) - [@​samuel100](https://togithub.com/samuel100) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13404](https://togithub.com/langchain-ai/langchain/pull/13404) - [@​ridha](https://togithub.com/ridha) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14058](https://togithub.com/langchain-ai/langchain/pull/14058) **Full Changelog**: https://github.com/langchain-ai/langchain/compare/v0.0.344...v0.0.345 ### [`v0.0.344`](https://togithub.com/langchain-ai/langchain/releases/tag/v0.0.344) [Compare Source](https://togithub.com/langchain-ai/langchain/compare/v0.0.343...v0.0.344) #### What's Changed - Reduce the number of tokens required to describe a Cypher/Neo4j schema by [@​tomasonjo](https://togithub.com/tomasonjo) in [https://github.com/langchain-ai/langchain/pull/13851](https://togithub.com/langchain-ai/langchain/pull/13851) - Remove deprecated param and flexibility for prompt by [@​toshish](https://togithub.com/toshish) in [https://github.com/langchain-ai/langchain/pull/13310](https://togithub.com/langchain-ai/langchain/pull/13310) - update pdf document loaders' metadata source to url for online pdf by [@​123-fake-st](https://togithub.com/123-fake-st) in [https://github.com/langchain-ai/langchain/pull/13274](https://togithub.com/langchain-ai/langchain/pull/13274) - fix [#​12899](https://togithub.com/langchain-ai/langchain/issues/12899) by [@​yoch](https://togithub.com/yoch) in [https://github.com/langchain-ai/langchain/pull/14029](https://togithub.com/langchain-ai/langchain/pull/14029) - Mask API key for ForeFrontAI LLM by [@​mmahmad](https://togithub.com/mmahmad) in [https://github.com/langchain-ai/langchain/pull/14013](https://togithub.com/langchain-ai/langchain/pull/14013) - add volcengine endpoint for LLM by [@​h3l](https://togithub.com/h3l) in [https://github.com/langchain-ai/langchain/pull/13942](https://togithub.com/langchain-ai/langchain/pull/13942) - Extend serpapi tools by [@​HamJaw1432](https://togithub.com/HamJaw1432) in [https://github.com/langchain-ai/langchain/pull/13934](https://togithub.com/langchain-ai/langchain/pull/13934) - Add multi-input Reddit search tool by [@​clwillhuang](https://togithub.com/clwillhuang) in [https://github.com/langchain-ai/langchain/pull/13893](https://togithub.com/langchain-ai/langchain/pull/13893) - DROP BOX Loader Documentation Update by [@​keenborder786](https://togithub.com/keenborder786) in [https://github.com/langchain-ai/langchain/pull/14047](https://togithub.com/langchain-ai/langchain/pull/14047) - Merriam-Webster Dictionary Tool by [@​Zollerboy1](https://togithub.com/Zollerboy1) in [https://github.com/langchain-ai/langchain/pull/12044](https://togithub.com/langchain-ai/langchain/pull/12044) - Implemented MongoDB Atlas Self-Query Retriever by [@​AthulVincent](https://togithub.com/AthulVincent) in [https://github.com/langchain-ai/langchain/pull/13321](https://togithub.com/langchain-ai/langchain/pull/13321) - Fix issue where response_if_no_docs_found is not implemented on async… by [@​sudranga](https://togithub.com/sudranga) in [https://github.com/langchain-ai/langchain/pull/13297](https://togithub.com/langchain-ai/langchain/pull/13297) - Update index.mdx by [@​NPuhlmann](https://togithub.com/NPuhlmann) in [https://github.com/langchain-ai/langchain/pull/13285](https://togithub.com/langchain-ai/langchain/pull/13285) - Support Vald secure connection by [@​mtanig](https://togithub.com/mtanig) in [https://github.com/langchain-ai/langchain/pull/13269](https://togithub.com/langchain-ai/langchain/pull/13269) - Added support for a Pandas DataFrame OutputParser by [@​RohanDey02](https://togithub.com/RohanDey02) in [https://github.com/langchain-ai/langchain/pull/13257](https://togithub.com/langchain-ai/langchain/pull/13257) - Fix .env file path in integration_test README.md by [@​FacerAin](https://togithub.com/FacerAin) in [https://github.com/langchain-ai/langchain/pull/14028](https://togithub.com/langchain-ai/langchain/pull/14028) - templates\[patch]: rag-google-cloud-sdp readme by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/14043](https://togithub.com/langchain-ai/langchain/pull/14043) - Add \*\*kwargs to Langchain's dumps() to allow passing of json.dumps() … by [@​jeremynac](https://togithub.com/jeremynac) in [https://github.com/langchain-ai/langchain/pull/10628](https://togithub.com/langchain-ai/langchain/pull/10628) - Rag redis template dependency update by [@​tylerhutcherson](https://togithub.com/tylerhutcherson) in [https://github.com/langchain-ai/langchain/pull/13614](https://togithub.com/langchain-ai/langchain/pull/13614) - Migrate mlflow and databricks classes to deployments APIs. by [@​harupy](https://togithub.com/harupy) in [https://github.com/langchain-ai/langchain/pull/13699](https://togithub.com/langchain-ai/langchain/pull/13699) - core\[patch]: release 0.0.8 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/14086](https://togithub.com/langchain-ai/langchain/pull/14086) - langchain\[patch]: release 0.0.344 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/14095](https://togithub.com/langchain-ai/langchain/pull/14095) #### New Contributors - [@​yoch](https://togithub.com/yoch) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14029](https://togithub.com/langchain-ai/langchain/pull/14029) - [@​mmahmad](https://togithub.com/mmahmad) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14013](https://togithub.com/langchain-ai/langchain/pull/14013) - [@​HamJaw1432](https://togithub.com/HamJaw1432) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13934](https://togithub.com/langchain-ai/langchain/pull/13934) - [@​clwillhuang](https://togithub.com/clwillhuang) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13893](https://togithub.com/langchain-ai/langchain/pull/13893) - [@​Zollerboy1](https://togithub.com/Zollerboy1) made their first contribution in [https://github.com/langchain-ai/langchain/pull/12044](https://togithub.com/langchain-ai/langchain/pull/12044) - [@​AthulVincent](https://togithub.com/AthulVincent) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13321](https://togithub.com/langchain-ai/langchain/pull/13321) - [@​NPuhlmann](https://togithub.com/NPuhlmann) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13285](https://togithub.com/langchain-ai/langchain/pull/13285) - [@​mtanig](https://togithub.com/mtanig) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13269](https://togithub.com/langchain-ai/langchain/pull/13269) - [@​RohanDey02](https://togithub.com/RohanDey02) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13257](https://togithub.com/langchain-ai/langchain/pull/13257) **Full Changelog**: https://github.com/langchain-ai/langchain/compare/v0.0.343...v0.0.344 ### [`v0.0.343`](https://togithub.com/langchain-ai/langchain/releases/tag/v0.0.343) [Compare Source](https://togithub.com/langchain-ai/langchain/compare/v0.0.342...v0.0.343) #### What's Changed - Add rag google sensitive data protection template by [@​juan-calvo-datatonic](https://togithub.com/juan-calvo-datatonic) in [https://github.com/langchain-ai/langchain/pull/13921](https://togithub.com/langchain-ai/langchain/pull/13921) - experimental\[patch]: release 0.0.43 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13570](https://togithub.com/langchain-ai/langchain/pull/13570) - Updated DocugamiLoader with better support for hierarchical chunks by [@​tjaffri](https://togithub.com/tjaffri) in [https://github.com/langchain-ai/langchain/pull/13265](https://togithub.com/langchain-ai/langchain/pull/13265) - Update CONTRIBUTING.md doc by [@​169](https://togithub.com/169) in [https://github.com/langchain-ai/langchain/pull/13965](https://togithub.com/langchain-ai/langchain/pull/13965) - docs: top menu by [@​leo-gan](https://togithub.com/leo-gan) in [https://github.com/langchain-ai/langchain/pull/13748](https://togithub.com/langchain-ai/langchain/pull/13748) - experimental\[patch]: fixed namespace bug by [@​leo-gan](https://togithub.com/leo-gan) in [https://github.com/langchain-ai/langchain/pull/13585](https://togithub.com/langchain-ai/langchain/pull/13585) - docs\[patch]: link to LangSmith docs by [@​leo-gan](https://togithub.com/leo-gan) in [https://github.com/langchain-ai/langchain/pull/13740](https://togithub.com/langchain-ai/langchain/pull/13740) - renamed `google_vertex_ai_vector_search` notebook by [@​leo-gan](https://togithub.com/leo-gan) in [https://github.com/langchain-ai/langchain/pull/13484](https://togithub.com/langchain-ai/langchain/pull/13484) - Remove `python_repl` from \_BASE_TOOLS by [@​169](https://togithub.com/169) in [https://github.com/langchain-ai/langchain/pull/13962](https://togithub.com/langchain-ai/langchain/pull/13962) - Repair Wikipedia document loader `load_max_docs` and improve test coverage. by [@​queenvictoria](https://togithub.com/queenvictoria) in [https://github.com/langchain-ai/langchain/pull/13769](https://togithub.com/langchain-ai/langchain/pull/13769) - Set default region from boto3 session for Bedrock by [@​Falydoor](https://togithub.com/Falydoor) in [https://github.com/langchain-ai/langchain/pull/13694](https://togithub.com/langchain-ai/langchain/pull/13694) - infra\[patch]: add base deps by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13998](https://togithub.com/langchain-ai/langchain/pull/13998) - Library Licenses by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/13300](https://togithub.com/langchain-ai/langchain/pull/13300) - docs\[patch]: RAG Cookbook example fix by [@​waseemhnyc](https://togithub.com/waseemhnyc) in [https://github.com/langchain-ai/langchain/pull/13914](https://togithub.com/langchain-ai/langchain/pull/13914) - Switched VertexAI models from preview by [@​lkuligin](https://togithub.com/lkuligin) in [https://github.com/langchain-ai/langchain/pull/13657](https://togithub.com/langchain-ai/langchain/pull/13657) - feat: mask api key for nlpcloud by [@​lujingxuansc](https://togithub.com/lujingxuansc) in [https://github.com/langchain-ai/langchain/pull/13945](https://togithub.com/langchain-ai/langchain/pull/13945) - secretStr for baichuan chat model api key by [@​nhywieza](https://togithub.com/nhywieza) in [https://github.com/langchain-ai/langchain/pull/13946](https://togithub.com/langchain-ai/langchain/pull/13946) - feat: mask api_key for jina by [@​chyroc](https://togithub.com/chyroc) in [https://github.com/langchain-ai/langchain/pull/13907](https://togithub.com/langchain-ai/langchain/pull/13907) - Update openai/create_llm_result function to consider kwargs by [@​darktheorys](https://togithub.com/darktheorys) in [https://github.com/langchain-ai/langchain/pull/13815](https://togithub.com/langchain-ai/langchain/pull/13815) - docs `OpenAI` platform page update by [@​leo-gan](https://togithub.com/leo-gan) in [https://github.com/langchain-ai/langchain/pull/14001](https://togithub.com/langchain-ai/langchain/pull/14001) - docs `microsoft` page updates by [@​leo-gan](https://togithub.com/leo-gan) in [https://github.com/langchain-ai/langchain/pull/14000](https://togithub.com/langchain-ai/langchain/pull/14000) - feat: Add ERNIE-Bot-8K model support for ErnieBotChat. by [@​wangwei1237](https://togithub.com/wangwei1237) in [https://github.com/langchain-ai/langchain/pull/13716](https://togithub.com/langchain-ai/langchain/pull/13716) - \[docs] fix reduce prompt in summarization example by [@​cmpadden](https://togithub.com/cmpadden) in [https://github.com/langchain-ai/langchain/pull/13726](https://togithub.com/langchain-ai/langchain/pull/13726) - Add Outline provider doc by [@​yuskhan](https://togithub.com/yuskhan) in [https://github.com/langchain-ai/langchain/pull/13938](https://togithub.com/langchain-ai/langchain/pull/13938) - max length attribute for spacy splitter for large docs by [@​kunal8164705](https://togithub.com/kunal8164705) in [https://github.com/langchain-ai/langchain/pull/13875](https://togithub.com/langchain-ai/langchain/pull/13875) - Fix: (issue [#​13825](https://togithub.com/langchain-ai/langchain/issues/13825)) Getting an error with DallEAPIWrapper by [@​ggeutzzang](https://togithub.com/ggeutzzang) in [https://github.com/langchain-ai/langchain/pull/13874](https://togithub.com/langchain-ai/langchain/pull/13874) - Add object parsing functionality by [@​Amyh102](https://togithub.com/Amyh102) in [https://github.com/langchain-ai/langchain/pull/13864](https://togithub.com/langchain-ai/langchain/pull/13864) - small fix matching engine AttributeError - object has no attribute by [@​saiwas](https://togithub.com/saiwas) in [https://github.com/langchain-ai/langchain/pull/13763](https://togithub.com/langchain-ai/langchain/pull/13763) - DOCS: added missing imports ([#​13736](https://togithub.com/langchain-ai/langchain/issues/13736)) by [@​Glueish](https://togithub.com/Glueish) in [https://github.com/langchain-ai/langchain/pull/13737](https://togithub.com/langchain-ai/langchain/pull/13737) - docs: Install langsmith from conda-forge by [@​pavelzw](https://togithub.com/pavelzw) in [https://github.com/langchain-ai/langchain/pull/13335](https://togithub.com/langchain-ai/langchain/pull/13335) - Mask api key for Together LLM by [@​normand1](https://togithub.com/normand1) in [https://github.com/langchain-ai/langchain/pull/13981](https://togithub.com/langchain-ai/langchain/pull/13981) - doc: update langchain version for mongodb integration by [@​whitedogg13](https://togithub.com/whitedogg13) in [https://github.com/langchain-ai/langchain/pull/14006](https://togithub.com/langchain-ai/langchain/pull/14006) - Adds progress bar to GooglePalmEmbeddings by [@​ugm2](https://togithub.com/ugm2) in [https://github.com/langchain-ai/langchain/pull/13812](https://togithub.com/langchain-ai/langchain/pull/13812) - Mathpix PDF loader supports arbitrary extra params by [@​chadnorvell](https://togithub.com/chadnorvell) in [https://github.com/langchain-ai/langchain/pull/13950](https://togithub.com/langchain-ai/langchain/pull/13950) - Update typo in map.ipynb by [@​nnmer](https://togithub.com/nnmer) in [https://github.com/langchain-ai/langchain/pull/14030](https://togithub.com/langchain-ai/langchain/pull/14030) - Improve HyDe with custom prompts and ability to supply the run_manager by [@​yvesloy](https://togithub.com/yvesloy) in [https://github.com/langchain-ai/langchain/pull/14016](https://togithub.com/langchain-ai/langchain/pull/14016) - template pyproject updates by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/14035](https://togithub.com/langchain-ai/langchain/pull/14035) - langchain\[patch]: Release 0.0.343 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/14037](https://togithub.com/langchain-ai/langchain/pull/14037) - Adding new StackExchange API integration by [@​SauhaardW](https://togithub.com/SauhaardW) in [https://github.com/langchain-ai/langchain/pull/14002](https://togithub.com/langchain-ai/langchain/pull/14002) #### New Contributors - [@​queenvictoria](https://togithub.com/queenvictoria) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13769](https://togithub.com/langchain-ai/langchain/pull/13769) - [@​Falydoor](https://togithub.com/Falydoor) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13694](https://togithub.com/langchain-ai/langchain/pull/13694) - [@​lujingxuansc](https://togithub.com/lujingxuansc) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13945](https://togithub.com/langchain-ai/langchain/pull/13945) - [@​nhywieza](https://togithub.com/nhywieza) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13946](https://togithub.com/langchain-ai/langchain/pull/13946) - [@​darktheorys](https://togithub.com/darktheorys) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13815](https://togithub.com/langchain-ai/langchain/pull/13815) - [@​cmpadden](https://togithub.com/cmpadden) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13726](https://togithub.com/langchain-ai/langchain/pull/13726) - [@​kunal8164705](https://togithub.com/kunal8164705) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13875](https://togithub.com/langchain-ai/langchain/pull/13875) - [@​Amyh102](https://togithub.com/Amyh102) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13864](https://togithub.com/langchain-ai/langchain/pull/13864) - [@​saiwas](https://togithub.com/saiwas) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13763](https://togithub.com/langchain-ai/langchain/pull/13763) - [@​Glueish](https://togithub.com/Glueish) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13737](https://togithub.com/langchain-ai/langchain/pull/13737) - [@​pavelzw](https://togithub.com/pavelzw) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13335](https://togithub.com/langchain-ai/langchain/pull/13335) - [@​normand1](https://togithub.com/normand1) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13981](https://togithub.com/langchain-ai/langchain/pull/13981) - [@​whitedogg13](https://togithub.com/whitedogg13) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14006](https://togithub.com/langchain-ai/langchain/pull/14006) - [@​ugm2](https://togithub.com/ugm2) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13812](https://togithub.com/langchain-ai/langchain/pull/13812) - [@​chadnorvell](https://togithub.com/chadnorvell) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13950](https://togithub.com/langchain-ai/langchain/pull/13950) - [@​nnmer](https://togithub.com/nnmer) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14030](https://togithub.com/langchain-ai/langchain/pull/14030) - [@​yvesloy](https://togithub.com/yvesloy) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14016](https://togithub.com/langchain-ai/langchain/pull/14016) - [@​SauhaardW](https://togithub.com/SauhaardW) made their first contribution in [https://github.com/langchain-ai/langchain/pull/14002](https://togithub.com/langchain-ai/langchain/pull/14002) **Full Changelog**: https://github.com/langchain-ai/langchain/compare/v0.0.342...v0.0.343 ### [`v0.0.342`](https://togithub.com/langchain-ai/langchain/releases/tag/v0.0.342) [Compare Source](https://togithub.com/langchain-ai/langchain/compare/v0.0.341...v0.0.342) #### What's Changed - Document Runnable Binding by [@​eyurtsev](https://togithub.com/eyurtsev) in [https://github.com/langchain-ai/langchain/pull/13927](https://togithub.com/langchain-ai/langchain/pull/13927) - fixed VertexAIModelGarden class by [@​lkuligin](https://togithub.com/lkuligin) in [https://github.com/langchain-ai/langchain/pull/13917](https://togithub.com/langchain-ai/langchain/pull/13917) - Add Databricks Vector Search as a new vector store by [@​freemso](https://togithub.com/freemso) in [https://github.com/langchain-ai/langchain/pull/13621](https://togithub.com/langchain-ai/langchain/pull/13621) - fix: fix qianfan validate_environment typo by [@​chyroc](https://togithub.com/chyroc) in [https://github.com/langchain-ai/langchain/pull/13908](https://togithub.com/langchain-ai/langchain/pull/13908) - IMPROVEMENT: import Document from core by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13905](https://togithub.com/langchain-ai/langchain/pull/13905) - Update azure_cosmos_db.py by [@​esoler-sage](https://togithub.com/esoler-sage) in [https://github.com/langchain-ai/langchain/pull/13919](https://togithub.com/langchain-ai/langchain/pull/13919) - Support for indexes that do not return a 'metadata' field in '\_source' by [@​assaftibm](https://togithub.com/assaftibm) in [https://github.com/langchain-ai/langchain/pull/13903](https://togithub.com/langchain-ai/langchain/pull/13903) - fix(docs): link to question answering by [@​riezebosch](https://togithub.com/riezebosch) in [https://github.com/langchain-ai/langchain/pull/13806](https://togithub.com/langchain-ai/langchain/pull/13806) - chore: typo by [@​jiangying000](https://togithub.com/jiangying000) in [https://github.com/langchain-ai/langchain/pull/13817](https://togithub.com/langchain-ai/langchain/pull/13817) - Multitenant adddocs by [@​jeremyb-data](https://togithub.com/jeremyb-data) in [https://github.com/langchain-ai/langchain/pull/13827](https://togithub.com/langchain-ai/langchain/pull/13827) - Docs `adapters` moved by [@​leo-gan](https://togithub.com/leo-gan) in [https://github.com/langchain-ai/langchain/pull/13862](https://togithub.com/langchain-ai/langchain/pull/13862) - Add rag-opensearch template by [@​rawwar](https://togithub.com/rawwar) in [https://github.com/langchain-ai/langchain/pull/13501](https://togithub.com/langchain-ai/langchain/pull/13501) - Add progress bar to OllamaEmbeddings by [@​tylertitsworth](https://togithub.com/tylertitsworth) in [https://github.com/langchain-ai/langchain/pull/13882](https://togithub.com/langchain-ai/langchain/pull/13882) - The experimental package needs to be compatible with the usage of importing agents by [@​169](https://togithub.com/169) in [https://github.com/langchain-ai/langchain/pull/13839](https://togithub.com/langchain-ai/langchain/pull/13839) - Update prompt injection model by [@​asofter](https://togithub.com/asofter) in [https://github.com/langchain-ai/langchain/pull/13930](https://togithub.com/langchain-ai/langchain/pull/13930) - Make common utils public by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13932](https://togithub.com/langchain-ai/langchain/pull/13932) - Adding `infinity` embedding integration. by [@​michaelfeil](https://togithub.com/michaelfeil) in [https://github.com/langchain-ai/langchain/pull/13928](https://togithub.com/langchain-ai/langchain/pull/13928) - Implement stream() and astream() for agents by [@​nfcampos](https://togithub.com/nfcampos) in [https://github.com/langchain-ai/langchain/pull/12783](https://togithub.com/langchain-ai/langchain/pull/12783) - RunnableLambda: create afunc instance from func when not provided by [@​nbondoux](https://togithub.com/nbondoux) in [https://github.com/langchain-ai/langchain/pull/13408](https://togithub.com/langchain-ai/langchain/pull/13408) - RELEASE: core 0.0.7 by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/13973](https://togithub.com/langchain-ai/langchain/pull/13973) - Eval Error Key by [@​hinthornw](https://togithub.com/hinthornw) in [https://github.com/langchain-ai/langchain/pull/13974](https://togithub.com/langchain-ai/langchain/pull/13974) - office365 toolkit bug fixes by [@​leo-gan](https://togithub.com/leo-gan) in [https://github.com/langchain-ai/langchain/pull/13618](https://togithub.com/langchain-ai/langchain/pull/13618) - Fix `MarkdownHeaderTextSplitter` not recognizing tilde-fenced code blocks by [@​unifyh](https://togithub.com/unifyh) in [https://github.com/langchain-ai/langchain/pull/13511](https://togithub.com/langchain-ai/langchain/pull/13511) - Use langchain core in-tree as a dev dependency by [@​nfcampos](https://togithub.com/nfcampos) in [https://github.com/langchain-ai/langchain/pull/13957](https://togithub.com/langchain-ai/langchain/pull/13957) - Documentation: Reduce largest static image file size by [@​rihardsgravis](https://togithub.com/rihardsgravis) in [https://github.com/langchain-ai/langchain/pull/13508](https://togithub.com/langchain-ai/langchain/pull/13508) - \[Evals] Add Project Tags by [@​hinthornw](https://togithub.com/hinthornw) in [https://github.com/langchain-ai/langchain/pull/13982](https://togithub.com/langchain-ai/langchain/pull/13982) - iMessage loader: implement message content extraction from attributed… by [@​YaySushi](https://togithub.com/YaySushi) in [https://github.com/langchain-ai/langchain/pull/13634](https://togithub.com/langchain-ai/langchain/pull/13634) - Fix broken link on Meilisearch vector-store documentation by [@​alallema](https://togithub.com/alallema) in [https://github.com/langchain-ai/langchain/pull/13604](https://togithub.com/langchain-ai/langchain/pull/13604) - fix merge None value and non None value error by [@​mengjincn](https://togithub.com/mengjincn) in [https://github.com/langchain-ai/langchain/pull/13703](https://togithub.com/langchain-ai/langchain/pull/13703) - Update the stable docs link by [@​adroitvarun](https://togithub.com/adroitvarun) in [https://github.com/langchain-ai/langchain/pull/13798](https://togithub.com/langchain-ai/langchain/pull/13798) - AnthropicFunctions function_call compatibility by [@​JohnnyFoulds](https://togithub.com/JohnnyFoulds) in [https://github.com/langchain-ai/langchain/pull/13901](https://togithub.com/langchain-ai/langchain/pull/13901) - Astra DB vector store, move constructor docstring to class docstring by [@​hemidactylus](https://togithub.com/hemidactylus) in [https://github.com/langchain-ai/langchain/pull/13784](https://togithub.com/langchain-ai/langchain/pull/13784) - fix test deps by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13984](https://togithub.com/langchain-ai/langchain/pull/13984) - Exclude Bedrock client and credentials_profile_name fields from serialisation by [@​dqbd](https://togithub.com/dqbd) in [https://github.com/langchain-ai/langchain/pull/13603](https://togithub.com/langchain-ai/langchain/pull/13603) - Fixes for opengpts release by [@​nfcampos](https://togithub.com/nfcampos) in [https://github.com/langchain-ai/langchain/pull/13960](https://togithub.com/langchain-ai/langchain/pull/13960) - In Runnable.stream_log build up final_output from adding output chunks by [@​nfcampos](https://togithub.com/nfcampos) in [https://github.com/langchain-ai/langchain/pull/12781](https://togithub.com/langchain-ai/langchain/pull/12781) - Track RunnableAssign as a separate run trace by [@​dqbd](https://togithub.com/dqbd) in [https://github.com/langchain-ai/langchain/pull/13972](https://togithub.com/langchain-ai/langchain/pull/13972) - core\[patch]: release 0.0.7 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13989](https://togithub.com/langchain-ai/langchain/pull/13989) - Add retriever for Knowledge Bases for Amazon Bedrock by [@​dlqqq](https://togithub.com/dlqqq) in [https://github.com/langchain-ai/langchain/pull/13980](https://togithub.com/langchain-ai/langchain/pull/13980) - DOCS: update stack diagram by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13902](https://togithub.com/langchain-ai/langchain/pull/13902) - langchain\[patch]: release 0.0.342 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13992](https://togithub.com/langchain-ai/langchain/pull/13992) - fix docs build by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13990](https://togithub.com/langchain-ai/langchain/pull/13990) - langchain\[patch]: contributing test guide update by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/13993](https://togithub.com/langchain-ai/langchain/pull/13993) #### New Contributors - [@​freemso](https://togithub.com/freemso) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13621](https://togithub.com/langchain-ai/langchain/pull/13621) - [@​chyroc](https://togithub.com/chyroc) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13908](https://togithub.com/langchain-ai/langchain/pull/13908) - [@​esoler-sage](https://togithub.com/esoler-sage) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13919](https://togithub.com/langchain-ai/langchain/pull/13919) - [@​assaftibm](https://togithub.com/assaftibm) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13903](https://togithub.com/langchain-ai/langchain/pull/13903) - [@​riezebosch](https://togithub.com/riezebosch) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13806](https://togithub.com/langchain-ai/langchain/pull/13806) - [@​jiangying000](https://togithub.com/jiangying000) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13817](https://togithub.com/langchain-ai/langchain/pull/13817) - [@​jeremyb-data](https://togithub.com/jeremyb-data) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13827](https://togithub.com/langchain-ai/langchain/pull/13827) - [@​rawwar](https://togithub.com/rawwar) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13501](https://togithub.com/langchain-ai/langchain/pull/13501) - [@​tylertitsworth](https://togithub.com/tylertitsworth) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13882](https://togithub.com/langchain-ai/langchain/pull/13882) - [@​169](https://togithub.com/169) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13839](https://togithub.com/langchain-ai/langchain/pull/13839) - [@​asofter](https://togithub.com/asofter) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13930](https://togithub.com/langchain-ai/langchain/pull/13930) - [@​nbondoux](https://togithub.com/nbondoux) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13408](https://togithub.com/langchain-ai/langchain/pull/13408) - [@​rihardsgravis](https://togithub.com/rihardsgravis) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13508](https://togithub.com/langchain-ai/langchain/pull/13508) - [@​YaySushi](https://togithub.com/YaySushi) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13634](https://togithub.com/langchain-ai/langchain/pull/13634) - [@​mengjincn](https://togithub.com/mengjincn) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13703](https://togithub.com/langchain-ai/langchain/pull/13703) - [@​adroitvarun](https://togithub.com/adroitvarun) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13798](https://togithub.com/langchain-ai/langchain/pull/13798) - [@​JohnnyFoulds](https://togithub.com/JohnnyFoulds) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13901](https://togithub.com/langchain-ai/langchain/pull/13901) **Full Changelog**: https://github.com/langchain-ai/langchain/compare/v0.0.341...v0.0.342 ### [`v0.0.341`](https://togithub.com/langchain-ai/langchain/releases/tag/v0.0.341) [Compare Source](https://togithub.com/langchain-ai/langchain/compare/v0.0.340...v0.0.341) #### What's Changed - Revert "INFRA: temp rm master condition ([#​13753](https://togithub.com/langchain-ai/langchain/issues/13753))" by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13759](https://togithub.com/langchain-ai/langchain/pull/13759) - RELEASE: core 0.0.5 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13786](https://togithub.com/langchain-ai/langchain/pull/13786) - bump 0.0.339rc2 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13787](https://togithub.com/langchain-ai/langchain/pull/13787) - BUGFIX: Import types and typevars from core by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13829](https://togithub.com/langchain-ai/langchain/pull/13829) - Astra DB, chat message history by [@​hemidactylus](https://togithub.com/hemidactylus) in [https://github.com/langchain-ai/langchain/pull/13836](https://togithub.com/langchain-ai/langchain/pull/13836) - Astra DB, LLM cache classes (exact-match and semantic cache) by [@​hemidactylus](https://togithub.com/hemidactylus) in [https://github.com/langchain-ai/langchain/pull/13834](https://togithub.com/langchain-ai/langchain/pull/13834) - Added title metadata to GoogleDriveLoader for optional File Loaders by [@​raelix](https://togithub.com/raelix) in [https://github.com/langchain-ai/langchain/pull/13832](https://togithub.com/langchain-ai/langchain/pull/13832) - RELEASE: core 0.0.6 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13853](https://togithub.com/langchain-ai/langchain/pull/13853) - bump 0.0.339rc3 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13852](https://togithub.com/langchain-ai/langchain/pull/13852) - add skeleton of thought by [@​hwchase17](https://togithub.com/hwchase17) in [https://github.com/langchain-ai/langchain/pull/13883](https://togithub.com/langchain-ai/langchain/pull/13883) - DOC: Fix Sample Code for Compatibility with Pydantic 2.0 by [@​ggeutzzang](https://togithub.com/ggeutzzang) in [https://github.com/langchain-ai/langchain/pull/13890](https://togithub.com/langchain-ai/langchain/pull/13890) - Add retriever for Outline by [@​yuskhan](https://togithub.com/yuskhan) in [https://github.com/langchain-ai/langchain/pull/13889](https://togithub.com/langchain-ai/langchain/pull/13889) - export more types by [@​hwchase17](https://togithub.com/hwchase17) in [https://github.com/langchain-ai/langchain/pull/13886](https://togithub.com/langchain-ai/langchain/pull/13886) - docs: fix link to `local_retrieval_qa` by [@​superpung](https://togithub.com/superpung) in [https://github.com/langchain-ai/langchain/pull/13872](https://togithub.com/langchain-ai/langchain/pull/13872) - Fix bugs with Cypher validation by [@​tomasonjo](https://togithub.com/tomasonjo) in [https://github.com/langchain-ai/langchain/pull/13849](https://togithub.com/langchain-ai/langchain/pull/13849) - Update llamacpp.ipynb by [@​eltociear](https://togithub.com/eltociear) in [https://github.com/langchain-ai/langchain/pull/13840](https://togithub.com/langchain-ai/langchain/pull/13840) - Add OneNote document loader by [@​Dylan20XX](https://togithub.com/Dylan20XX) in [https://github.com/langchain-ai/langchain/pull/13841](https://togithub.com/langchain-ai/langchain/pull/13841) - DOCS: fixed error in the docstring of RunnablePassthrough class by [@​ggeutzzang](https://togithub.com/ggeutzzang) in [https://github.com/langchain-ai/langchain/pull/13843](https://togithub.com/langchain-ai/langchain/pull/13843) - Simplified Docugami cookbook to remove code now available in docugami library by [@​tjaffri](https://togithub.com/tjaffri) in [https://github.com/langchain-ai/langchain/pull/13828](https://togithub.com/langchain-ai/langchain/pull/13828) - Add Cypher template diagrams by [@​tomasonjo](https://togithub.com/tomasonjo) in [https://github.com/langchain-ai/langchain/pull/13913](https://togithub.com/langchain-ai/langchain/pull/13913) - Add option to prefix config keys in configurable_alts by [@​nfcampos](https://togithub.com/nfcampos) in [https://github.com/langchain-ai/langchain/pull/13714](https://togithub.com/langchain-ai/langchain/pull/13714) - fix chat prompt loading from config by [@​umair313](https://togithub.com/umair313) in [https://github.com/langchain-ai/langchain/pull/13818](https://togithub.com/langchain-ai/langchain/pull/13818) - Update root poetry lock with core by [@​nfcampos](https://togithub.com/nfcampos) in [https://github.com/langchain-ai/langchain/pull/13922](https://togithub.com/langchain-ai/langchain/pull/13922) - RELEASE: 0.0.341 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13926](https://togithub.com/langchain-ai/langchain/pull/13926) #### New Contributors - [@​raelix](https://togithub.com/raelix) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13832](https://togithub.com/langchain-ai/langchain/pull/13832) - [@​ggeutzzang](https://togithub.com/ggeutzzang) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13890](https://togithub.com/langchain-ai/langchain/pull/13890) - [@​yuskhan](https://togithub.com/yuskhan) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13889](https://togithub.com/langchain-ai/langchain/pull/13889) - [@​superpung](https://togithub.com/superpung) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13872](https://togithub.com/langchain-ai/langchain/pull/13872) - [@​Dylan20XX](https://togithub.com/Dylan20XX) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13841](https://togithub.com/langchain-ai/langchain/pull/13841) **Full Changelog**: https://github.com/langchain-ai/langchain/compare/v0.0.340...v0.0.341 ### [`v0.0.340`](https://togithub.com/langchain-ai/langchain/releases/tag/v0.0.340) [Compare Source](https://togithub.com/langchain-ai/langchain/compare/v0.0.339...v0.0.340) #### What's Changed - DOCS: update rag use case images by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13615](https://togithub.com/langchain-ai/langchain/pull/13615) - WIP: core by [@​hwchase17](https://togithub.com/hwchase17) in [https://github.com/langchain-ai/langchain/pull/13577](https://togithub.com/langchain-ai/langchain/pull/13577) - Add core as dep by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13623](https://togithub.com/langchain-ai/langchain/pull/13623) - Add template for gpt-crawler by [@​rlancemartin](https://togithub.com/rlancemartin) in [https://github.com/langchain-ai/langchain/pull/13625](https://togithub.com/langchain-ai/langchain/pull/13625) - Use pytest asyncio auto mode by [@​nfcampos](https://togithub.com/nfcampos) in [https://github.com/langchain-ai/langchain/pull/13643](https://togithub.com/langchain-ai/langchain/pull/13643) - Add error rate by [@​hinthornw](https://togithub.com/hinthornw) in [https://github.com/langchain-ai/langchain/pull/13568](https://togithub.com/langchain-ai/langchain/pull/13568) - Core refac by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13627](https://togithub.com/langchain-ai/langchain/pull/13627) - bump 0.0.339rc0 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13664](https://togithub.com/langchain-ai/langchain/pull/13664) - fix templates dockerfile by [@​jakerachleff](https://togithub.com/jakerachleff) in [https://github.com/langchain-ai/langchain/pull/13672](https://togithub.com/langchain-ai/langchain/pull/13672) - update langserve to v0.0.30 by [@​jakerachleff](https://togithub.com/jakerachleff) in [https://github.com/langchain-ai/langchain/pull/13673](https://togithub.com/langchain-ai/langchain/pull/13673) - docugami cookbook by [@​tjaffri](https://togithub.com/tjaffri) in [https://github.com/langchain-ai/langchain/pull/13183](https://togithub.com/langchain-ai/langchain/pull/13183) - CLI 0.0.19 by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/13677](https://togithub.com/langchain-ai/langchain/pull/13677) - Update name by [@​hinthornw](https://togithub.com/hinthornw) in [https://github.com/langchain-ai/langchain/pull/13676](https://togithub.com/langchain-ai/langchain/pull/13676) - more core fixes by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13665](https://togithub.com/langchain-ai/langchain/pull/13665) - Bagatur/core utils by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13688](https://togithub.com/langchain-ai/langchain/pull/13688) - add callback import test by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13689](https://togithub.com/langchain-ai/langchain/pull/13689) - bump core dep 0.0.3 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13690](https://togithub.com/langchain-ai/langchain/pull/13690) - fixed import error for BashOutputParser by [@​gyliu513](https://togithub.com/gyliu513) in [https://github.com/langchain-ai/langchain/pull/13680](https://togithub.com/langchain-ai/langchain/pull/13680) - remove openai api key from cookbook by [@​gyliu513](https://togithub.com/gyliu513) in [https://github.com/langchain-ai/langchain/pull/13633](https://togithub.com/langchain-ai/langchain/pull/13633) - Update bedrock.py to fix bug by [@​ruanwz](https://togithub.com/ruanwz) in [https://github.com/langchain-ai/langchain/pull/13646](https://togithub.com/langchain-ai/langchain/pull/13646) - BUG fix anthropic models on bedrock by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/13629](https://togithub.com/langchain-ai/langchain/pull/13629) - Lint for imports by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/13632](https://togithub.com/langchain-ai/langchain/pull/13632) - Added partial_variables to BaseStringMessagePromptTemplate.from_template(...) by [@​jponf](https://togithub.com/jponf) in [https://github.com/langchain-ai/langchain/pull/13645](https://togithub.com/langchain-ai/langchain/pull/13645) - chore: add serializer for tool message by [@​tanujtiwari-at](https://togithub.com/tanujtiwari-at) in [https://github.com/langchain-ai/langchain/pull/13626](https://togithub.com/langchain-ai/langchain/pull/13626) - VoyageEmbeddings embed_general_texts by [@​thomas0809](https://togithub.com/thomas0809) in [https://github.com/langchain-ai/langchain/pull/13620](https://togithub.com/langchain-ai/langchain/pull/13620) - BUGFIX: llm backwards compat imports by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13698](https://togithub.com/langchain-ai/langchain/pull/13698) - fix the problem that redis vector store will change metadata with val… by [@​dandanwei](https://togithub.com/dandanwei) in [https://github.com/langchain-ai/langchain/pull/13652](https://togithub.com/langchain-ai/langchain/pull/13652) - IMPROVEMENT: Conditionally import for type hints by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13700](https://togithub.com/langchain-ai/langchain/pull/13700) - Template Metadata pt 1 by [@​efriis](https://togithub.com/efriis) in [https://github.com/langchain-ai/langchain/pull/13691](https://togithub.com/langchain-ai/langchain/pull/13691) - BUGFIX: add prompt imports for backwards compat by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13702](https://togithub.com/langchain-ai/langchain/pull/13702) - Fix locking by [@​hinthornw](https://togithub.com/hinthornw) in [https://github.com/langchain-ai/langchain/pull/13725](https://togithub.com/langchain-ai/langchain/pull/13725) - Fix typo/line break in python code by [@​h3l](https://togithub.com/h3l) in [https://github.com/langchain-ai/langchain/pull/13708](https://togithub.com/langchain-ai/langchain/pull/13708) - REFACTOR: combine core documents files by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13733](https://togithub.com/langchain-ai/langchain/pull/13733) - DOCS: fix core api ref build by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13744](https://togithub.com/langchain-ai/langchain/pull/13744) - INFRA: run LC ci after core changes by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13742](https://togithub.com/langchain-ai/langchain/pull/13742) - Bagatur/bump core 4 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13745](https://togithub.com/langchain-ai/langchain/pull/13745) - RELEASE: 0.0.339rc1 by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13746](https://togithub.com/langchain-ai/langchain/pull/13746) - DOCS: core editable dep api refs by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13747](https://togithub.com/langchain-ai/langchain/pull/13747) - Add Batch Size kwarg to the llm start callback by [@​hinthornw](https://togithub.com/hinthornw) in [https://github.com/langchain-ai/langchain/pull/13483](https://togithub.com/langchain-ai/langchain/pull/13483) - IMPROVEMENT: filter global warnings properly by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13754](https://togithub.com/langchain-ai/langchain/pull/13754) - rm master condition by [@​baskaryan](https://togithub.com/baskaryan) in [https://github.com/langchain-ai/langchain/pull/13753](https://togithub.com/langchain-ai/langchain/pull/13753) #### New Contributors - [@​gyliu513](https://togithub.com/gyliu513) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13680](https://togithub.com/langchain-ai/langchain/pull/13680) - [@​jponf](https://togithub.com/jponf) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13645](https://togithub.com/langchain-ai/langchain/pull/13645) - [@​dandanwei](https://togithub.com/dandanwei) made their first contribution in [https://github.com/langchain-ai/langchain/pull/13652](https://togithub.com/langchain-ai/langchain/pull/13652) - [@​h3l](https://togithub.com/h3l) made their first con </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/GoogleCloudPlatform/genai-databases-retrieval-app). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->
…s APIs. (langchain-ai#13699) ## Description Related to mlflow/mlflow#10420. MLflow AI gateway will be deprecated and replaced by the `mlflow.deployments` module. Happy to split this PR if it's too large. ``` pip install git+https://github.com/langchain-ai/langchain.git@refs/pull/13699/merge#subdirectory=libs/langchain ``` ## Dependencies Install mlflow from mlflow/mlflow#10420: ``` pip install git+https://github.com/mlflow/mlflow.git@refs/pull/10420/merge ``` ## Testing plan The following code works fine on local and databricks: <details><summary>Click</summary> <p> ```python """ Setup ----- mlflow deployments start-server --config-path examples/gateway/openai/config.yaml databricks secrets create-scope <scope> databricks secrets put-secret <scope> openai-api-key --string-value $OPENAI_API_KEY Run --- python /path/to/this/file.py secrets/<scope>/openai-api-key """ from langchain.chat_models import ChatMlflow, ChatDatabricks from langchain.embeddings import MlflowEmbeddings, DatabricksEmbeddings from langchain.llms import Databricks, Mlflow from langchain.schema.messages import HumanMessage from langchain.chains.loading import load_chain from mlflow.deployments import get_deploy_client import uuid import sys import tempfile from langchain.chains import LLMChain from langchain.prompts import PromptTemplate ############################### # MLflow ############################### chat = ChatMlflow( target_uri="http://127.0.0.1:5000", endpoint="chat", params={"temperature": 0.1} ) print(chat([HumanMessage(content="hello")])) embeddings = MlflowEmbeddings(target_uri="http://127.0.0.1:5000", endpoint="embeddings") print(embeddings.embed_query("hello")[:3]) print(embeddings.embed_documents(["hello", "world"])[0][:3]) llm = Mlflow( target_uri="http://127.0.0.1:5000", endpoint="completions", params={"temperature": 0.1}, ) print(llm("I am")) llm_chain = LLMChain( llm=llm, prompt=PromptTemplate( input_variables=["adjective"], template="Tell me a {adjective} joke", ), ) print(llm_chain.run(adjective="funny")) # serialization/deserialization with tempfile.TemporaryDirectory() as tmpdir: print(tmpdir) path = f"{tmpdir}/llm.yaml" llm_chain.save(path) loaded_chain = load_chain(path) print(loaded_chain("funny")) ############################### # Databricks ############################### secret = sys.argv[1] client = get_deploy_client("databricks") # External - chat name = f"chat-{uuid.uuid4()}" client.create_endpoint( name=name, config={ "served_entities": [ { "name": "test", "external_model": { "name": "gpt-4", "provider": "openai", "task": "llm/v1/chat", "openai_config": { "openai_api_key": "{{" + secret + "}}", }, }, } ], }, ) try: chat = ChatDatabricks( target_uri="databricks", endpoint=name, params={"temperature": 0.1} ) print(chat([HumanMessage(content="hello")])) finally: client.delete_endpoint(endpoint=name) # External - embeddings name = f"embeddings-{uuid.uuid4()}" client.create_endpoint( name=name, config={ "served_entities": [ { "name": "test", "external_model": { "name": "text-embedding-ada-002", "provider": "openai", "task": "llm/v1/embeddings", "openai_config": { "openai_api_key": "{{" + secret + "}}", }, }, } ], }, ) try: embeddings = DatabricksEmbeddings(target_uri="databricks", endpoint=name) print(embeddings.embed_query("hello")[:3]) print(embeddings.embed_documents(["hello", "world"])[0][:3]) finally: client.delete_endpoint(endpoint=name) # External - completions name = f"completions-{uuid.uuid4()}" client.create_endpoint( name=name, config={ "served_entities": [ { "name": "test", "external_model": { "name": "gpt-3.5-turbo-instruct", "provider": "openai", "task": "llm/v1/completions", "openai_config": { "openai_api_key": "{{" + secret + "}}", }, }, } ], }, ) try: llm = Databricks( endpoint_name=name, model_kwargs={"temperature": 0.1}, ) print(llm("I am")) finally: client.delete_endpoint(endpoint=name) # Foundation model - chat chat = ChatDatabricks( endpoint="databricks-llama-2-70b-chat", params={"temperature": 0.1} ) print(chat([HumanMessage(content="hello")])) # Foundation model - embeddings embeddings = DatabricksEmbeddings(endpoint="databricks-bge-large-en") print(embeddings.embed_query("hello")[:3]) # Foundation model - completions llm = Databricks( endpoint_name="databricks-mpt-7b-instruct", model_kwargs={"temperature": 0.1} ) print(llm("hello")) llm_chain = LLMChain( llm=llm, prompt=PromptTemplate( input_variables=["adjective"], template="Tell me a {adjective} joke", ), ) print(llm_chain.run(adjective="funny")) # serialization/deserialization with tempfile.TemporaryDirectory() as tmpdir: print(tmpdir) path = f"{tmpdir}/llm.yaml" llm_chain.save(path) loaded_chain = load_chain(path) print(loaded_chain("funny")) ``` Output: ``` content='Hello! How can I assist you today?' [-0.025058426, -0.01938856, -0.027781019] [-0.025058426, -0.01938856, -0.027781019] sorry, but I cannot continue the sentence as it is incomplete. Can you please provide more information or context? Sure, here's a classic one for you: Why don't scientists trust atoms? Because they make up everything! /var/folders/dz/cd_nvlf14g9g__n3ph0d_0pm0000gp/T/tmpx_4no6ad {'adjective': 'funny', 'text': "Sure, here's a classic one for you:\n\nWhy don't scientists trust atoms?\n\nBecause they make up everything!"} content='Hello! How can I assist you today?' [-0.025058426, -0.01938856, -0.027781019] [-0.025058426, -0.01938856, -0.027781019] a 23 year old female and I am currently studying for my master's degree content="\nHello! It's nice to meet you. Is there something I can help you with or would you like to chat for a bit?" [0.051055908203125, 0.007221221923828125, 0.003879547119140625] [0.051055908203125, 0.007221221923828125, 0.003879547119140625] hello back Well, I don't really know many jokes, but I do know this funny story... /var/folders/dz/cd_nvlf14g9g__n3ph0d_0pm0000gp/T/tmp7_ds72ex {'adjective': 'funny', 'text': " Well, I don't really know many jokes, but I do know this funny story..."} ``` </p> </details> The existing workflow doesn't break: <details><summary>click</summary> <p> ```python import uuid import mlflow from mlflow.models import ModelSignature from mlflow.types.schema import ColSpec, Schema class MyModel(mlflow.pyfunc.PythonModel): def predict(self, context, model_input): return str(uuid.uuid4()) with mlflow.start_run(): mlflow.pyfunc.log_model( "model", python_model=MyModel(), pip_requirements=["mlflow==2.8.1", "cloudpickle<3"], signature=ModelSignature( inputs=Schema( [ ColSpec("string", "prompt"), ColSpec("string", "stop"), ] ), outputs=Schema( [ ColSpec(name=None, type="string"), ] ), ), registered_model_name=f"lang-{uuid.uuid4()}", ) # Manually create a serving endpoint with the registered model and run from langchain.llms import Databricks llm = Databricks(endpoint_name="<name>") llm("hello") # 9d0b2491-3d13-487c-bc02-1287f06ecae7 ``` </p> </details> ## Follow-up tasks (This PR is too large. I'll file a separate one for follow-up tasks.) - Update `docs/docs/integrations/providers/mlflow_ai_gateway.mdx` and `docs/docs/integrations/providers/databricks.md`. --------- Signed-off-by: harupy <17039389+harupy@users.noreply.github.com> Co-authored-by: Bagatur <baskaryan@gmail.com>
Depends on langchain-ai#13699. Updates the existing mlflow and databricks examples. --------- Co-authored-by: Ben Wilson <39283302+BenWilson2@users.noreply.github.com>
Description
Related to mlflow/mlflow#10420. MLflow AI gateway will be deprecated and replaced by the
mlflow.deployments
module. Happy to split this PR if it's too large.Dependencies
Install mlflow from mlflow/mlflow#10420:
Testing plan
The following code works fine on local and databricks:
Click
Output:
The existing workflow doesn't break:
click
Follow-up tasks
(This PR is too large. I'll file a separate one for follow-up tasks.)
docs/docs/integrations/providers/mlflow_ai_gateway.mdx
anddocs/docs/integrations/providers/databricks.md
.