Spaces:
Runtime error
Runtime error
| """Test functionality related to natbot.""" | |
| from typing import Any, List, Mapping, Optional | |
| from pydantic import BaseModel | |
| from langchain.chains.natbot.base import NatBotChain | |
| from langchain.llms.base import LLM | |
| class FakeLLM(LLM, BaseModel): | |
| """Fake LLM wrapper for testing purposes.""" | |
| def _call(self, prompt: str, stop: Optional[List[str]] = None) -> str: | |
| """Return `foo` if longer than 10000 words, else `bar`.""" | |
| if len(prompt) > 10000: | |
| return "foo" | |
| else: | |
| return "bar" | |
| def _llm_type(self) -> str: | |
| """Return type of llm.""" | |
| return "fake" | |
| def _identifying_params(self) -> Mapping[str, Any]: | |
| return {} | |
| def test_proper_inputs() -> None: | |
| """Test that natbot shortens inputs correctly.""" | |
| nat_bot_chain = NatBotChain(llm=FakeLLM(), objective="testing") | |
| url = "foo" * 10000 | |
| browser_content = "foo" * 10000 | |
| output = nat_bot_chain.execute(url, browser_content) | |
| assert output == "bar" | |
| def test_variable_key_naming() -> None: | |
| """Test that natbot handles variable key naming correctly.""" | |
| nat_bot_chain = NatBotChain( | |
| llm=FakeLLM(), | |
| objective="testing", | |
| input_url_key="u", | |
| input_browser_content_key="b", | |
| output_key="c", | |
| ) | |
| output = nat_bot_chain.execute("foo", "foo") | |
| assert output == "bar" | |