mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-19 21:33:51 +00:00
core:adds tests for partial_variables (#15427)
**Description:** Added small tests to test partial_variables in PromptTemplate. It was missing.
This commit is contained in:
parent
73a628de9a
commit
15b6c049d4
@ -1,5 +1,7 @@
|
||||
_type: prompt
|
||||
input_variables:
|
||||
["adjective", "content"]
|
||||
["adjective"]
|
||||
partial_variables:
|
||||
content: dogs
|
||||
template:
|
||||
Tell me a {adjective} joke about {content}.
|
||||
|
@ -28,7 +28,8 @@ def test_loading_from_YAML() -> None:
|
||||
"""Test loading from yaml file."""
|
||||
prompt = load_prompt(EXAMPLE_DIR / "simple_prompt.yaml")
|
||||
expected_prompt = PromptTemplate(
|
||||
input_variables=["adjective", "content"],
|
||||
input_variables=["adjective"],
|
||||
partial_variables={"content": "dogs"},
|
||||
template="Tell me a {adjective} joke about {content}.",
|
||||
)
|
||||
assert prompt == expected_prompt
|
||||
|
@ -1,4 +1,6 @@
|
||||
"""Test functionality related to prompts."""
|
||||
from unittest import mock
|
||||
|
||||
import pytest
|
||||
|
||||
from langchain_core.prompts.prompt import PromptTemplate
|
||||
@ -34,6 +36,22 @@ def test_prompt_from_template() -> None:
|
||||
assert prompt == expected_prompt
|
||||
|
||||
|
||||
def test_prompt_from_template_with_partial_variables() -> None:
|
||||
"""Test prompts can be constructed from a template with partial variables."""
|
||||
# given
|
||||
template = "This is a {foo} test {bar}."
|
||||
partial_variables = {"bar": "baz"}
|
||||
# when
|
||||
prompt = PromptTemplate.from_template(template, partial_variables=partial_variables)
|
||||
# then
|
||||
expected_prompt = PromptTemplate(
|
||||
template=template,
|
||||
input_variables=["foo"],
|
||||
partial_variables=partial_variables,
|
||||
)
|
||||
assert prompt == expected_prompt
|
||||
|
||||
|
||||
def test_prompt_missing_input_variables() -> None:
|
||||
"""Test error is raised when input variables are not provided."""
|
||||
template = "This is a {foo} test."
|
||||
@ -118,6 +136,26 @@ def test_prompt_from_file() -> None:
|
||||
assert prompt.template == "Question: {question}\nAnswer:"
|
||||
|
||||
|
||||
def test_prompt_from_file_with_partial_variables() -> None:
|
||||
"""Test prompt can be successfully constructed from a file
|
||||
with partial variables."""
|
||||
# given
|
||||
template = "This is a {foo} test {bar}."
|
||||
partial_variables = {"bar": "baz"}
|
||||
# when
|
||||
with mock.patch("builtins.open", mock.mock_open(read_data=template)):
|
||||
prompt = PromptTemplate.from_file(
|
||||
"mock_file_name", partial_variables=partial_variables
|
||||
)
|
||||
# then
|
||||
expected_prompt = PromptTemplate(
|
||||
template=template,
|
||||
input_variables=["foo"],
|
||||
partial_variables=partial_variables,
|
||||
)
|
||||
assert prompt == expected_prompt
|
||||
|
||||
|
||||
def test_partial_init_string() -> None:
|
||||
"""Test prompt can be initialized with partial variables."""
|
||||
template = "This is a {foo} test."
|
||||
|
Loading…
Reference in New Issue
Block a user