mirror of
https://github.com/hwchase17/langchain.git
synced 2026-07-01 14:47:02 +00:00
test(openai): vcr embedding raw equivalence tests (#38199)
The raw OpenAI embeddings equivalence checks were comparing live responses from two requests, which made them vulnerable to upstream numerical drift even when LangChain behavior had not changed. Recording those interactions keeps the regression coverage while preventing scheduled integration runs from failing due to backend variance.
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -35,9 +35,10 @@ def test_langchain_openai_embeddings_dimensions() -> None:
|
||||
assert len(output[0]) == 128
|
||||
|
||||
|
||||
@pytest.mark.vcr
|
||||
def test_langchain_openai_embeddings_equivalent_to_raw() -> None:
|
||||
documents = ["disallowed special token '<|endoftext|>'"]
|
||||
embedding = OpenAIEmbeddings()
|
||||
embedding = OpenAIEmbeddings(check_embedding_ctx_length=False)
|
||||
|
||||
lc_output = embedding.embed_documents(documents)[0]
|
||||
direct_output = (
|
||||
@@ -49,9 +50,10 @@ def test_langchain_openai_embeddings_equivalent_to_raw() -> None:
|
||||
assert np.allclose(lc_output, direct_output, atol=0.001)
|
||||
|
||||
|
||||
@pytest.mark.vcr
|
||||
async def test_langchain_openai_embeddings_equivalent_to_raw_async() -> None:
|
||||
documents = ["disallowed special token '<|endoftext|>'"]
|
||||
embedding = OpenAIEmbeddings()
|
||||
embedding = OpenAIEmbeddings(check_embedding_ctx_length=False)
|
||||
|
||||
lc_output = (await embedding.aembed_documents(documents))[0]
|
||||
client = openai.AsyncOpenAI()
|
||||
|
||||
8
libs/partners/openai/uv.lock
generated
8
libs/partners/openai/uv.lock
generated
@@ -682,7 +682,7 @@ dependencies = [
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "jsonpatch", specifier = ">=1.33.0,<2.0.0" },
|
||||
{ name = "langchain-protocol", specifier = ">=0.0.14" },
|
||||
{ name = "langchain-protocol", specifier = ">=0.0.17" },
|
||||
{ name = "langsmith", specifier = ">=0.3.45,<1.0.0" },
|
||||
{ name = "packaging", specifier = ">=23.2.0" },
|
||||
{ name = "pydantic", specifier = ">=2.7.4,<3.0.0" },
|
||||
@@ -807,14 +807,14 @@ typing = [
|
||||
|
||||
[[package]]
|
||||
name = "langchain-protocol"
|
||||
version = "0.0.16"
|
||||
version = "0.0.17"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "typing-extensions" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/36/e7/8300ba22d968653051fd06e3117d783872dddf3dcebdd6b1d386836eb43c/langchain_protocol-0.0.16.tar.gz", hash = "sha256:806c7cdd951b1c4f692fa40fce60821ff0f221d4360e27673ddf2c2b99c2b7ff", size = 5969, upload-time = "2026-05-28T23:05:11.121Z" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/44/b3/4e2429876c7a35585618caa2b9f9089f7162a6b50562b614ad82ac11c17e/langchain_protocol-0.0.17.tar.gz", hash = "sha256:e7cbe58c205df4b4fd87dc6d5bb23f10e13b236d0e2e1b0b9d05bc2b648f3eea", size = 6026, upload-time = "2026-06-12T18:39:51.923Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/1f/9c/06dfcc88d02a6364e8d864c421ddd3736305cb0a6c853f75c302c80fe17c/langchain_protocol-0.0.16-py3-none-any.whl", hash = "sha256:3658c142c5d0fb3a023a4be442ce4c15c6d626aab6135eb79a76dc64ad19c3c3", size = 7037, upload-time = "2026-05-28T23:05:10.163Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/13/0a/a1bfe72c6ec856e99773bbd96c8086421e554b3693d0142b9ea009c6ac92/langchain_protocol-0.0.17-py3-none-any.whl", hash = "sha256:982a08fe152586ed10d4ff3d538c2e0b5766e5f307cdea325e10be3f2c17cae6", size = 7096, upload-time = "2026-06-12T18:39:50.973Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
Reference in New Issue
Block a user