|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
"""Test functionality related to dynamic prompts."""
|
|
|
|
|
"""Test functionality related to length based selector."""
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
|
|
from langchain.prompts.example_selector.length_based import LengthBasedExampleSelector
|
|
|
|
@ -22,15 +22,15 @@ def selector() -> LengthBasedExampleSelector:
|
|
|
|
|
return selector
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_dynamic_prompt_valid(selector: LengthBasedExampleSelector) -> None:
|
|
|
|
|
"""Test dynamic prompt can be successfully constructed from examples."""
|
|
|
|
|
def test_selector_valid(selector: LengthBasedExampleSelector) -> None:
|
|
|
|
|
"""Test LengthBasedExampleSelector can select examples.."""
|
|
|
|
|
short_question = "Short question?"
|
|
|
|
|
output = selector.select_examples({"question": short_question})
|
|
|
|
|
assert output == EXAMPLES
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_dynamic_prompt_add_example(selector: LengthBasedExampleSelector) -> None:
|
|
|
|
|
"""Test dynamic prompt can add an example."""
|
|
|
|
|
def test_selector_add_example(selector: LengthBasedExampleSelector) -> None:
|
|
|
|
|
"""Test LengthBasedExampleSelector can add an example."""
|
|
|
|
|
new_example = {"question": "Question: what are you?\nAnswer: bar"}
|
|
|
|
|
selector.add_example(new_example)
|
|
|
|
|
short_question = "Short question?"
|
|
|
|
@ -38,18 +38,18 @@ def test_dynamic_prompt_add_example(selector: LengthBasedExampleSelector) -> Non
|
|
|
|
|
assert output == EXAMPLES + [new_example]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_dynamic_prompt_trims_one_example(selector: LengthBasedExampleSelector) -> None:
|
|
|
|
|
"""Test dynamic prompt can trim one example."""
|
|
|
|
|
def test_selector_trims_one_example(selector: LengthBasedExampleSelector) -> None:
|
|
|
|
|
"""Test LengthBasedExampleSelector can trim one example."""
|
|
|
|
|
long_question = """I am writing a really long question,
|
|
|
|
|
this probably is going to affect the example right?"""
|
|
|
|
|
output = selector.select_examples({"question": long_question})
|
|
|
|
|
assert output == EXAMPLES[:1]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_dynamic_prompt_trims_all_examples(
|
|
|
|
|
def test_selector_trims_all_examples(
|
|
|
|
|
selector: LengthBasedExampleSelector,
|
|
|
|
|
) -> None:
|
|
|
|
|
"""Test dynamic prompt can trim all examples."""
|
|
|
|
|
"""Test LengthBasedExampleSelector can trim all examples."""
|
|
|
|
|
longest_question = """This question is super super super,
|
|
|
|
|
super super super super super super super super super super super,
|
|
|
|
|
super super super super long, this will affect the example right?"""
|
|
|
|
|