mirror of
https://github.com/hwchase17/langchain
synced 2024-10-31 15:20:26 +00:00
Merge pull request #5 from VowpalWabbit/nosockettests
unit tests to use mock encoder
This commit is contained in:
commit
42bdb003ee
@ -23,7 +23,11 @@ def setup() -> tuple:
|
|||||||
@pytest.mark.requires("vowpal_wabbit_next", "sentence_transformers")
|
@pytest.mark.requires("vowpal_wabbit_next", "sentence_transformers")
|
||||||
def test_multiple_ToSelectFrom_throws() -> None:
|
def test_multiple_ToSelectFrom_throws() -> None:
|
||||||
llm, PROMPT = setup()
|
llm, PROMPT = setup()
|
||||||
chain = pick_best_chain.PickBest.from_llm(llm=llm, prompt=PROMPT)
|
chain = pick_best_chain.PickBest.from_llm(
|
||||||
|
llm=llm,
|
||||||
|
prompt=PROMPT,
|
||||||
|
feature_embedder=pick_best_chain.PickBestFeatureEmbedder(model=MockEncoder()),
|
||||||
|
)
|
||||||
actions = ["0", "1", "2"]
|
actions = ["0", "1", "2"]
|
||||||
with pytest.raises(ValueError):
|
with pytest.raises(ValueError):
|
||||||
chain.run(
|
chain.run(
|
||||||
@ -36,7 +40,11 @@ def test_multiple_ToSelectFrom_throws() -> None:
|
|||||||
@pytest.mark.requires("vowpal_wabbit_next", "sentence_transformers")
|
@pytest.mark.requires("vowpal_wabbit_next", "sentence_transformers")
|
||||||
def test_missing_basedOn_from_throws() -> None:
|
def test_missing_basedOn_from_throws() -> None:
|
||||||
llm, PROMPT = setup()
|
llm, PROMPT = setup()
|
||||||
chain = pick_best_chain.PickBest.from_llm(llm=llm, prompt=PROMPT)
|
chain = pick_best_chain.PickBest.from_llm(
|
||||||
|
llm=llm,
|
||||||
|
prompt=PROMPT,
|
||||||
|
feature_embedder=pick_best_chain.PickBestFeatureEmbedder(model=MockEncoder()),
|
||||||
|
)
|
||||||
actions = ["0", "1", "2"]
|
actions = ["0", "1", "2"]
|
||||||
with pytest.raises(ValueError):
|
with pytest.raises(ValueError):
|
||||||
chain.run(action=rl_chain.ToSelectFrom(actions))
|
chain.run(action=rl_chain.ToSelectFrom(actions))
|
||||||
@ -45,7 +53,11 @@ def test_missing_basedOn_from_throws() -> None:
|
|||||||
@pytest.mark.requires("vowpal_wabbit_next", "sentence_transformers")
|
@pytest.mark.requires("vowpal_wabbit_next", "sentence_transformers")
|
||||||
def test_ToSelectFrom_not_a_list_throws() -> None:
|
def test_ToSelectFrom_not_a_list_throws() -> None:
|
||||||
llm, PROMPT = setup()
|
llm, PROMPT = setup()
|
||||||
chain = pick_best_chain.PickBest.from_llm(llm=llm, prompt=PROMPT)
|
chain = pick_best_chain.PickBest.from_llm(
|
||||||
|
llm=llm,
|
||||||
|
prompt=PROMPT,
|
||||||
|
feature_embedder=pick_best_chain.PickBestFeatureEmbedder(model=MockEncoder()),
|
||||||
|
)
|
||||||
actions = {"actions": ["0", "1", "2"]}
|
actions = {"actions": ["0", "1", "2"]}
|
||||||
with pytest.raises(ValueError):
|
with pytest.raises(ValueError):
|
||||||
chain.run(
|
chain.run(
|
||||||
@ -63,6 +75,7 @@ def test_update_with_delayed_score_with_auto_validator_throws() -> None:
|
|||||||
llm=llm,
|
llm=llm,
|
||||||
prompt=PROMPT,
|
prompt=PROMPT,
|
||||||
selection_scorer=rl_chain.AutoSelectionScorer(llm=auto_val_llm),
|
selection_scorer=rl_chain.AutoSelectionScorer(llm=auto_val_llm),
|
||||||
|
feature_embedder=pick_best_chain.PickBestFeatureEmbedder(model=MockEncoder()),
|
||||||
)
|
)
|
||||||
actions = ["0", "1", "2"]
|
actions = ["0", "1", "2"]
|
||||||
response = chain.run(
|
response = chain.run(
|
||||||
@ -85,6 +98,7 @@ def test_update_with_delayed_score_force() -> None:
|
|||||||
llm=llm,
|
llm=llm,
|
||||||
prompt=PROMPT,
|
prompt=PROMPT,
|
||||||
selection_scorer=rl_chain.AutoSelectionScorer(llm=auto_val_llm),
|
selection_scorer=rl_chain.AutoSelectionScorer(llm=auto_val_llm),
|
||||||
|
feature_embedder=pick_best_chain.PickBestFeatureEmbedder(model=MockEncoder()),
|
||||||
)
|
)
|
||||||
actions = ["0", "1", "2"]
|
actions = ["0", "1", "2"]
|
||||||
response = chain.run(
|
response = chain.run(
|
||||||
@ -104,7 +118,10 @@ def test_update_with_delayed_score_force() -> None:
|
|||||||
def test_update_with_delayed_score() -> None:
|
def test_update_with_delayed_score() -> None:
|
||||||
llm, PROMPT = setup()
|
llm, PROMPT = setup()
|
||||||
chain = pick_best_chain.PickBest.from_llm(
|
chain = pick_best_chain.PickBest.from_llm(
|
||||||
llm=llm, prompt=PROMPT, selection_scorer=None
|
llm=llm,
|
||||||
|
prompt=PROMPT,
|
||||||
|
selection_scorer=None,
|
||||||
|
feature_embedder=pick_best_chain.PickBestFeatureEmbedder(model=MockEncoder()),
|
||||||
)
|
)
|
||||||
actions = ["0", "1", "2"]
|
actions = ["0", "1", "2"]
|
||||||
response = chain.run(
|
response = chain.run(
|
||||||
@ -128,7 +145,10 @@ def test_user_defined_scorer() -> None:
|
|||||||
return score
|
return score
|
||||||
|
|
||||||
chain = pick_best_chain.PickBest.from_llm(
|
chain = pick_best_chain.PickBest.from_llm(
|
||||||
llm=llm, prompt=PROMPT, selection_scorer=CustomSelectionScorer()
|
llm=llm,
|
||||||
|
prompt=PROMPT,
|
||||||
|
selection_scorer=CustomSelectionScorer(),
|
||||||
|
feature_embedder=pick_best_chain.PickBestFeatureEmbedder(model=MockEncoder()),
|
||||||
)
|
)
|
||||||
actions = ["0", "1", "2"]
|
actions = ["0", "1", "2"]
|
||||||
response = chain.run(
|
response = chain.run(
|
||||||
@ -239,7 +259,11 @@ def test_default_embeddings_mixed_w_explicit_user_embeddings() -> None:
|
|||||||
def test_default_no_scorer_specified() -> None:
|
def test_default_no_scorer_specified() -> None:
|
||||||
_, PROMPT = setup()
|
_, PROMPT = setup()
|
||||||
chain_llm = FakeListChatModel(responses=[100])
|
chain_llm = FakeListChatModel(responses=[100])
|
||||||
chain = pick_best_chain.PickBest.from_llm(llm=chain_llm, prompt=PROMPT)
|
chain = pick_best_chain.PickBest.from_llm(
|
||||||
|
llm=chain_llm,
|
||||||
|
prompt=PROMPT,
|
||||||
|
feature_embedder=pick_best_chain.PickBestFeatureEmbedder(model=MockEncoder()),
|
||||||
|
)
|
||||||
response = chain.run(
|
response = chain.run(
|
||||||
User=rl_chain.BasedOn("Context"),
|
User=rl_chain.BasedOn("Context"),
|
||||||
action=rl_chain.ToSelectFrom(["0", "1", "2"]),
|
action=rl_chain.ToSelectFrom(["0", "1", "2"]),
|
||||||
@ -254,7 +278,10 @@ def test_default_no_scorer_specified() -> None:
|
|||||||
def test_explicitly_no_scorer() -> None:
|
def test_explicitly_no_scorer() -> None:
|
||||||
llm, PROMPT = setup()
|
llm, PROMPT = setup()
|
||||||
chain = pick_best_chain.PickBest.from_llm(
|
chain = pick_best_chain.PickBest.from_llm(
|
||||||
llm=llm, prompt=PROMPT, selection_scorer=None
|
llm=llm,
|
||||||
|
prompt=PROMPT,
|
||||||
|
selection_scorer=None,
|
||||||
|
feature_embedder=pick_best_chain.PickBestFeatureEmbedder(model=MockEncoder()),
|
||||||
)
|
)
|
||||||
response = chain.run(
|
response = chain.run(
|
||||||
User=rl_chain.BasedOn("Context"),
|
User=rl_chain.BasedOn("Context"),
|
||||||
@ -274,6 +301,7 @@ def test_auto_scorer_with_user_defined_llm() -> None:
|
|||||||
llm=llm,
|
llm=llm,
|
||||||
prompt=PROMPT,
|
prompt=PROMPT,
|
||||||
selection_scorer=rl_chain.AutoSelectionScorer(llm=scorer_llm),
|
selection_scorer=rl_chain.AutoSelectionScorer(llm=scorer_llm),
|
||||||
|
feature_embedder=pick_best_chain.PickBestFeatureEmbedder(model=MockEncoder()),
|
||||||
)
|
)
|
||||||
response = chain.run(
|
response = chain.run(
|
||||||
User=rl_chain.BasedOn("Context"),
|
User=rl_chain.BasedOn("Context"),
|
||||||
@ -288,7 +316,11 @@ def test_auto_scorer_with_user_defined_llm() -> None:
|
|||||||
@pytest.mark.requires("vowpal_wabbit_next", "sentence_transformers")
|
@pytest.mark.requires("vowpal_wabbit_next", "sentence_transformers")
|
||||||
def test_calling_chain_w_reserved_inputs_throws() -> None:
|
def test_calling_chain_w_reserved_inputs_throws() -> None:
|
||||||
llm, PROMPT = setup()
|
llm, PROMPT = setup()
|
||||||
chain = pick_best_chain.PickBest.from_llm(llm=llm, prompt=PROMPT)
|
chain = pick_best_chain.PickBest.from_llm(
|
||||||
|
llm=llm,
|
||||||
|
prompt=PROMPT,
|
||||||
|
feature_embedder=pick_best_chain.PickBestFeatureEmbedder(model=MockEncoder()),
|
||||||
|
)
|
||||||
with pytest.raises(ValueError):
|
with pytest.raises(ValueError):
|
||||||
chain.run(
|
chain.run(
|
||||||
User=rl_chain.BasedOn("Context"),
|
User=rl_chain.BasedOn("Context"),
|
||||||
|
Loading…
Reference in New Issue
Block a user