From f5988c0bb457ae36f055aa3c86f8f6b5a66c3da1 Mon Sep 17 00:00:00 2001 From: Li Yin Date: Wed, 10 Jul 2024 16:20:23 -0700 Subject: [PATCH 01/11] improve stepout to directly use output data type from function call as action and add ways for DatClass to handle generic data types, adapted react agent --- README.md | 4 +- docs/source/apis/index.rst | 3 +- .../lightrag_design_philosophy.rst | 2 +- lightrag/.gitignore | 2 +- lightrag/README.md | 2 +- lightrag/lightrag/components/agent/react.py | 74 ++++++------ .../components/output_parsers/outputs.py | 1 - lightrag/lightrag/core/base_data_class.py | 7 +- lightrag/lightrag/core/functional.py | 51 ++++++-- lightrag/lightrag/core/types.py | 80 ++++++++----- lightrag/test.py | 19 +++ lightrag/tests/test_lazy_import.py | 32 +++++ lightrag/tests/test_model_client.py | 40 +++++++ use_cases/yaml_output.py | 109 +++++++++++++++++- 14 files changed, 340 insertions(+), 86 deletions(-) create mode 100644 lightrag/test.py create mode 100644 lightrag/tests/test_lazy_import.py create mode 100644 lightrag/tests/test_model_client.py diff --git a/README.md b/README.md index 9bf7f67f..640d2cc2 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ [![](https://dcbadge.vercel.app/api/server/zt2mTPcu?compact=true&style=flat)](https://discord.gg/zt2mTPcu) -### ⚡ The PyTorch Library for Large Language Model Applications ⚡ +### ⚡ The PyTorch-like Library for Large Language Model Applications ⚡ *LightRAG* helps developers with both building and optimizing *Retriever-Agent-Generator* pipelines. It is *light*, *modular*, and *robust*, with a 100% readable codebase. @@ -20,7 +20,7 @@ It is *light*, *modular*, and *robust*, with a 100% readable codebase. # Why LightRAG? -LLMs are like water; they can almost do anything, from GenAI applications such as chatbots, translation, summarization, code generation, and autonomous agents to classical NLP tasks like text classification and named entity recognition. They interact with the world beyond the model’s internal knowledge via retrievers, memory, and tools (function calls). Each use case is unique in its data, business logic, and user experience. +LLMs are like water; they can be shaped into anything, from GenAI applications such as chatbots, translation, summarization, code generation, and autonomous agents to classical NLP tasks like text classification and named entity recognition. They interact with the world beyond the model’s internal knowledge via retrievers, memory, and tools (function calls). Each use case is unique in its data, business logic, and user experience. Because of this, no library can provide out-of-the-box solutions. Users must build toward their own use case. This requires the library to be modular, robust, and have a clean, readable codebase. The only code you should put into production is code you either 100% trust or are 100% clear about how to customize and iterate. diff --git a/docs/source/apis/index.rst b/docs/source/apis/index.rst index 362cfcc2..d3adfe41 100644 --- a/docs/source/apis/index.rst +++ b/docs/source/apis/index.rst @@ -104,10 +104,11 @@ Utils .. autosummary:: utils.logger + utils.setup_env + utils.lazy_import utils.serialization utils.config utils.registry - utils.setup_env .. toctree:: diff --git a/docs/source/developer_notes/lightrag_design_philosophy.rst b/docs/source/developer_notes/lightrag_design_philosophy.rst index e7242a0d..faee40f1 100644 --- a/docs/source/developer_notes/lightrag_design_philosophy.rst +++ b/docs/source/developer_notes/lightrag_design_philosophy.rst @@ -50,7 +50,7 @@ The above principles are distilled from our experiences and continuous learning **Developers are the ultimate heroes** -LLMs are like `water`, they can almost do anything, from GenAI applications such as `chatbot`, `translation`, `summarization`, `code generation`, `autonomous agent` to classical NLP tasks like `text classification`, and `named entity recognition`. +LLMs are like `water`, they can be shaped into anything, from GenAI applications such as `chatbot`, `translation`, `summarization`, `code generation`, `autonomous agent` to classical NLP tasks like `text classification`, and `named entity recognition`. They interact with the world beyond the model's internal knowledge via `retriever`, `memory`, and `tools` (`function calls`). Each use case is unique in its data, its business logic, and its unique user experience. diff --git a/lightrag/.gitignore b/lightrag/.gitignore index 799780fd..53607e8b 100644 --- a/lightrag/.gitignore +++ b/lightrag/.gitignore @@ -1 +1 @@ -test*.py +tests/log diff --git a/lightrag/README.md b/lightrag/README.md index 0207856a..e4ce3222 100644 --- a/lightrag/README.md +++ b/lightrag/README.md @@ -1,7 +1,7 @@ ![LightRAG Logo](https://raw.githubusercontent.com/SylphAI-Inc/LightRAG/main/docs/source/_static/images/LightRAG-logo-doc.jpeg) -### ⚡ The PyTorch Library for Large Language Model Applications ⚡ +### ⚡ The PyTorch-like Library for Large Language Model Applications ⚡ *LightRAG* helps developers with both building and optimizing *Retriever-Agent-Generator (RAG)* pipelines. It is *light*, *modular*, and *robust*. diff --git a/lightrag/lightrag/components/agent/react.py b/lightrag/lightrag/components/agent/react.py index 6b37b6bd..74185fad 100644 --- a/lightrag/lightrag/components/agent/react.py +++ b/lightrag/lightrag/components/agent/react.py @@ -23,6 +23,7 @@ log = logging.getLogger(__name__) + DEFAULT_REACT_AGENT_SYSTEM_PROMPT = r"""<> {# role/task description #} You are a helpful assistant. @@ -78,7 +79,7 @@ {% for history in step_history %} Step {{ loop.index }}. { - "thought": "{{history.thought}}", + "thought": "{{history.action.thought}}", "action": "{{history.action.action}}", } "Observation": "{{history.observation}}" @@ -164,7 +165,9 @@ def __init__( func=self._finish, answer="final answer: 'answer'", ) - output_parser = JsonOutputParser(data_class=ouput_data_class, example=example) + output_parser = JsonOutputParser( + data_class=ouput_data_class, examples=[example], return_data_class=True + ) prompt_kwargs = { "tools": self.tool_manager.yaml_definitions, "output_format_str": output_parser.format_instructions(), @@ -217,7 +220,7 @@ def finish(answer: str) -> str: if self.add_llm_as_fallback: tools.append(llm_tool) tools.append(finish) - self.tool_manager = ToolManager(tools=tools) + self.tool_manager: ToolManager = ToolManager(tools=tools) def reset(self): r"""Reset the agent to start a new query.""" @@ -230,12 +233,10 @@ def _execute_action(self, action_step: StepOutput) -> Optional[StepOutput]: action = action_step.action try: - fun: Function = self.tool_manager.parse_function_call_expr(action) - result: FunctionOutput = self.tool_manager.execute_function(fun) + fun: Function = self.tool_manager.parse_func_expr(action) + result: FunctionOutput = self.tool_manager.execute_func(fun) # TODO: optimize the action_step - action_step.fun_name = fun.name - action_step.fun_args = fun.args - action_step.fun_kwargs = fun.kwargs + action_step.function = fun action_step.observation = result.output return action_step except Exception as e: @@ -246,10 +247,9 @@ def _execute_action(self, action_step: StepOutput) -> Optional[StepOutput]: def _run_one_step(self, step: int, prompt_kwargs: Dict, model_kwargs: Dict) -> str: """ - Run one step of the agent. + Run one step of the agent. Plan and execute the action for the step. """ - # step_history is the only per-query variable, and should not be controlled by the user - # add the step_history to the prompt_kwargs + step_output: StepOutput = StepOutput(step=step) prompt_kwargs["step_history"] = self.step_history log.debug( @@ -260,27 +260,28 @@ def _run_one_step(self, step: int, prompt_kwargs: Dict, model_kwargs: Dict) -> s response: GeneratorOutput = self.planner( prompt_kwargs=prompt_kwargs, model_kwargs=model_kwargs ) - step_output: StepOutput = None - try: - fun_expr: FunctionExpression = FunctionExpression.from_dict(response.data) - step_output = StepOutput( - step=step, thought=fun_expr.thought, action=fun_expr - ) - # print the func expr - log.debug(f"Step {step}: {fun_expr}") - - # execute the action - if step_output and step_output.action: - step_output = self._execute_action(step_output) - printc(f"Step {step}: \n{step_output}\n_______\n", color="blue") - else: - log.error(f"Failed to parse response for step {step}") - except Exception as e: - log.error(f"Error running step {step}: {e}") - if step_output is None: - step_output = StepOutput(step=step, thought="", action="") - else: - step_output.observation = f"Error running step {step}: {e}" + if response.error: + error_msg = f"Error planning step {step}: {response.error}" + step_output.observation = error_msg + log.error(error_msg) + else: + try: + fun_expr: FunctionExpression = response.data + step_output.action = fun_expr + # print the func expr + log.debug(f"Step {step}: {fun_expr}") + + # execute the action + if step_output and step_output.action: + step_output = self._execute_action(step_output) + printc(f"Step {step}: \n{step_output}\n_______\n", color="blue") + else: + log.error(f"Failed to parse response for step {step}") + except Exception as e: + error_msg = f"Error parsing response for step {step}: {e}" + step_output.observation = error_msg + log.error(error_msg) + self.step_history.append(step_output) return response @@ -300,8 +301,8 @@ def call( try: self._run_one_step(step, prompt_kwargs, model_kwargs) if ( - self.step_history[-1].fun_name - and self.step_history[-1].fun_name == "finish" + self.step_history[-1].function + and self.step_history[-1].function.name == "finish" ): break except Exception as e: @@ -315,15 +316,16 @@ def call( def _extra_repr(self) -> str: s = f"max_steps={self.max_steps}, add_llm_as_fallback={self.add_llm_as_fallback}" - s += super()._extra_repr() return s if __name__ == "__main__": - from components.model_client import GroqAPIClient + from lightrag.components.model_client import GroqAPIClient from lightrag.core.types import ModelClientType from lightrag.utils import setup_env + # get_logger() + setup_env() def multiply(a: int, b: int) -> int: diff --git a/lightrag/lightrag/components/output_parsers/outputs.py b/lightrag/lightrag/components/output_parsers/outputs.py index 92ac9975..04cc3bb4 100644 --- a/lightrag/lightrag/components/output_parsers/outputs.py +++ b/lightrag/lightrag/components/output_parsers/outputs.py @@ -239,7 +239,6 @@ def __init__( self.output_processors = JsonParser() self.examples = examples - # TODO: make exclude works with both def format_instructions( self, format_type: Optional[DataClassFormatType] = None, diff --git a/lightrag/lightrag/core/base_data_class.py b/lightrag/lightrag/core/base_data_class.py index 6cbd33b2..c5d576ae 100644 --- a/lightrag/lightrag/core/base_data_class.py +++ b/lightrag/lightrag/core/base_data_class.py @@ -363,7 +363,9 @@ def to_schema(cls, exclude: ExcludeType = None) -> Dict[str, Dict[str, Any]]: excluded = deepcopy(exclude) else: excluded = None - return get_dataclass_schema(cls, excluded) + return get_dataclass_schema( + cls, excluded, getattr(cls, "__type_var_map__", None) + ) @classmethod def to_schema_str(cls, exclude: ExcludeType = None) -> str: @@ -476,6 +478,9 @@ def format_example_str( else: raise ValueError(f"Unsupported format type: {format_type}") + # TODO:support Generic[Type[T]] for the type of fields + # it will automatically use __type_var_map__ attribute + """Reserved for Agent to automatically create a dataclass and to manipulate the code""" diff --git a/lightrag/lightrag/core/functional.py b/lightrag/lightrag/core/functional.py index 83417816..7916ea3b 100644 --- a/lightrag/lightrag/core/functional.py +++ b/lightrag/lightrag/core/functional.py @@ -318,20 +318,36 @@ def is_dataclass_instance(obj): return hasattr(obj, "__dataclass_fields__") -def get_type_schema(type_obj, exclude: ExcludeType = None) -> str: +def get_type_schema( + type_obj, + exclude: ExcludeType = None, + type_var_map: Optional[Dict] = None, +) -> str: """Retrieve the type name, handling complex and nested types.""" origin = get_origin(type_obj) + type_var_map = type_var_map or {} + + # Replace type variables with their actual types to support Generic[T/To] + if hasattr(type_obj, "__origin__") and type_obj.__origin__ is not None: + type_obj = type_var_map.get(type_obj.__origin__, type_obj) + else: + type_obj = type_var_map.get(type_obj, type_obj) + if origin is Union: # Handle Optional[Type] and other unions args = get_args(type_obj) - types = [get_type_schema(arg, exclude) for arg in args if arg is not type(None)] + types = [ + get_type_schema(arg, exclude, type_var_map) + for arg in args + if arg is not type(None) + ] return ( f"Optional[{types[0]}]" if len(types) == 1 else f"Union[{', '.join(types)}]" ) elif origin in {List, list}: args = get_args(type_obj) if args: - inner_type = get_type_schema(args[0], exclude) + inner_type = get_type_schema(args[0], exclude, type_var_map) return f"List[{inner_type}]" else: return "List" @@ -339,34 +355,42 @@ def get_type_schema(type_obj, exclude: ExcludeType = None) -> str: elif origin in {Dict, dict}: args = get_args(type_obj) if args and len(args) >= 2: - key_type = get_type_schema(args[0], exclude) - value_type = get_type_schema(args[1], exclude) + key_type = get_type_schema(args[0], exclude, type_var_map) + value_type = get_type_schema(args[1], exclude, type_var_map) return f"Dict[{key_type}, {value_type}]" else: return "Dict" elif origin in {Set, set}: args = get_args(type_obj) - return f"Set[{get_type_schema(args[0], exclude)}]" if args else "Set" + return ( + f"Set[{get_type_schema(args[0],exclude, type_var_map)}]" if args else "Set" + ) elif origin is Sequence: args = get_args(type_obj) - return f"Sequence[{get_type_schema(args[0], exclude)}]" if args else "Sequence" + return ( + f"Sequence[{get_type_schema(args[0], exclude,type_var_map)}]" + if args + else "Sequence" + ) elif origin in {Tuple, tuple}: args = get_args(type_obj) if args: - return f"Tuple[{', '.join(get_type_schema(arg, exclude) for arg in args)}]" + return f"Tuple[{', '.join(get_type_schema(arg,exclude,type_var_map) for arg in args)}]" return "Tuple" elif is_dataclass(type_obj): # Recursively handle nested dataclasses - output = str(get_dataclass_schema(type_obj, exclude)) + output = str(get_dataclass_schema(type_obj, exclude, type_var_map)) return output return type_obj.__name__ if hasattr(type_obj, "__name__") else str(type_obj) def get_dataclass_schema( - cls, exclude: ExcludeType = None + cls, + exclude: ExcludeType = None, + type_var_map: Optional[Dict] = None, ) -> Dict[str, Dict[str, object]]: """Generate a schema dictionary for a dataclass including nested structures. @@ -374,11 +398,14 @@ def get_dataclass_schema( 2. Support nested dataclasses, even with generics like List, Dict, etc. 3. Support metadata in the dataclass fields. """ + if not is_dataclass(cls): raise ValueError( "Provided class is not a dataclass, please decorate your class with @dataclass" ) + type_var_map = type_var_map or {} + schema = {"type": cls.__name__, "properties": {}, "required": []} # get the exclude list for the current class current_exclude = exclude.get(cls.__name__, []) if exclude else [] @@ -386,7 +413,9 @@ def get_dataclass_schema( if f.name in current_exclude: continue # prepare field schema, it weill be done recursively for nested dataclasses - field_schema = {"type": get_type_schema(f.type, exclude)} + + field_type = type_var_map.get(f.type, f.type) + field_schema = {"type": get_type_schema(field_type, exclude, type_var_map)} # check required field is_required = _is_required_field(f) diff --git a/lightrag/lightrag/core/types.py b/lightrag/lightrag/core/types.py index efcea9a7..deac261b 100644 --- a/lightrag/lightrag/core/types.py +++ b/lightrag/lightrag/core/types.py @@ -13,6 +13,7 @@ Literal, Callable, Awaitable, + Type, ) from collections import OrderedDict from dataclasses import ( @@ -43,6 +44,7 @@ logger = logging.getLogger(__name__) T_co = TypeVar("T_co", covariant=True) +T = TypeVar("T") # invariant type ####################################################################################### @@ -318,6 +320,13 @@ def add(a, b): ) +_action_desc = """FuncName() \ +Valid function call expression. \ +Example: "FuncName(a=1, b=2)" \ +Follow the data type specified in the function parameters.\ +e.g. for Type object with x,y properties, use "ObjectType(x=1, y=2)""" + + @dataclass class FunctionExpression(DataClass): __doc__ = r"""The data modeling of a function expression for a call, including the name and arguments. @@ -357,13 +366,7 @@ def add(a, b): action: str = field( default_factory=required_field, # metadata={"desc": "FuncName(, )"}, - metadata={ - "desc": """FuncName() \ - Valid function call expression. \ - Example: "FuncName(a=1, b=2)" \ - Follow the data type specified in the function parameters.\ - e.g. for Type object with x,y properties, use "ObjectType(x=1, y=2)""" - }, + metadata={"desc": _action_desc}, ) @classmethod @@ -429,34 +432,57 @@ class FunctionOutput(DataClass): # Data modeling for agent component ###################################################################################### @dataclass -class StepOutput(DataClass): - __doc__ = r"""The output of a single step in the agent.""" +class StepOutput(DataClass, Generic[T]): + __doc__ = r"""The output of a single step in the agent. Suits for serial planning agent such as React""" step: int = field( default=0, metadata={"desc": "The order of the step in the agent"} ) - thought: Optional[str] = field( - default="", metadata={"desc": "The thought of the agent in the step"} - ) - action: str = field( - default="", metadata={"desc": "The action of the agent in the step"} - ) - fun_name: Optional[str] = field( - default=None, metadata={"desc": "The function named parsed from action"} - ) - fun_args: Optional[List[Any]] = field( - default=None, - metadata={"desc": "The function positional arguments parsed from action"}, + + # This action can be in Function, or Function Exptression, or just str + # it includes the thought and action already + # directly the output from planner LLMs + action: T = field( + default=None, metadata={"desc": "The action the agent takes at this step"} ) - fun_kwargs: Optional[Dict[str, Any]] = field( - default=None, - metadata={"desc": "The function keyword arguments parsed from action"}, + + function: Optional[Function] = field( + default=None, metadata={"desc": "The parsed function from the action"} ) + observation: Optional[str] = field( - default=None, metadata={"desc": "The result of the action"} + default=None, metadata={"desc": "The execution result shown for this action"} ) - def __str__(self): - return f"Thought {self.step}: {self.thought}\nAction {self.step}: {self.action}\nObservation {self.step}: {self.observation}" + @classmethod + def with_action_type(cls, action_type: Type[T]) -> Type["StepOutput[T]"]: + """ + Create a new StepOutput class with the specified action type. + + Use this if you want to create schema for StepOutput with a specific action type. + + Args: + action_type (Type[T]): The type to set for the action attribute. + + Returns: + Type[StepOutput[T]]: A new subclass of StepOutput with the specified action type. + + Example: + + .. code-block:: python + + from lightrag.core.types import StepOutput, FunctionExpression + + StepOutputWithFunctionExpression = StepOutput.with_action_type(FunctionExpression) + """ + # Create a new type variable map + type_var_map = {T: action_type} + + # Create a new subclass with the updated type + new_cls = type(cls.__name__, (cls,), {"__type_var_map__": type_var_map}) + + # Update the __annotations__ to reflect the new type of action + new_cls.__annotations__["action"] = action_type + return new_cls ####################################################################################### diff --git a/lightrag/test.py b/lightrag/test.py new file mode 100644 index 00000000..0a1ef43a --- /dev/null +++ b/lightrag/test.py @@ -0,0 +1,19 @@ +from lightrag.core.types import StepOutput, FunctionExpression +from dataclasses import dataclass + + +@dataclass +class MyStepOutput(StepOutput[FunctionExpression]): + pass + + +StepOutputClass = StepOutput.with_action_type(FunctionExpression) +schema = StepOutputClass.to_schema() + +print(schema) + +instance = StepOutput( + step=0, action=FunctionExpression(thought="hello", action="print") +) + +print(instance) diff --git a/lightrag/tests/test_lazy_import.py b/lightrag/tests/test_lazy_import.py new file mode 100644 index 00000000..90dc4d14 --- /dev/null +++ b/lightrag/tests/test_lazy_import.py @@ -0,0 +1,32 @@ +from types import ModuleType +import pytest +import unittest +from lightrag.utils.lazy_import import safe_import + + +class TestSafeImport(unittest.TestCase): + def test_import_installed_package(self): + module = safe_import("numpy", "Please install math with: pip install numpy") + self.assertIsInstance( + module, ModuleType, f"Expected module type, got {type(module)}" + ) + self.assertTrue( + hasattr(module, "__version__"), + "Module 'numpy' should have attribute '__version__'", + ) + + def test_import_nonexistent_package(self): + with self.assertRaises(ImportError) as cm: + safe_import( + "nonexistent_package", + "Please install nonexistent_package with: pip install nonexistent_package", + ) + self.assertIn( + "Please install nonexistent_package with: pip install nonexistent_package", + str(cm.exception), + (f"Expected error message not found in {str(cm.exception)}"), + ) + + +if __name__ == "__main__": + pytest.main() diff --git a/lightrag/tests/test_model_client.py b/lightrag/tests/test_model_client.py new file mode 100644 index 00000000..5b21760b --- /dev/null +++ b/lightrag/tests/test_model_client.py @@ -0,0 +1,40 @@ +from typing import Any +import unittest +from unittest.mock import patch + +from lightrag.components.model_client import OpenAIClient as OpenAIClientLazyImport + + +class TestLazyImportSubclassing(unittest.TestCase): + def test_subclassing_raises_error(self): + with self.assertRaises(TypeError): + + class InvalidCustomizeOpenAIClient(OpenAIClientLazyImport): + def __init__(self): + super().__init__() + + def parse_chat_completion(self, completion: Any) -> Any: + """Parse the completion to a str.""" + print(f"completion: {completion}") + return self.chat_completion_parser(completion) + + InvalidCustomizeOpenAIClient() + + @patch.dict("os.environ", {"OPENAI_API_KEY": "test_api_key"}) + def test_correct_subclassing(self): + from lightrag.components.model_client.openai_client import OpenAIClient + + class CorrectCustomizeOpenAIClient(OpenAIClient): + def __init__(self): + super().__init__() + + def parse_chat_completion(self, completion: Any) -> Any: + """Parse the completion to a str.""" + print(f"completion: {completion}") + return self.chat_completion_parser(completion) + + CorrectCustomizeOpenAIClient() + + +if __name__ == "__main__": + unittest.main() diff --git a/use_cases/yaml_output.py b/use_cases/yaml_output.py index 0a26367c..7463028d 100644 --- a/use_cases/yaml_output.py +++ b/use_cases/yaml_output.py @@ -3,6 +3,7 @@ from lightrag.components.model_client import GroqAPIClient from lightrag.components.output_parsers import YamlOutputParser from dataclasses import dataclass +from lightrag.utils import setup_env from lightrag.core.base_data_class import DataClass, field @@ -20,17 +21,18 @@ class JokeOutput(DataClass): punchline="Because he was outstanding in his field.", ) +setup_env() + +# Our parser not only helps format the output format, but also examples class JokeGenerator(Component): def __init__(self): super().__init__() - yaml_parser = YamlOutputParser(data_class=JokeOutput, example=joke_example) + yaml_parser = YamlOutputParser(data_class=JokeOutput, examples=[joke_example]) self.generator = Generator( model_client=GroqAPIClient(), model_kwargs={"model": "llama3-8b-8192", "temperature": 1.0}, - preset_prompt_kwargs={ - "output_format_str": yaml_parser.format_instructions() - }, + prompt_kwargs={"output_format_str": yaml_parser.format_instructions()}, output_processors=yaml_parser, ) @@ -54,3 +56,102 @@ def call(self, query: str, model_kwargs: dict = {}) -> JokeOutput: answer = joke_generator.call("Tell me two jokes.", model_kwargs={"temperature": 1}) print(answer) print(f"typeof answer: {type(answer)}") + + from langchain_core.output_parsers import ( + JsonOutputParser as LangchainJsonOutputParser, + ) + from langchain_core.pydantic_v1 import BaseModel, Field + from typing import TypeVar, Generic + + T = TypeVar("T") + # 1. we dont include default value in the schema as it is how the program wants to handle it and not the job of llm + # 2. nested class is defined in definitions. + # we directly include in that type, and we should remove the additional "type" and make that part a dict instead of a string. + ours = { + "type": "MyStepOutput", + "properties": { + "step": {"type": "int", "desc": "The order of the step in the agent"}, + "action": { + "type": "{'type': 'FunctionExpression', 'properties': {'thought': {'type': 'Optional[str]', 'desc': 'Why the function is called'}, 'action': {'type': 'str', 'desc': 'FuncName() Valid function call expression. Example: \"FuncName(a=1, b=2)\" Follow the data type specified in the function parameters.e.g. for Type object with x,y properties, use \"ObjectType(x=1, y=2)'}}, 'required': ['action']}", + "desc": "The action the agent takes at this step", + }, + "function": { + "type": "Optional[{'type': 'Function', 'properties': {'thought': {'type': 'Optional[str]', 'desc': 'Why the function is called'}, 'name': {'type': 'str', 'desc': 'The name of the function'}, 'args': {'type': 'Optional[List[object]]', 'desc': 'The positional arguments of the function'}, 'kwargs': {'type': 'Optional[Dict[str, object]]', 'desc': 'The keyword arguments of the function'}}, 'required': []}]", + "desc": "The parsed function from the action", + }, + "observation": { + "type": "Optional[str]", + "desc": "The execution result shown for this action", + }, + }, + "required": [], + } + langchains = { + "properties": { + "setup": { + "title": "Setup", + "description": "question to set up a joke", + "default": "", + "allOf": [{"$ref": "#/definitions/JokeOutput"}], + }, + "punchline": { + "title": "Punchline", + "description": "answer to resolve the joke", + "default": "", + "type": "string", + }, + }, + "definitions": { + "JokeOutput": { + "title": "JokeOutput", + "type": "object", + "properties": { + "setup": { + "title": "Setup", + "default": "", + "desc": "question to set up a joke", + "type": "string", + }, + "punchline": { + "title": "Punchline", + "default": "", + "desc": "answer to resolve the joke", + "type": "string", + }, + }, + } + }, + } + + # subtype: allOf": [{"$ref": "#/definitions/JokeOutput"}]}, + definitions = { + "definitions": { + "JokeOutput": { + "title": "JokeOutput", + "type": "object", + "properties": { + "setup": { + "title": "Setup", + "default": "", + "desc": "question to set up a joke", + "type": "string", + }, + "punchline": { + "title": "Punchline", + "default": "", + "desc": "answer to resolve the joke", + "type": "string", + }, + }, + } + } + } + + class JokeOutputV1(BaseModel, Generic[T]): + setup: JokeOutput = Field(description="question to set up a joke", default="") + punchline: str = Field(description="answer to resolve the joke", default="") + + json_parser = LangchainJsonOutputParser(pydantic_object=JokeOutputV1) + print("langchain instruction") + # failed to detect the generic type of the pydantic object + print(json_parser.get_format_instructions()) From 4c5053de2652208067943585550fd33fcaa50dad Mon Sep 17 00:00:00 2001 From: Li Yin Date: Wed, 10 Jul 2024 18:59:10 -0700 Subject: [PATCH 02/11] cleaned up all react agent code and finished first draft of react agent --- developer_notes/react_note.py | 74 ++++ docs/source/_static/images/query_1.png | Bin 0 -> 145288 bytes docs/source/_static/images/query_2.png | Bin 0 -> 140890 bytes docs/source/developer_notes/agent.rst | 374 +++++++++++++++++++- lightrag/lightrag/components/agent/react.py | 42 +-- 5 files changed, 462 insertions(+), 28 deletions(-) create mode 100644 developer_notes/react_note.py create mode 100644 docs/source/_static/images/query_1.png create mode 100644 docs/source/_static/images/query_2.png diff --git a/developer_notes/react_note.py b/developer_notes/react_note.py new file mode 100644 index 00000000..f5d68979 --- /dev/null +++ b/developer_notes/react_note.py @@ -0,0 +1,74 @@ +from lightrag.components.agent import ReActAgent +from lightrag.core import Generator, ModelClientType, ModelClient +from lightrag.utils import setup_env + +setup_env() + + +# Define tools +def multiply(a: int, b: int) -> int: + """ + Multiply two numbers. + """ + return a * b + + +def add(a: int, b: int) -> int: + """ + Add two numbers. + """ + return a + b + + +def divide(a: float, b: float) -> float: + """ + Divide two numbers. + """ + return float(a) / b + + +llama3_model_kwargs = { + "model": "llama3-70b-8192", # llama3 70b works better than 8b here. + "temperature": 0.0, +} +gpt_model_kwargs = { + "model": "gpt-3.5-turbo", + "temperature": 0.0, +} + + +def test_react_agent(model_client: ModelClient, model_kwargs: dict): + tools = [multiply, add, divide] + queries = [ + "What is the capital of France? and what is 465 times 321 then add 95297 and then divide by 13.2?", + "Give me 5 words rhyming with cool, and make a 4-sentence poem using them", + ] + # define a generator without tools for comparison + + generator = Generator( + model_client=model_client, + model_kwargs=model_kwargs, + ) + + react = ReActAgent( + max_steps=6, + add_llm_as_fallback=True, + tools=tools, + model_client=model_client, + model_kwargs=model_kwargs, + ) + # print(react) + + for query in queries: + print(f"Query: {query}") + agent_response = react.call(query) + llm_response = generator.call(prompt_kwargs={"input_str": query}) + print(f"Agent response: {agent_response}") + print(f"LLM response: {llm_response}") + print("") + + +if __name__ == "__main__": + test_react_agent(ModelClientType.GROQ(), llama3_model_kwargs) + # test_react_agent(ModelClientType.OPENAI(), gpt_model_kwargs) + print("Done") diff --git a/docs/source/_static/images/query_1.png b/docs/source/_static/images/query_1.png new file mode 100644 index 0000000000000000000000000000000000000000..53e4d6d2b6ac04cf3dd4805d8764b7aafd3146f0 GIT binary patch literal 145288 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⪼Cad^0->mnsoQirV)2H}3 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 z zZM?9VE+nYgmQK4xgIwI)ew6cu;)(c4KEhHFi#|YyRD$aa0y%XP>K0qof~LbC@w;Fo-r%zhQeY$JuebZJ&6CI%zr{#VDI+aQM6MB0Wecw)e-Y!Ae{j~Qar6=;K2qit9o z@86Z;f8$BFpIN07eyefA&!PAHojzUvI#zGcFT~)CE>&fw!k@ovI<;uUH=;fz@;mJj z=O(An()>ybXt|QHUDx0D(})3;LuXHxwB%>2Nn7Z!*5u>0N`&GvTXUIhO_ICS#NJeK zwc4j?a>Fo*NP{9&1^M1W<~i2+a@jyqlnBy^lGyxxv=(TD#>9Hwy^qyK_^Psv$Z>cA zzYZr&s$96OF9cYLT%wW(^lVTjENF0fgIA1`K~KdiKs+6R7wAF~RO@lk3+f}sg%0v* z)FB6h3xfAAq)8_% zvUZoIMU~qtj_+JK9WxkIQ0!#9P&=hx)95;M?ru#*^g6s)yI~+L#eW}H2-5<4ijv(a zd{dSqU~eR&+h9;SmBX~Z-df}6tHr6F{<4O5)Cd`*J86s$O~W@nb*;Haeb7cZ8RsQr zH3Jcvu%8dDrRL5G3rD z>z-u*F-doLe;@h|4*l_ z3}rb(wpo|_me-EBwLq!yQK^6eZ`uvr|6%OSqoMBq{_(3-izSytiK&PX%35M370Q|{ zlXa5pB(j^OlI&zl)+zfEW6N$PyNJoYn;82x#yV#GzFqg{KHuMczMuPdKIb^j;UCAm zU$5u#*xmw3wGx4X5#BcZ!j<&=*c_3<`%lYkQvlD3) z^N!j*xWk+@kH0ww6ruGM{ zkxNa}(hzUufH z(ynA`qny*tif$hIT6)+(;PR2)IdA{6t>Dw1-yUKd4zV z3~A%J%h{j8Wu?87>~)1dz%bxETUKK_>6I9x$*o^3;b@r%SYZdU$hM3{4d*-@{abGL z(i>xX&8w4wFD%heBx#~Vgr9e1A_pdY?^?j@Z?HEPb}C`;vrsER6DM6?GeB&)gQA_= z3*0sy)%akl^JcX^@xhg;q#;Q7;F%}?$tUpRQRo{lThG)B3;ky}ZtHt9d3(=rOjy$+ zWZzto;@=d9n1tyu+fi(-p@^4qisOCq!u&SmF5?i{!-_9`!pur1s&!?)OWcCis|^pZ z;5)+C1lUJ-Ff`{I1;6$`ecxKLu}WIynYoZ5H;ryN6RCXE>zXv{nJGvmW3$@f!4ltM zJ*$N)Pqyxa=8ZXn(A)IaKi8Yb)P-SQTQQcK|IhIA@78AC^KZYM&y@7Is;;Q^S3oM- zWtu`39+Kdw-Dt1BPxqoVZ9+tjSJej9EG-`a5 z?lkBYGw9FzBFV}m=rniX2}Owiu0(RpMeC_V)eI3V`lAb6D@mFL zDk6GkP6$8q#}*EMlUssSvln|^h!T6gkpPL?i{s&rz9qY01CJ1f6>lMjR!D&uH`eCY zxj4;rH27M={L;;3rwakyXf0uO`y5)Jo8OVqk={OR>1CSE*^XIeDv5lDK!@;z8R#X* zM@ARZ(2@Comxfta% zZ|kHh!F!|}F4hiFmRu9o!3Rc&!Q(D`U$V?GA-C9;>{iTI2f(TA~Q4YIvbg*FjeL9YKJz=LQ1(w-xCv35s4O>uL$6oW^Z118j zNp(|@Pu#gy8#_hB>H!V(tzG>lo0;66mt@hc&`b#!1V!TFX9FEi5|cjhARI z4F<>@AojLF>%i{$wH3sSJBQeCFj=$>49N#1%1Q#Vsf+Tl5hzjmR^%fr4VFq3YlLv3 zEf%_4DIc8~oeGF&FP&jLESE@FO%5s3(54uhctM_&QC1Aw9DH90huBY-eh83R3W_lRXb)K6KgW!3b>Ju)^^=3$6Sxq`P62=AklHh(5Pw*(Gx3-7Y+X{AkF zN&DZ84R=OvsHR`2x^tByvcCtHG`5@e`CMXTIFRFVKQ|pAY>Y9Et}M2E7-_bbQ3_>+ z0$B3j;qcVvI3`HpDmG$U_N3F9dPIW2Yvw}yFFJ*xn@TUom39u@F&ur|BL&MAnay@d=YCb?mVQj-(1_T1 z)=}0hM=J1bLQ*lvVg*{fbi~q}HlK_tUaG5LBVE4n0H5v&YS{VhB_A#(5*)~Zel=A+ zykCs6@YAoLgDLZ6h)G{{2tjIp1LSmNHdTofEi$bYeLY?+iwk-F<5k$cB}wd08h*Fy z7(Q(G(4w95zMN zYO5#k1mxuCgG>H!&qKE?Gn5rfsC`t(Y5Hm@;s$S-o z_*H)Ubd>?rDoBw8=>10GL$?xS!cga*b8~~Y>!PbuK_QA;r$=W_oN6_=u>qPHt!PXd zd`SKp4Nv+L?os)>mUeBdU6Ny=e&?^q>TPfHp$Co}X5P74358j9*EP5$9Y)NG-c8i{ zdz+QXfDO~@Zx>l?WSBI}8~y%r+tpH4j6coW3K)8J*-M7=aE?j$`9Q1%)WChmYsy2} z;VAXi1%T<>_=jN=AGfzhyF{F=%^O>$&)@(`XJr*0Ay>vmTLdb zm44(T4yN|Ek@^9D^nw2#k-H*p&u2y zw9>ZGVN_%+2YVDq_4!qz78{bH__*QA+vEytVk8LLn2W02#wV=D5_XXpE7QwpX~rIc z)lc8T0RYJFrY-L+L(*YmP#NZVhBq3X(>w#^F26Xjxz+jH0xa=pnFGM0}TvR`>G zx5<;K?Rm-={tuV`mgYJ0Zs}EbLk#rAN{RcZk#d_15so&`TYGPpAx;{wTFQiHEm5UV$3u?fAk&%EOeLlYhHg2fPXC5W1sP zCwAi8_0+B7-Tpg0Mn>AqGYT8^pq%X^Cr^t()KWg7R$XATsw6hN`{+#Q-{vDD7d`tU zRmJ~=m3s%8bQClJt8?G#FzLyH1L~VYa8IM)jl(KO;oAdJ%PLC%);zzl%mreKNq|2O zcpR@=4RU5Ffv%@}ndQ3QQDzkGN%}04AV}dFs@Mi(?VY)A+sZ>T=2Cg5aoNkbJt0PM zhK&H~BQSu=3qt+<7NG-_={ro5e3P`j0vT`nNabTY!_yD-zp9`gGIUDsM_UoR@`2lR57r+BNcx7{YvOpfyb8jZ7S zli2k3`LXlSc);S=2a}3_gz~Ii3yH?tRI|+AjXftiplmwp zK~`F7pG8gS2;)52q>|~kq|!I{;y(w1_vF66yIY6Vzsj%YLPW1I=K^uM5cZk)(8?Xi zFoUnfg&~7p%O$xf(l6t*Aug0J^-|Ssz%2+Yc7~Ubha5%s5!+o?A-uiY+Q*x*uXmUC@f25#Z(9L1t`?QggLgmL$|QH-GTvJ~Pwy*KBn#8UnQN zys%w>S959}KZKyKVtk)ilUv@WrID+0er zlBg1$jR{Sb*_*aO6R1N1=6!kZUB(J5XRzr3V$jf@d?BqV6>SY8{M;k9L>`F^jOFN#b?dyvMxJY9w ze%X@5O}YF1r|Im7jiFbQKUkA6QX3sy@&A*Q;H&O&qA8oWoeC*+-op(OpTUjgU zWllg8yJivVZ?iFTpoMwye9Sb5o=_+o{ z7Zr#>Y`m=}f&Gsd&xLXd%diA{$wWtEe&2PJ_y}(-}vi*uFOU+a!J)in@EE#D2{f4()62x^Tvb9-%@wN_I~N`uy(=;nBSDU;P(>7 zg}sXyx&hQu@bp5xUQjtKTOUS&09>yA$pCFUVhi7S%VTx%YX#d8G&7XzR@!l^4x3-* z6?RM!r(Ror!8_jZj^phhb5`J&V$a#12}nn}4lx+R9N%u&WEp50^22-agAbw)@T&F= zUQY>>#c4JH)HvhF-U%qnY_m7cNUp@T`S0{b_CzymV>U=}|DDQ^4C5n2LTKLo`O6z) z+Ni!$4=jv|tiqwD-@eqiK^{zgfX5_z-%2RqJ8AJ_5lCXGYlG>6G#MMgrTfidsIxk< z>CGjfp?61w{bev=;JFC5+_~>d1my0=zG_!=1)X|$-1|?a27r|P%z-JR25t&4+Or`B z@Idz?Jq$P75Gz%m*xH31qWcZKjX6*@D41*2BtY0}5%n_p<^^fdD!wGu>i2Wyk*E%5 zXAqQCwiJwo1katcqD2rI=>`jx%tZWdGlQe?15j&XXNYphkuib-_`!G08$F^peb#Oa zh@Jry8lNS%$3q)6c*+OaoZX##Q0MrDX07;(K&&=Pr{0Sm%&JwNgd9)bBN!!$E!EQ= zk{L$=YL}ihY333goN!rGo>^|MbvY!UAQVSFLPuvTpN)9EgXUo{baAZYbke)0FZ`o^ zKI`^v6~x9pi}ez=%I+)1zppqsYEXeVC@dCB2JmM0oIRd2{2;`Y%5?!uLM1~t7MsMD zXveUT3NQP$OI;>y;;DI&3%!%(VPY0dsxt42kj2cnS!TxPEi?yeoRZs>5+x1yx^2#g zi*l*f6!B4_o~x4&2y~!xqs)E z)d19h5aCZUM520~t9a8u9x+qai%ps#WwP>sfQn1q*|-jyST5;LmW1HPLXFwD)|w2K zE?qyKgvp_myU|9MN&U#)ymRgITeQn6y@C+rdsh>Dp?bVmN`(wDVJH`=2%m}2S4?$r zRAg3?q5T!AsIgg1KPW41!9KE#u~-W@ol*>4*SKiOoH?|rLey9~$Pzzn5N-*uHwT=o zJ(lsX;o7wANok+bFuSDzF=N$=vgw&0Q?9lViBB6NM#Us^_yoM6J-+E?d;E=D$B0kb z9O4nA7}B3FLVw?&2?ktToh-F#ZKPae*W?0aI4LY2&5T%(-uG<0#+0^^@1*{Ad%XD< zkF7|)RpHyetzS>;%uz2E_SherP_JGTYxHUB!WkAfD;%G;`RH>?%6vH7Z?}N+DR13s zoc(~yjK*r2U|Ketz)G)y9oAb3(0FOuT7uUcEn7~bETf6-(PU`8CxJeqbQpB3^c06R zS6vLcqtNRP$1R9$ghstpsP9Lwi;_M9@}yrH_^Ntxpqd7m?Ive}glUzNOwU#q;CT63Si_|sU;et!&i+$(Y{yt;JC3#ATv1=Wv4sAI;Lj@y;;=hW z%$#0E6?<-U925os6q)C^ozVts5&pd04rPVs$1{S%1^A24)zeC}uK)Qd|0<3QQ-zTK3uy&U9X4LnWMUz+qKTWYm}wY8(1)kXcqQoKeUw#ya`U{7 z-Y|JV!9KY~Q($tIbO+$?7192H23ZFK$zFcq8sq5P_lQcSV;`!Uu)xq?;1E)9YY8Hg z9a+!(exKMy1JlP9t(wn8rnxbj4#5d=6parhaePk~pB11BSx5JS=Y}gRHFbqgp@td# ziHe(}vvPxwCCdB-m<45-I=bEU0j(!DNJzwe5?=2eL?Hm=Pz8a7sZYWJCF3%&B*!UH zz|V=nFn!`4(E2 z`D$w8J20>v3@?D)W8oCYoW>T}`%!Y4xwee1TmW)yE(Qe+@<*~QS1~sgzUP{+q}${X z^A`*-H=$c$$!SiuHfPlYgKalXyi&W(bVl{|E{B+kEC28Zv9nQZzkTwrma%$dmhDtJ zt+mkD{$%acqxP$}lPO|f&tI=Y;Z3|u8@?cKn5AK!5miiPqG~p!l{*3^UYgyGgN8s- zE5&@0?p@`6M4qg%J~^F;e}g!29JQY7@=XV}1gI*?-d<1>$S4<=v~X$q-GG?PIBQz1 z)hsl3jKeHz=C`!+>Quc}nh79;DA{UtTkfy2tGBNRg&fWApj`Vx;gVSxIy`dFg<)8bphkG3_pZu?X2jxiV5c3&Eo2YJZ`NHM;P4iq$!BYK`hwHT#|BB`r<6rB8_?~j?F6NrOft_CUPdb_CP5xxbE z!TcoMYTkUzM>-~1X!0;z7P;0TcZL$D0(V3%Bk)=ez#7-d%yu5Z;VRU5d%0kz* z`ivP)GVSVm&56$uoHEZwPe?OfXVW@A7VhzM6ZU{xx2G!VifY)baYd8Eu8Q^%Z~Kv= zA}7+>o;?3dRg$fy>W4jy((|~@bd1s6!M8CQ6|j^)DUytP3FuYDG0a+dYHfH4$)^4ZgO zdtq@uM426K{rWtr1WFdg0bElHp>^iYod9hy7>@-qFZ0!}da3MOoO3klS~7>kAzRL) z(iY5n)ck#OveD^uLqEC zZ4Oe`BKj!S$1KR5-{jKT7KvA-V-m>{Df^@>flLLEXKt*>^B0twlbThuIn=r< zPl?*?s|ajYVI-$s*IC8QFoND)S+`9rlVPr_EGuuzemA=)**3j-(!KcOSy;8@n*8ry z_P|NbHW96U@l#&#gG2Q~I(d`i*k6!jl(feQA*Mucc3L;Q+xN}MN}Ib8lKedG-`k}fKhv;gUM3F`t$IdU zdbY6y1lTM9OU-Gt{b|TJg?s+ImunvgwEvB2TBc<7s_e|fbZ}rO>K2SLmWx_SYMd?u z4}+=G_uD^-g)&DLokqRVb#@4<%yX}w-eeq`D?QA$k>cm&{i?0*(`7h&SID-O3U=jB zA5LLQG@p@w(;yohkTKGb{diKqdEn(;nz!rk7nEk$HYK(5<3`H^*sx6hg21X$;FqPd zXuditlamrfo_*<2{hF3N2OaGV=h!nz%w4x$FaE)2K6@O=J_a&&$(o8$qI8Q2OX{>l zG!Pe89_4oK_z&!r3bcAlyw&J-b5L|7xbGhv&6&Zmc_NCd(YN2vuY+qUhiMbrB{t;) z-}-9XWz$435!Fi$#l8e`&swMBL@@b`*yU(lQ3848!4JHVz7GpiO%kg?V&$#R@q+5P zmXLwbmg0h860;%N2@3Uu+CITq!=E+&kViL5QjfZqzX;dS8e=}~e)l^nvX^qH{v~&S zgup(p(@0tPW@S!NGF7Q>lA&q%v-@Tu5&dbz2vxN3bDe9Ke3byi)uAe>n3uUCn*EHy zT&5`F+Nbu3gDY`d=4hYLY1tyNb86Ngiq8GM&7_T;^B}oa2#?=8Tlmhf2pUfjoaOUE z$`UhIQVMD1`ZQB=_txJ1NUo^YQ`ISe&hFffDnlUO0ZqMJ{s=;h&==1+pZb{+7>}of z!yCQ(JXSK7n5+G)SU5V!0()7D$uqYJR>(ZS@Cxtf;5%e4lDLir-A21oe%XujU%cSPD{qLAu84NJ+PvDGdU z*QUAzXlp%wTS$fe64Lu^way_(*AvM|@*3#c!OXb*qJhRBQ7@vUGP*s&OWE|qH{@nLL#$vc&Jl@{HtvO$z zdU-*P>2y5Y&uv{?pZQd^f)lrm@~YSgNpe3CIlld9u6Zh?@z3(Xn)g*YP{t11zCT6b z%Na~rmUq%NH{nB_VDHoN7pg*7Qfg;!x44E-m0Sj;5)>v-0IVdA>h@e3$o0MVRN(@0 zX-&fE(a&?&l^g1#3@CNm%}_-{R{3fznPj~#4ORVrcQ4IlC>zeq>bpdFTk#l^Ip)I{DmNvrglD{i}wQDw;=7^&Yxxv+fopmllDNc5hn=PtPv;dtKM6&w<7*rs zDa<(<&01W!)qdq1;!CAhOBT0a?4o@tS)7jnOpD=b+T6c(>t-4H#MJ}bSRqZM{TjpP zJ5JKFE6#|ivn}jMYhOb5;-kG8zekQnXRFHan|mM+v_GnrO4n&21)G}gt7~CBr+oSv z-vn<~HnbHC_6JmAY@l`J#+$W4pc2Vi19`yw(kDB$!l#j|sM;>R*8yB-G4;dG@Fipv0yj4y^lFQY|pTV68mV{8k977`aw>VEYhjCX9!#tZbR=K1MWej_yzjMu)LAomWwlm!EHNvEWBsbglVHR*u@TK%e06o{^IxJ5AV_^E21*d=LQ+7(=!V z?ABKfFsp)}A|M7Wx5BYCcc9wKO~^+2Qgz8h3q(+dVF)C5{nzTZZLth3(aRyYF`dy$hE)jYK&&G_w?Iot18 z3CN0EYy%yIrD>2UpZ%N5zXFtmzs)uv5$_6-#bl+9Bjp$E8@v9eRpb3~=kiTMSji#aBxNZ*S|#Z^XZ>B2^6|xe^ME4Dp0Rh|ebAdOqmtyOi;GzU4;<<3g- zxHb{8LAED?u2?YeK^Rf{Wz_ylAm0p_5~nj)Kwd!bOSlAI#Op||#(IMV?4~9V^fEgv zs}8Jnm6^`)*WWQYY2ql$DX(Ag0PJG{w_L(fJ}-*&f_S>0!TZQvY`A!y{7b~o3!BVy zJSC5JrBJW9 zg=ECeMcm%{jhoPYopqeGkijsPXk%pB0)zw2Wo&~S0r2Pns{AGr{fn|#+1Tre8uHTt zxHDZ%D8R#YFYMj-rEq-MCozM@wk0ZYi@s2XC%C`Y2i~d9!naXYVnK)-0*zj*a4r0C zm~L~{Kb(;>)nJnijrIcf-{fI*Xwd4Yxoi8}adO1v;6eU|Xvn4JL@-kM8SM8chL9~Y z=svXKBYEHbK;t(2FO6FV?F=&+2)TQ`8`uDYuQ z^JGz~l?!_d_`|~$`9Bsr_dgtSshFy@EAFfVs*Jb30sAFzLEn>idAZFespf6 z%KqW6Ba9<5g7_N_P`>u)+&b9ctOa#$2G&c?Zz&{A_o=wNXbiiwN}DQZe`t1li`UlS zu;}jv(KU2dBOfDmJ3O!m<#Z8vc7Sys*zEk45*_KkcNCX!+9->IYc8%orDIcEt9hP1 zWrIml4;R}yGWm3{@?&=^;VMo~-+xtMepyyzNZNOJh57!SD7@U^heJ}nVhLB5Uo6Y9?%QB$ zQ=m#HtE;3xMc_ZDs3WB_BIc2w!?udvj$Y1cb{p6IbbS=ybjEmJv`E3)lQ;@(H3nx>ziB@ulZ(%teN zfOb9ofEYcN1*Pnr=|9_G5b!$-%I8;uHY|$^c!&SvAxe#TyvTv|eco5sLu;S8S_v$-h!Wr{W_ZIvp$G3>7axX6l$C;hz z(&?ES4f}t-8(~bvlz*((=*n0>wa!kA$~_UE`U9aPWHECb#!Twt>I@vLlB#9TNnEE} z0GP^=6yf0A(tyPs+djB(?957+SSlBG`sT^$KT~VlV-2uVVgZ)-cP&#snQsjh4C^5B zl$PFnFVTF?I5+vQE^50Yeen9|Z%iCFh`?Ox=Qm*7Pkaqrnc5tiJEDU!;}mP+N{U?^ z9ts)Xxs#%&O4Fdu2HklQXAIw8xP#V(#CCq-V7O0$EM>=*gXM=QfWAQ+(_dX=h6rav z8kQ`f^L5n2s-{ooU6mcjY4}UB z&jh}V}zQX;q%&u>cMbQK>-YW&DS?YCXaXHq)Q zFX)FE7Sm!RH*k^9%!2z8T5>YzuJn{XoWO#w6QuXIlA^F_v&jjF_`w{g zYN%576*TIA>Tp{|e{rK>=goaqIvsRH1h_h-FVrb!*X0b=@ATTe|J8D)XlXe!5~a9k zli)+FL@3l%WS&l``1Rp5ABQ=EU8Esn2aJC$%J?aXG7?Q(y>>*YlrkqV+jYj$qKd*J z-gGPV7v)Rwqn+U#o63skQ@f#mPgjQ2>J`8$$--fVR;#AG&x&WJ^CO-vE%@+?xuU~@AuDb`(6%`poUu5%EhB+a57+K%tE)O|R%o+~ zYP^@U(Qai|sSd37nosr;fD6Q2|Sm1c2JV@wK7Y%rBw_`W; z&89?CvUr6b$J~_W8jX#B-Ms;o?WCEvu6%vUag$t&Gdnh3<_$*tN^gJ%9`HcY;2I>P zRFy@Yz*%lC$f-gR<5hb5^IW&%I-k*))Az@7VAxy9oBJC|2|JPcV<^P_i&&X|(l1_g z9*@qeZ4`Lgo3WP>TR&qlSMJX8IvE>D?gh%>ai~9dXRrK?elZDOxhppva0LOW7{q6f zKm4y}r(2Jh9r7zvyWiirLw*29Dq6>KFghyM;57T3?PjlCS&iV+wkuRXy*qj(fjez; z9y1wkFXD1Ms527@q#xu=7+K?OPrkdW$bF5A(VbIYlVdzZ3@!w}LIkN!-r0tj+Xm5g z^6?Y%5~2q$&3Jt148P}e^yv7*BV$$-pDl+7R)<9X=KhyhxAXKNKa`|Q7GwX%oryMH zwApDFLP<+_4eOTKb{es70TmBJ{iyoCo`CG*5Kgm$|pI(-Z zvxj7qCP&^NR|og9eCz%9uI6u*yZK6ZF{g-xT*UZrc5%7;lS1U_G2H9>iVuw)E=+!a z=~=SDbc_oIMOJb3PD9#`n?o-LKJ30UPdVpv#d6k+sj~>hOg>cebs$ypob3GelWK~= zaeV}I?0U9cLsKWj-*Jnf6UfpT%R_m2%t_X2N}emp-IMZ1D0yrC$l32uFTmbn7%m;S zG>JoWX+iix`*0p_o#eZ(F+zGwFG#K#h6OF@v_W`e|Axh!xv|57N3nQMf@0MF*MI+Q z*qb+rH*2-NFB>(OsE(DmTyQm&6VqJ>#IJ$Lm7p(R3be>XSW0S19p5|r7~p973iqt^ z#OfML+CwBASnJ&ti$!d{xIF#7FDt6+D+9J0d=71rs4ohyVfxzrd<#gH=~$_?xbFS} zmzPnE;QvQztg*Qr11bAr|Kcp;CUo+C&}%}Lv0S>$ecJ;etJ+jzAs}Qms?qXF_GBg4 zZnlKJ8YBdpNRQ)12zgzoxCAO~KxWv_g_5*Piap8mz&}c2F!EoT*+q#@2Gq}mq--GC zBCl*E5&ob*oe>nLHxA~>?|0<;^wY)gGlqhxP_^yNY(GFitz;|GGDq2?fN&D z@O`^pr~4j6E)zORUM$B|IB%U=R-j5;c(ofD)8?>hOZdNf*dqDb8Z1Aem6Z1+yHf>g zk>+f2JDb#hfNSJ7-6UUQETVR~@{n748be(%%={Jpb@;H7nC|nnIXtDKq&;hMP z3G>vy`bOC{O|O@;^otL<_V8&pHds|_TPVQQsI0~B(w~D58y~3Nblr9*(<8wtA8e3o zy;8==DjQa*fA5h1a~EKO*Z8jHN1zPyX2p7jut{12S&aPrlaCdghM_zVF)LPx?7E#+ zzmaq(U13Ghz+=d9VC*i|g*ANMmOlKj<9~ls*IT;qD-T4B!kw1#`r>(5%?USQtI9Gp8SZ>FQxed)|2(8G!)DGrcRVcpU z_Pan#@K3@hkVX@F-7W0;Go|Gd#-k0s>ZgKtNm*t)DH>r%n_0!(K}O*akL730?KzOq z0$d?Oc2MS@mquv(x8!w4ljxv)u0-vGubZW6oz6J{ta7NU1?W}CiiB8fKV$718TY7AbWDf zB4RhM3t?YS<3ow;8{x> z4g4{Xi%R!KeHi8yw4fu%!`n@o=B$!w%u)v>H|AP^ia|TBOyOqx2$fH(rj3hdE>n}U z|G>X~wb_+nO7MS2>r|I#rQx!|D2us0E*DT9Kmwcdoq2zH75S6=|4*XP+b2i$uGz>> z^l?7RY^wA+oo}#`UID~005L{&+Rla^9}wU6Uc&SN0iWS|QQ-Mg3-xN{Rt<8zUSr3q zHp1#-DpH{%jl7kdBvq=VGTZ?Y*|7Ptz%28wdh=D6hMY79AUh&U9i&n)^KRXX+kN&A z*ndA74Ryq#21nGT?p;-0Hy24D)q_+L&3LPWA}!UFCW$!a8RJ6J;Hc7@x&l^8MX72a zRj+Uf$Upkb+-82O?3PyQr>0Ty=EI%AlTTs3Th0-*t_uGi=cCXOWluqmo72HJ0{YOx zlQt{$)4~o{bWlrGrmwT>g2!>l@~ANB2yR#ZsGMjtgI5q@;_`H&#_^Z}N&e%CWm?Z4 zt`Y-^!(MdQ!=D6JxsT|EDenRkHS*}hnM-%?HDQB{&yD&V;#KQiE*dgRbSfQk;u|mA zsT>?>j{K0OtTG3s9SJ&)ERx`H};Jb!V& z8*1!ls*YesNNvY3zvqK6M+cq#nKvegtW;;HcoZCw5A+NmqDynGQ;UEakB>!xe8R%3qGLYQ8Kwb|B3MYBq0RVhl>{YLs2wJH>( znNdh+#i;5vyTMaUx{)S%Q)#?9ZmUoxG!L_`L83oTE@jnhgQARvStH$T?b!%-l~8$p zmc)X}uhDUq&D{DER^leGNe&O-Zq>WeUp>0NZyl+kspS*mXUOLiAEQ3`Vd7amqFz9V81$N`5k_*|(XCflcivshWd%4$qa}s}?#_;LG?$>koWx>>+#su_6;9QE;kU zAlp9d)k-U}U*8Zvtz?+e6L>9m;pv#+Mrg!`V{5^?uGu?V%uAD|8zbu9BCL0+M4SEQ zWJ^i{R$cYGxQ7mkduIJ!u&~fR*n(R%E%-ZiJjNPZ>Xg+BUepE8#}i(^{5w zkZ>Qj+Us=-bX?NwYbn^j+|LT^LEq68fFP2*T~o!DpNS}(yJx1Th+SW@A6*OrCNvXi#LyV^EKhl4>r~|Wj5;%23f&(&42lc7Q|%o1G=Xn~ z=ks9gd~|KXJbj(hY22&YlThXQD8y`nogC}B(l;>973lxDvE+1G;T!=?Vv^SE826egc8!HLTZYsN5j*1BYh zU)|wV8c*5Gl|<=9b7$zT=el+s0g1Z6$mizfqyN6wd{VDz5l${Wj?1$WH?jZZk}6rg zF!_3_4VutC05(3)polA3?pyXl_d~WvYKec{JRWj$x*_+)Z<~AFw@E)o)lcY}@)r#l zmMb2!DkXKhi8v1ONNn2f%N*aNm#U@sEb8!YEDUj*{M$>MiZRuMrGt)CL7nBniK$!y*6hQ`119@ zjb2XwAg*{3&{rWL&#fzpP<5NY8&{WoNT1Z>CFSp3>-XE(*^K}Grlj;c$}M0Z64V(D zW4)du4r49W(Pd|5@I&Bu$Yie!;+%$N6F~-epFs&3>i(Q=C_<0U2Q&8*C7wAS9Lnai z7>`29iWzopkY(A2)K4`HL87VD3e#Weqt%uAyDLh}5`@YoiaBu}Xp*U?9lpo#r9%># z=nyg??pW%(e|uQ}I&tgF!;{wXr!z)Hg$AKJT-6`?QmV2!8M!BT1Jm9= zTX=W&!4^3BK8E$xcZqQQs5(XA&N&R@Mhh3Iw)9WiPJJ1IrN2`KGenzSVdHO0^w}7)GR$6q7Y0qO znrSAvC#PM#F6@-4raKlS;MZt+@x7bDCnlnzKx1N1W?qF3{E8z)0_!WJyC!M1wAhIm zv+>_jlqaV@ZWP*+;cG7ZHgZkP)0dwQ8|s3VUJ70q-KqWh`{9pwl+DSMcWM+Ho+$xk zRk;$p|L@Cfajh7z-K3l{98MIm?8G>OE>0QYVk*!*M{+zoTM8^Q6(;mXFG`JzS2~PX zUQMpOC)c(FpbaCM&eLYNZ)wB`dv>r_y-so4oTo11&fmz3i7>{wQ@Xs@BTSN|mBRyg z_r$)t)oC+cPxSIb!L_?{9;^sa*tE6hl4d7F#R{vq!{zNW9ZimYl%!h_jhgRUveYF8 zgN^b|6Ee+0rQCe4ZcQVCD$E_YpMWB2D)f0%2$akTPt9RE`ZhOzRRhA9FSiFgMZ`%9 zjs*TM4|wrp*83a&h|r={Ajrtfil#tp{}EGNvXtr!|=k|x1x z3hi9$u>o%0AY{0ORHvlIZLWHdSRpS-);D=Lpksdq3gV;b;Y3hJa#Tc2x^#2ebjugx zpFTRT|C;IY%s5m@4|!^>`cO^VmdFMF?K7AvGe+VQ17}U)L4MTVcrktNkTsUYiWG=mqmTVjQjc> zY-q?oPxdW*sf+s&%`tvTC9m{S@}~ENTe|Rwc-^knTR80rJ~}&wLPX3EZJ+1ETH6M2 z37|w~ZXscFQs6yx*XBuoYca>`*3OM658A2LAKApe(5| z8+&bh{>3EFs!R<1{?;@qp<~-}g#fW9e;?f8O59u-)4UW+rAF%0Zoa+|37Y?yQ2b5Y zZud2;pkgDnX2Y7Kj7`sj>sxN&LFc6Xwoc~jwkTa;>++3eaXxA~{qK4W@W}7-A5zMH z@$}0>8B8^8&$Cq(Z&;UZbA>~K!FN6R(P?|;-GU53zb(`;;vc@X$q!Q^tC9|BXFij` zap$GR4IRnKT5d6t&<9&nz1OSlc*jO3HIFur=?yTui(1obI$wBQ%+tFcWquBy6%DJ0 z&Q2f8pD(dw-kP?$T=mK>DV;!~?`tIl1}MtJlS`=^%Zl~6`NJhzD{;@g>M5dH;_krn!8BJ;P!yk$Dt8c zMV=Me*%SL$5!$7i7}@$@7ge%a*U3_4T#l~D-0oGl{xeBgQCJt;s(>af03Z8`UMibl@KI}i)(%>RD zo=s`8#dO(Z?SQ6GFGM~;_`uX_6C^bCR)$X~8_JONYA%{ALsga!@|<%EYc|4>9UwUs z4KI1L* zR+P+$u;AzpkdpCZxJwYqlg2!SL`<|XS&Z>dC)HjZ$-m%(dpwP}m*+HxnDNc_2tBh~ z*|8+Pm$3W5QB_LHOxN@tzv@i5euuG_r3}|C#JpNbf|cQX{?h5;}xX5=c3>`|S6eGv56?XYb$V`^Ml0WDGKLXRW!`oY!^D zYx>6Pol~(eWZ_5g+B6+COFrxT_Dow-GGzbCuZ&I*z2y*=mhs$@@^~enE#GM8mwmI5 zncZ~Q!MUN+1JJn()60g-;|&Mi)rtGRiH|7zv{y z`u(Lc#`<^mJ2#igl6+Jo5KTz@W!*Eg zkcpe6)d6}pK^4@E4y>-{)K-1xx4c^$Ye7tPNdx)}p9U}x+N`(}1sjWiP)SoOzO-F> z5M!+&Y5Xu`jeKezB5!|RJo?EP-1b+8fC;5_4CYAbl!WOniSLwpZ-*IBtCN7j>h5M5 zz3u3@ma^&9aU#g&!`WjeZvN#D6U%Xe2{||Y0zx|7iJN053Cp~Or+kORhc`K_I;`_oJ>1g~wMnR>6WvH)l zr_y<;NqjRJ(k@=oOzkJ%6Vy6uCLqsWS9_r$+BdSwsI^%HDJ4WKy`pTAe$hogzq(ZR z!Z))u@OhW}X5W3s%rl_$zCghmF@Z@CQuJ9&i&(s(Udj+m=sGbzE2StLupwajbiBnp z!?8**US=|HZLxoGZ!;?Om%@|9ARKh?2-{~BgL!ze2=;ueD23oKRy@avV5H<#1}q0W z#<@N#lM)_ph?FcrIdt**!^m%h+Id~8O@rw+82LIw4UH6zO-KE0y)p8yvdlj9? z9bRZ8kdbVCZisw9F8sPDzIVefhkP~obbmqkv^6W{@OFap0iguDJyq`rlz9>RPG+y^ zR~L$Of9mTddF_BU+x1~4N8kVKvROo^H+_(;2EEu)DJxy_tQf|&`>3I33eVej6jKfh zdU|0LmRO#hCPjXpje#G9&!iOmV~bV3WD_!C*=*0CTL@pD^8f{Vmk(lg3f90CRGWEA z2M9mqD}oKjIEx?YL&RbV;Z@shL^gAW*x_<3GD=W;Ild4++KTu+l5akEY0U3gYgRx) zW19fYW9^LMy{KJFjaaFEBAPsN_HXvrNAD9JC8ed^&`jkU_l(PP!VYvdIgW;64Cve> zDYK(L0XZ5ucmgY9%cbePrONtZCtq-K%H5n6CJi0RM*T8))urvV3=TS@Nn#ZWI8x&u zm6o~+YJ+cfolApxY5f-Ni$Q_DszrU6Nij$(p6TR(XS!4$rjqxNLC$!=03vyEpg@C7 zmV3aB?!b3f`SVbL)1X4R!e%)|+CG-|bh+VewOd?bVa3ubrcvOFtA7`J z=m&kt2~-0sQ345WW{17aS@iw#wRD_QwMID8jD7rFOdhP-xwrxZeo)^weOtdP;9=3g zbTv%4&|7M|_tP*G+gquFy;S*o9E@po;FL!UQ`+@0+4$Jekxfw8OwP^b462@KO-2+# z*tBG%tz&us>`oS=>S=AP5mi6eC5LkZ=0KOYWPkeCwo7rUS)c6 z=Xe=bxle;qyKBucXqUT4XUFUz!FH}VkN@)-xv zh4|9aoal4qO$c5=(Ddv}as<7Kvg^6a-=kYl|8lmgsUK@x&Mahq zec`Vk^@f3+9?>e-%{onTVQc{9m{`|I22 zUmoM;$Ffs5BQ?kJAGZGMC;sbKZhD-1a5cHcBP8kX>Yx9P()@pWLH0b1QV%zVJv7B} zBy``xHTV-FuO9D}qP<-b3fvcW{NjJQRL4&AUe1k4PBxomBk!!;*eflP@Lcqh(wY5i z;Gp62oasN_Bs?dKU%B72V)i-yS9|C$;^R2e6QL6$_hrjh>8nrwhyU~L%S|Arp6Xt{ zckVxpsl3NPObz6VEU^B^G4&pZDL!qDUw8h~n95`YVoC?q@X_Qy{<_Zni790Xu9*LH zp*|Y_iK)Uvr8j?vvj6wUy2*VOh$-g556}J%H2RmAvcCiza{vE={6}l@|ImVbgV|fL zRiA$M>s+RUgZlgySxYL=Q z3(s{Lp8Wz|lH?aMezb;DL>CmQnjJFq-?wYVP`>19CiA;|VL@kkfM^Zj^*!lrzfAHp za6ik?&gYzr$OlZ&n%zh8M#9hVxV_|OoJX4J*@bf9yU6~1y{*2q&rxw#PxkOo@iYBy z15RHO!NKe{W$E{M8Flc7)w*@olF72h>|GFy+JTNHVpg}({G@DI0wp*|MJ_??z2bU0$9kV&J0ir=MkB7#)D=eimHb0+V3&pZd*q z%WK>hes~@_F5T{k|C~k*jIUPKVjgWcuXrR-z9}7A0?chWWMJ2mdv!w&D0`Ko`tGfC zmYOx{IV!qMgUi7$%u&1*x@ zJ0HF=1Y%k>j61{)nbs_18In}`Z}^7zMpY*pFYcukTto()x}OD_({_6mfjQbvwA&sC zxvOyBoLAAFEP5x}`;cWSO4#cK7_bA9$>6l)H-)*4O2Qt=%D4u|g$1nUtCW)6< z?-7l)4`tm89NEe@?tSIKdTT$rjUPIy08}j8XdcD1vpQAeF~E-x(|#%VX`PqO(dq13`8y4^=UsN%`AAs93kUz^?ZsuhPt_`U^+jYC~a3*-~5|!e{OR2s)34#-vLgy#O2NRf|J?) zKobb&vn)e`rksA=nt}YeFd3pW%SSSb4yp18!lsQc`tXlS28YHR3J3h4G%HS`#2gKUE zqwnwxPmA*1XqK&CgP#Guh=qjFIb3rkF#s4&edd_zlbJi!FCPx|_NC9P!eWJ}$7XVw za*qmEd%9NmSWgdU0AT5t1OB#M*6J@q;_3tAt4x)CC^m#a~3d)xNsHqU`o_A8NuM)Em{8(BW!r?Ui#oOD^*mFalMT zFVs4u&U`*obc{8HQu6UO8Za2#U9}Wn4+a&-mKJA$ZfMgLAMR#8=L*>U5$()7y%uyI zv|nxz_bD6Qn3o|$Ewzc(2~@e(A(zZzZ#$YK%bLIBd)QQ(1dt*#&{v|)i~Z3drC)aT-IZh+Mr45ISBo^rgsrT{tr-7ezI4!G!fe3 z-eZ_fmW2-2`S%94@L3!H;&cQQ)YAWCr;QY(5KKtLAv4_` zXFZDS%6vYJ=i4Idls`A9`_ICFGh2?KYBf=OXNi_xVz!nS^E{$kpx3LwUuptXS9E)S zUE&&;+JT`5VTeY0_vuYd7WZQ8tFWmGkL8BDFFAcHj7%60ytmRVGGl2@&cv>@&K@Lz-um`Y%^oJulhc3 z(Dwrtem$9$Ac3o)F8B}l>!OPE@*8A+SBtw66H z9;hm19HSR#o7yj9`q-21)H(g-v4Xz-y6M7UR9}$qdSMxC3Y42;sD^#-X8x{0mNBL%$Ex;_h{Izw?T{r_YTsrW`8pg$f(rS1o%- z8c;2`vL*g9oXJ)sMCjHdL8|lf-U`~bw==`PsS?_ie;8fuZtMWy z(%jbs8w>by;g{b0K*2UUE_aJrHuS~Uvt!F9aN$!ru_zzCS4~Z&0U~KjwXclb5@ zv6VB$#fEt!w|K$coUq3CXC;eP4z5xkufRL!;&*H#Fpk4D{P_u1KO*3t;-)!<_Udd0 zYhM(4uW6nPgF6oS6XntpJfTmn2u8kkoBP$kb z(tRJ;i-jP)$V%2mZS$;Ojm3)do1fn>u+!-e(VZkEH5-E!wb=^+rGd$FTNC~d?T)U# zkxT^#^jvt39pBpL8rUPx%B}kk&u7rHHr(1EA;z1Ave0Vp^i~8;`iRMR&AZxPhN?m`!>YptnC4$Z{(o< zSxW?X>9({P(<+evA*QU7ZAk0C{$=2K}_!w}H0C1vKW4qG6Tf-AHRX zGjhc~_iYKX#4~#T0bsvp>1uSN-W$X^UI^Z<;Kl4OCNvZUoW2}BcjpGhk0eKXgoGS~ zl8*&~8)x=gjgJjnO?|c~6$NlOG;Q7E@Be${^WOlU2jxrvBv&f>NzXR*ieH~_z&!6g zOPe5BLrIN<$}~-++2bJf>5q+NzI*JU^#%wvsXZK9iow7RwK1r3>JF=EaN>md{G$&^ zvzw*xfW$IawN!{E$HkQU1^WVOfvto%(in73WJ1GJn!k>R&v8H zu%9Yl(9|HvUPnw-c$~D1&3AvjLtV z=CnunhmT8{ygVj%=jb?QSA8GJw|W0WmDUIARpnTn($6SebzxN@OwD&r!QR)HD<=1( zDwsX~ZJ!T`9!FD>6gZzC*9b9SxVrT_aLUV9-XYYO7U1r$9>NF(KuPYn*}WVB+Z(v? zdTBxAi)jevRZU6X4UTY@L2}wd(x%2kF!|G2f(G`&`pKS)HAJ&915u0ac1gU;DRlD< zucQ0-lK&w)*bxa{k1sgKzxHMF*+$}|#zw?sh6H|jnyfvbO7lWYFyAzAWa#yo5nol< z)GX$weIGe9qhL8?N@~j>!zgWu)!t=rsJ}Gb|Gi*&_xjdL7L}aJUjQ)zOXx{aR3VuA z-u&uSF2%dW(Rl(1)EnkCgDk7zMpwT@3d^HBtzTWF*8#G?drbNTV_jGL7$Af~1G}O7 zQrhj=T6*Go(M2n656s_nTX%joSo}ou4$9|)fsgx$ewPlr69BDx(vw)edF%A@)9t$5 z?$o|NsuLeRITL?b>Xb7KSZHCKRSRl`AO%y2v8j8K9At0XFvX{9f|%NelnnKlpV1yY%Ts3J2kE1@8S;b2X2( zp$vhoqsxPNI=FP?gXn#D(#i|;FzQ~(>*+a#!rNjs`x#@j-jei>%fv?~ z^)9a#Hv3o@k(^&zdJI>@8VP70u zf9}z?$%1`=d2wnYSY>RqvGsO<2|Le$_db;MDFGVD)J)gfhAL=WUggIW(Y}uSVE8wA zo&DwG8KSa4wOBJ(1fkFC@!<-kTC7WIxpzQ$Y-;oTE)*d z)+9I&HR4d#>gQRXt~no18x~0&?=zsvF(&cr3#ObO)%h~%h(~SLWH=nwZ1eb){f0Mqz_Ha*GI|vAu+w zA1WDap|hXA)vnwbIuvVhaF4C)VQoO zr%v&*-S8noX`)f2&QHK^Qd+Z|Jtb(W4pce3t+;I7Z&(nn_`*1E)30+5{(C#|2HR0I zn5*8YAvb%9L&X47vG1mD`@nYW-nSx?mNvf&se%gMgp*exNSNs7yIS6{_n@F}&)#gE zTNM{pWqn_HWe;^>>ykP8;cZ!$-2801MO9#wo;t}*ro`Bu>cQz7Gr-d;3{N8dwuU|V zz5VAXEer^{!#w-=)}a*q?eAQ*8OyU!Py2Kr2hZ3+=I*2C+Wv+U_+J>5{pSaIYB{`8 zmp2cin2N-+fow**mR$T0`N;2lbNFO=pCWvqQ0c2rvf-jB;*18vdVL3f?dV7&5(0Ej zg%Un|Umi(gHkLR-c64|z_{aC*ei&ImhR;OZw{2S;ZLM;Tt^-xvyC&qeNFB+E27UHB zR-1`#T#e2q8a)=IzfWkJc$j68<#O-}@&(mi>8tPUR`+x!PFV5AUBaE$^H_5;BC!SA zxT9Su|8Tsep;`6f`bW}2z3ZssR}fP)4oFipOcr~8e%2VcRZ9m9d8#GfeHrpxBZM0%lx5-!L{naXD7cta3}iyl7Kizd>#x@cqoKwQpPbyap2#KVvWr zQ4;WdEn2Vieab$Ia9n=eAK~D9IyCvN$hn%l%a}teDU+jFy`jlq*t_6~ZOdxr*ui(D zqXF6(?;I#=eaKHO+ie@4_3j)bdxK&l#8A`C*TkCjC6=ihoh|t^E{o|o)x69ZomB;@ z@QNL3#P>(b$QV*6dTM@)hc(n~OrE-QPH)gL`uYefvo0WT>j%>Hk00_$7GsaLelaHO zzcEwZYYE8joLSkiysK}pDIuW;GofkwJkvcgz|a33t@vNrxr7>!om+DWC-$5~pKG5l zVjyIS*1Y`Lsq|~a?EJc+ZQJ`x=JoAt@YkAPIj4v z&Syl>8iNQHr!6`^2GmzmEB&cjvSnToUCdjmohNLqyutHYv_l1t_}w-uC@pez2%h9x z!^ozzz;zE}+S+YVE|%z_6d+ZJ_&>?>GlP!^9aunft@0=v%)fus@R&L>->LP40s#l4_uU$P7#Fdsfy2T;;fSRr+{3anf)qj`&CE$IIzkbd#h5+Cq~v5 z8fMm!<0p{u<(IspiUO)LxB43D?DTM?uqM9+;QNQmJ}(Q`$IzZVk+jbTLcb~g+3O?5 zcW>$c4f>bM^$+$q1KH|*uUmjAmZ{Iu%qgc_Awd6Kk3e5c_jgh5dLsu}Ufo+D0hBId z;ZFNzLDBxgCyL%cod7sY(YnlD3jnMp4oHQ(=xFJ7Yp0ry*j|{`>&n|l^ieMN0##PJ z=f_le;1nzT@n1%V+oak&qeS86M(T`tYs$oS%2t8q;YMl*Om_~?Ovo#uaX+FE_^Had zANG|Tg!QSQsoGHomfq^TfYDoX-*G)jOshW+M(XS*DScjckbY3nfV9{FVw#C^(_ODZ z@~5<{^HhsDvsf0V6KUS?g7WEqQ&W_Ge(Pf8euukA?V&iXv?3=p^1ba+Pooz2_}$v# z;%Yj7?)_AQaAD%wf#uWYJC2godCEptu^8oRV6K;_i^z7C&cYqvPQ9ODPZQ?{_b|4r zsi#L`Y{);qPWG9tt+*B68*NeM4~^!b7@q1iJp<(k7Y~3MvfY5e99@XzBGI@Qg9dev zpm1kNS#Y1&J9tH1?H#9xjO>o3&tAlT!_B;V&BG)GusCeYJ|~Y)&DT}Lhljhh-eQQS zo-AgUi|J55|3{v3mBJHqoBsQOlZkcL3!e+9k5QNC+td{TTH1yhMj)h3h7P|%xtcGS zAr|)2C;m;^C4D(GF=100N8kJIzop=R|7WJ?yBfYEuh)OW2mh}t=zsrmQw?Aj%`{m0 z(`Z*}b~xZg*#jRh0Gd0eTTI==-tTJaa}bUA1WinK2d7$1_n15PUc?>KOc>Bp93g&| z%qw$z7oE=nC=P4$t=>ES06%=`@Tx3~9X?neh>&C5uyw zrVS$s9j1$B3(raWK0&qOr^VE_<4&DQzXq|dfe*PKsy%lq=b^8`iw&JZk*=0h(lg{m*AK> z`=!uNg>Z8!ZTgP=mpC;WP0p;oIgc{eA?%~M_6>!17dOWq@FLdfixF+7!OHF&t_l+N zeeZ$W;2{c3WZ@JTzotD9)&;U@=B74W-pmI2FI2uj7e~2ai&80V`+$Ra&&i@R9wFD< z^tltUTcb)2ir&Ipd)L()%!tn@Jsj?~Tdc;!N;rZ$FSM~@OD?{~RI&c)*HT_YpADS$ zkmX3(Xy8gJ4Cvqkis1Y!5pCh+pfQNE-np;MtYL2;fFq3o#_|mXly8FO>LyKYNGSD4 z1ej5s;v052(9ezg1%21rQCY()jM(h?kf+N{)9_dofBd=p;cu6m$P3&%n{43S;I?I; zx1kJR9-Ml4Cz7`c>sxh)y4ysi)K%3ZZfOp;qOl*)+LdWiec?u!%w&gYgf#4w=;iNt zsgR1=)j6*X$o>_31fm@R4+C%^4yVIit#cv+Bjd1#9;*W^^J~fHv`{?EqETpxPav~| z8tUv`>he*kRN*#3ISNyBfKbM}Xn>PKrpxVM^EmK}S|F>}p?)3DEwg1POg-`!mByUi z{GS{`@{`@g+jJHEHupiFHc6J7e+qz8l%4iG%f&xr@A=}0{aZu$3|#K`T`Bkli5^?- zCGn6vZ;C0u`TayqPN7&M*8teOuVcTDC?LU7GGV1DWJ+_NPW@A8J~vMdD|4Wza=lq? z9B43WM0s1tMAs5zIvmF}REli~w~TjM;jPSO%C9aDVs3SOK;YCVr2dFz@rLD9bT$qc z7P7XpB?Kq>@XLdOa58#mjd@E!E7y8jO&P*=NwsKYyyNR##R~VBmU{ER-~rLXYa5d_ zAD(&@oomw1;-u5|tW48|)L}z&RwVX?R{>tJ)sicw|! zosEEL9aRW1v_lFuM25Dx;(JZ+%#-!3^bBCbq(b4kaPXLAI<75|4SNMkKc0IqB4_*i z3sk$kwOX&l*o-jEe~zBsfC_sR(=M!ifcB2<-6d!C{ob1fc3Do+jiwgA!!t^XdUvOK z6}dNe?uSG!uCFOi3S~{R8$0J0hZUb~ z9BEuEj%a(_)>)MHEX@8Q~CNenx z<|R%iyy_LBQz>-j6d|DJ=3Vsqv?fjyl;eoEu%1)EAZ`Y);#V7Szf-zjd^J~)IiJ~A zr@=;gpZRJ&`^DW~?;ny-)8A!FA4;_FqUIkMQD0U&zrh<9#lMEBgonA0l`ie$5Ad1Iu(Fh1BR$;;mfQX!Sq zJhCv8LuWeRLYV0TGyA|RO4YiEYreE6S3twNPX3Mr4ij&-1AsgF^<)mF? z44LYEd(bNxY}UW|@jrb%5|sDQhMmrNU^qXl0^gEF)irJRj^v@`ZTo+TEXe4Lf%!)Y zH$1pIe1uj%3blqUBsA1VhRs@PNmcu=k2fTpN7k`_&U5OVx}voDn9H*&H1b%d!0JGu zx(Tv@3*3t4_ePXcTG*$|Qx;M%t;STtrXzy-E}5uIdNWqB&VYAmaus8Qt|x}Aex)7q zm_`U*_MnBceCi~`JZ(bLF4p3CfhP6xMs?2OAD&3>i=5AZ%0Bn~#|@Iu4J^8SKru=n z!|y_EnCA58*5;H_N z4_z}_G5i(%n^c-(2T0IArvNIje{}!VMCh5XDSBQGuUW#1P#*Mj(S-2_*F8{V{O9T}$ITcr8D)PfCrdb|RMrNlk)H+Zg-FLH$zQm}e{F zJ3X7(B!=4BGRFO!`+?{H7rpL6Ap6dR<@_Qfs=TSJgVaokI5&x ztM(Jq=m}Ibl)+_H=v3=u2!*5kGAhffz&ped3$0dY`+Y7=%{s~upox}vmF9NLuLvH> zF{B(aS$VK4XUXY%Cnxn-GC%i0pK za$ds@D4MQfbyX!u9vExk*t)^ltp^lc= z!OAFQLh6mh7P=9-EZ z==L=e#=JY!s6%>RdeggVG=!`4R>1Jo1gsK+#yNs|$>nXufoUg{xI>pXcB|z0F%LF{ zPYshTOMQEwfsGwNov&uZDPZsd$y&%GfsY5Irg>@JKHXCE)W*c9;bc9xt;+%>v7?n9 z#r}C8`z=3QQ6U&?%-Y);>8$}2*XPv^M^b4P$brm19hF#?ULTZ}|L{wqLH*V7WVwL% z)IAL3+v*Hz=bKzGDtSa?Ao06sjkd9l*~ifJSl^4#Z|M@C-}whA7mXJ~*%$(ID1P4q zzBm18AEq{9lgFmZwi>RH?elccCf3{6_-LKhx9Yu9Y9?CGiJHn7+ydW5S5u9u8c`Pw znR@+(XYHD|84+CcSahXdHLbo$4$1`1u{ z>o$h7C~K_-Z&K^9oy76fEPy297S=cFe^zj3C%=6#Ybyb+$Jl#a>-v;PC7|`iuQhM* zO?>SDRUx{V$C>3hZamxEaIf=6K$G<3+icSuF!(tehv}Mi!UsE`2iV-d9RktJ?@Oro z1i6V4n`kx&Fs!iOFLj;E>brInOXFr0ZXiV1^*uF!El#_OXJKbeTMf*}!epnFwK;1) zBylvg2wu#QXh?MN2Bg+4=vuIoIWc?!s~C4A0)7yA)N%hO9%pMLW+QXUk{=i=({)bb znSNgZy^ewfSb^*QvUwI>i??feBU~>FE+~&DU{!qts{f0(2$#!ATk` zdE*uP|3Q=f+9g4M?SYvOI<anB}Pn=nDd?2!DT zv7AEchDw_w_tVrNqoqs=|C?!kzBg9DmF0+&Exc*m^66KG9XV8dvUJYUND_xl`m8!m zNc6pkOksfAC&m=)Q_`7L+StvJ5}TlF78mm`U`I#3ToKI7f>H-$8)_zK9tR@w@H4qN zCqNi{i-*5>H`I`$7&VJgIqRhcR}N1?%(0*N0nL78hF(NT*e@*1EYRev2U5a zG}aI^ONH{Q3ckrcG{CPeVae3x_4t^f1CDGQU93v}bsv+EhjSUFflB>PJ15NN6lzEm z)zKmkuC0lxq}5SKtjsl{BvXRf=s?=}SfQK@^&^+CC*A6C5iMplg_`d8J4a+aB-9Fo zAUO$=brp$Ub4kU-zKO(Vu>|FAxD$b~Co~G!d>bx){#EnK)19)tPZ9=Xdy(>7|qoax6og zD*atJKp*q+UJ*X0(v}zU8^j`Vt4RZ^4T)QAk?ewpg%1bZ)jwOFtw}-0O_|Oif<)jh zeSUn z@a#yxK7{`!x#if+=ZN$J+JU<{M^EepKl~E*m)5FVeRp7d4QN|`;^@!$x%;OMhWB(Y z*|jS3WrH_KB2bp$>#b9sop#uz(|yp}c%^uVDEjMOnPch%$kjJGmjA62S=Ry}jcD=H+wKrPR3~y~`~WEbX&R59L@xYPp97d&=!)5W|22Lqs3;~rCR1jxn7LvIa}jATNgSmPyKob!VNF=z?cUcu7D?rvtv|^ zjkYX`+cgjCWd?8@$QJ`@i z6{nW2RqUWdYchlaF51|q)_9LjWzniL(dtdyu!{~I@B&~QMye33pOQ$}Y;4n2WG&dC ziy`AXU5fb+O9ZxXw#iY2{=%0ApcS} zZrCTmZ&Pz64-A=_H0TN`|2k7mqnq?F}+E{Kyr}) zUTcL|TeE{RUgbAd0plk~^lgjxXfN!15d}YgWl>g^q^=|L0?L>Uu8ou5k{D@?h{aAl z)*Hcze>i);-`5fV)v%R}k>7E!Wr6nr{JnWKdDZGFG6ZsWN3|M%uLd6oxmEoIQ7-)b z!FN4#aNbgsf$Ns3RGXAvuOfyoN~(L@eJ^Twph4!XP#rY$Vq7YPqAf#Z1WW^plXZC$ z4qm(@<9uBuvX3HGfDop#bW#w&$keeA3uitse6^Kr`0#!?Bl1wkW5%nX9mjiP&B8~q zq#iVjGZ-dCfH(}~bSPgpLHxj%JNyNH5xNGiqSbbToemiF3_jfeobk8VV)2P!x+zfn zH1ul<$aD&lyPvkB9izJEath-|0d#h*#{)MgbXbXJTTne8`vmA4s$o3K4FV;yh*Dhv zSkrBntqzE7hO=*)ne!fzWAEGXW8T0zv27h+8v#$f$Y6*^7eXuaw4S3ZLyf-uozHA3 z7~r5XTLSR_gZm;%p*1u<66Xpr7_6MRab5Y4IIWH3o#VF+N0#o60CkMCm~ms(p;f)$}r zsPN1v){p5yHx!W7+UHfSpC7`pPx`f%)Q2d21BK=G~Aj-gO z5oMOMrNc>JzhIylWZT#d>qOEyPU)*WmmyQ2PL5{-&D1L~$G&MQdypabyzE83B2Ev7 zl3#u8gl}u~YQey`^g>W|A3*hXr6wj^Go34nkxwPzDj_XxC-I`EEj+&5tK;|l<7z<9 zGF2JH8$nVs#GagdTI{PCz&$sq(~_u)*>7_Z0JD(yUL^mn=kuPv!zzpC&w4v;W+Abu zJ{K6~5ZGv2VIYvK86nvt;B|l8lSK)ONFw3s-QpXbaqlGNLk`K`kzM{@L}Mc+L>;;7 z``-UxEF-6x`fbPtDDS~6C~)`Dc7k!rQm~yi zemm&bgZJKc&h_M(cc7BGR$Xdftz_u_{TIH_=`H@=;Wx44dSx53reho970n!aN&l88HN5sXN7$YrGfdqLZ?vQ>o<=|7wA05-vPl=why(|RsSVS zJLgRRyL-2nX+~5o&$6YeKoc_bAaRONFU1mlXN@l8V0-?6@Kahf|t^n>VrE&IH{qLL2;BT zONrDQog;nfv)S0xCkT7>Q_;0^jnywrqQ!4aQd&G|F9JgP`@1n;K$t)04b}=)AZ^-# zP0hwX9*oMPj%W-knyzULJ|Y(Lq^2H5(#z*OKJw4}(95G(L3$;Putj_9S=PX>%X~NE zv8kaY?9fKRuw`*Yw_Dlx-Y>8+d0lDbej%9{rNy73JVldXxD1L7v5n3?JUE{r^9J~= zh46$F(5-8!8GI)4O#oOLI5A}j+&*^gYl!w-vnjZDrNpiue68D3W1I6ZsIBGx$T9rI zYDFg&tb76UFm`z?)#0c&$iNP7At(9NHgDajO*bAh*0Cjp**l-%G@G&5=8v+3b=?bF zFM706(te=RKxC@-o@|>-UZw@K)*pG=gd zzD|L-QOS{cv=SA=xSR^sEe#(QY53iKn+daf31^}b^}~e8B%vuRI?Ogz@BFJ`K)G$S zOzfpi-Ucv%eRkDkI?ar!`OPbkI#8Sdhlb1jmy!kP&T|TBoH3XV-C#`gHv7~tmrzF5 za|6!jGWuxPgMiANCXs&P&->;oNLbw**r(u`%AjbyPwd^wbF=d33mkyD!`*n@r51kl zv{;GU@=>80b*jepk^p4twnn9vv3EieE2?T9309vbs#UoS4A(LK{JjRhYkoDT$lYLA zBj{~H6tl8w@<*))`f2U&H(l{1YS&TrDrZc}Saqg~^3CT$3H2qUj_O#CriFD5LKRz7K36g-%Dtd}ejKxMCQ8e!-XxG}; zpjT5TC5MQ2BwF$hS^R8mMN+Pu*WmB^Dv`F`21#zI|9B*a&W|W33$M7{NOwxTKJ*%( zWLswEvO9rfMA}K`$T@7<9qzga$cYWFwFj5S-ECsmxOGV-u_I@$jMK;C*uiltO-_** z)F3GV#}=~hsIO^3pO8Oq`CDwgIS4KFgh)Y55;HEcsvIz}hs4!WKA5&Q1?UAVFEBtZ zy5{# zsaVuEx!qL3px!l{zGCGj(;KquyCWUs!{Oe;YU~kE#-l}%PpT=r#dv$oao#e_ z$Q1mJ-1P0a0H@1o@n69F&nYs@(VxCxub>aVHZAZ@2@27Sdc{2Jr19)1+?|mzOqPl6=0LZZdE3xI`thZsCT#E483hGi+3&Ez3FjEK-}m z%n1Q-QOWrX0pWb*C6Ui{jC=f=ZcXa^syy%Qq~8vmA?k(>MZ1?;Ln^fUHr%8S&Mh9$_0VMp3r>Nw}v>_)}o$7 z`7(72sRAe2{Um>V9=QJ?H|Hwakg0pM+JL;qmnH}29%S(gf%r_PHlMIAe=nn3=o#4_ zbc(Uz0jo$PDxt&OhZ|Nki|i66H#P-9YJt(ehwrNR3D<6T6$}^exM-vf<`(B)kaViK zaO-eH;&m37S`~y5-(g4o&&wX_JBtIb1a@#^|8DJ2IS5I)-}LzugRcs^ugJ$7|`GjK=8e|D7? zs#$B|HX=c{Qisjr$q_uN2LOD5>P0-HCVJykoy7qlt( zh+`5UJ{}hR5<6Vm` zr)J|qyek-?CK}BoKq;jj^@aSd<9OQSN@x|fwvP71vmsG2K+U$>H|)$apC?_%d3ENq zjohEwHo8j`ExJXCFvIKip62&JoECLibeakOW0WqUX}rG-eI-dsmSRJx*ixb z4dVf#4@nAvD2{02rJ^7mh)pUk%H)9ha~Fna;w^z!@AP(qEI2X1s0+IGihqB zUz@8<94|@OwSroX7CXeA9*|q<;UmpJEp%uV@QlJrA{Ol$t*cRwxJW2EUM0zZ|z`y0=oip4wzLMd%(?@02 zPRrr7Fd_LQw)e}>;DTd2*4yE=a4mxgf_(X!Osj*FJWexv-+VEQ(MuR+w<@7}@s#TEP8|0kq9_eBUGEFOjH!5r7D)19U(Mx6X*$UO{%MP#Q! zGo6v+d1SpX;!_;t%=sfXHL&250VIq(AKw5WXLq#*riM?W1FD*#wcwV<5R9o+|I^$& zz2F03L@O~CF)tPc=jYUamwyWDh#V>_H+<;*u_qLSL_e;*(Sdqy1(H=vnDd(Dh#YY) zvBHC!>EH~u3*A~zAc-xe{SJl_iqNPg%)U~TmpD%Xo{<2Sv(q`+4&JYYdry+&`|yu~ zyyD^UeU;^4&9*JluPMbYLSW$BBi^YK*_kijjr70yL~bwp@Vz?oWt!lP>FLDqqw3-9 z8@)D~MD($qYNEgE-1ZG9Q+PH7b=G}8q>~UI{)p2k<0?nFQ1luh@jO~?C*MJGwb}%y zWdo%L(Sywr9Jj{c?k*#nkSXV0V1D-|ytj-I3M18d67mEKr-?6C*rnB#De=UiU4o7` zDZ@wcJfg{uvz^R+i82kNZ7)@<%0Q=ERcO>cf7XtCxD`5enjf@pDNZI^Xbh06R$79B0Z*TNuSv4Z z7tjgw^gsGznjU)&=`1((pZWs=q;L zrRew5nEH@a# zJEsrD($XK~ogJ^o>!ht(USOzQ$+5r&8)W_FLl2)KwO|t%VJwmF<>n7b@GJI%4R<#@ z3lg{ye$CY80{+bD1-j4^SOWq@27M+SM>VGwAY~j5++2Q~~{yfj#U9DUt8@GiA%WTUvNGHVmjR35N0r)I6lkF6W4M=>q?bjQc2hGEXL-=l==Sbly?BXey`S40{w z?q9O(@@VFNzaNo$uZEg8;qk{hcMqKCcWWG3`K$*2h}2sSUo4Uv8v}-u$FUa1`JF}( z=PtVrUfAls9)<6O%O4`8MAlkv2>aBZoJW;Z#$rr!M-~;h8P66nOen4mIo#Ybo2qDc zd3>LmC%^saAYqXaeHebkhN%3f`%g?EC108h7z_6I4mD`JGMjMpmx%_{Z%p=DIWLB} zhUvM?W%3Hoj&zrk*N3rHnOkhaFXT9B-dX5~={T$*X>=?^2sTdP(^r(&nj=9{&)r|H zVq)?DvHGSKg3M!96cHNn4{sLu@jr0MCq*11#d_WAS7TTWJz%O)t1x> z!8jn%P1b*un~jS4dS0gfyRPZ-+p`hp*>sgM1kTMWDUYhxT7gvh zaZu$ysKPN&&a4!s7=X!0?~GaUIzI6#>MyY!psZ;xjEm#mzIlXs@aPS(*q_zHW8cwG zv?;i=UPJyUNxCetq&Dgc_Ld_$MT?ZAA-(}-y0;C4%}7TZ$XbgT_06YX*0WE^Uw7Q< zclo_W1_JFS;*UIcj}%q;>p4$`Rnf#f0D5}FWpdl&ns;GR>J{|4NQVy0S}&`jKCH&S zY9D0gJx);%il~6MxYA0?837xaVo3r%ZXD{5uUT8guC;AV=))x&01mO4{bD^2kbOhF zF>b>o^;?IS4eBg%+F8zoTFuDQH!_BJI_^%h0@v&(3m(ArF8<>@K^#`@Y4sCM(qChq z{O5_X`U^!g=!U7-2hP{WA?v7B-Z@2Z+NY=f*i=T_%GY{jMLahab?hYC9eK6-Tjq*> zWG8n#hA&h*Nb0~=Slcnla$;zl8XZN1RJzr&?kKfQ$Y%O3Tc}b zhq)MzQ~n2g?;X`t+wF_K>T3nX28akKDqWB+H5Q6W@12O0&{29#R75(6^e!O1M0zJG zAP`EV211FH5PE=w64K7{`_A6`j62R5@45HSJN7?}H6Vi|Ydv#5^O?Ugb-F#|*X9VS zBZ&NVpc2^WN32sZB&yvyLQbg%sakegLq;!pgWEG&&bYkei7U4M=RTDUjyJKOkQNiq zC=}e!K>USommwE36PQ|#Xppf&#i~GtnVnDXAg4{m#_3vfsu}v2t>cL+C|w;YTY)Ct++q zy0<*V6n%jNbw#jk*$Y05i>IZH#H&-YejWvgJ+<*B>>Qji!i#-Pma14t3G--U;oux% zD(<_&0lXAs+%YFb9paQ4`ZzIn1c|odTt2z}hQAJZL&?+!{x@#fZ)yAkjc-n)073fV zEjm^Au)_L=AmW!TlQkFOu)gR0uU)-0xm`B0EhToL8;)K%{CX7gFXJb-KgLhFnSYF* zZdIpF#5?|&MfJ;c@+f_s0vh%he&voAS9Gy=QsUH|lFFiA?PUqcTTp5Wb2oz5BE}CY zoQnXdlVJib0kJY4f&~n$Qh4OQevUuih_8r~bSm+eJKQpO%kEM{7d*j1ccpbsFkH9B z$2)-iP^hJfHjRm|1b*Ouq_bQh_Xew>xMxodVKvXmVBP_V4)s@&~v&8qg-*dtG3W#oVaScwq-6EkM>Q$aBi<{@}Fi zBnEyCUjFag)hK#ny1crwEccs#pR*^BU_{E#$p?_$Sn44u-a)Z0!~l z;l%~BID)<=PpvLA0(T$Uux}HM^@Y^{$;4yF1(dhrrzm{#`M~DK$>$%&x2>BlmR$hs zgQlmD5Ke{)|Cs@v%zCzi3Lc~#pkBU(@We&q2=sS+Gh|`$o>pUeTx7$XKzlQ(2L|*E zgF`QwY5P_&Ob6zR&sCoAFxlzLc>Pkm8Zh$-p+gqdB%l~fxGWSw3HL5I+g#v`o@X%!WGO0}U6Q96liNhd_a7!p0ax?0$ zV(Y|c*m+Vo@3$mgl`whkn?mCksxEUZ*6M*jP~I)u;ybl=T@x_Z19l*(+~sj&MD5XwN6=j3*St!VVM3xUJF3k< zQkhV8-GjKm`bgBPgT#c`_Zqjo8%WK< zd^Q!#wit7s?{j-blr{Hwa^kS{m47C~Qx{?ytwe&~1zZx&pZfaYxwUr}Vco31WRs>| zwr%uZo@Q**zL#Cd51<~j$&u)>_Mdoo1G7a=yxaFFC3EPw9LW9F+}YjQw?lWF=`NYD z$s94)MH9s>7;uWOq6uUEja+^%*RdxYQNK{bc>+LN*0$~}=DC-z=YeSJ2k+1T)yba( z(;gU84oxrpkSISjH8p|O8^nAq+dS8ts!|uQ@W7OdP+ha|;%Xv-UUShhtB@rZk(p7y z`q+}=krm+)`0W+zV+GtbomubYR~wA>W6mEe`fX-F>vn=hm&O~XWVOILDfofq zne;2bmZiJrVWfCnm*f`X9~iqHfx_S z1f^af8<&_Y2>qI9#j!6S1F{x5s^<_A1#V8qz;~}~igRyHr})+d13lvu&;-dyIbR9j z!&Yy5IsL2iU2J-2SLZBd!YE65&@A|T(1<=@Y$H{cd_-6?wT#aY!q232kHPk8_6G{MtAif%q!@%xwJkMPu$BmN$qeu@PYn(mKc zl=6=Lkzgz0@h9z<={uZ8bKiSH?8H0SH;gHsNw?NXbx~KBMuhD#(I3duVHbcXg5rib+{0N4;akCs$3mfpGxuD z@6S$#MM_BDjku6>Z-3t+lYGCxbQ)e7n?7^gDHD|R0t9FkDH1?ZszF^|sAOkdEyfp1*gh0c)M)S6V zwiT=8!74!&t0dcb{N;(|9$#2gm`)R4`qTB^96t(e${QwcZf-a5$vt@QR1I!;-6Wf6 z{jhDJ*2vnURQl;u5Aj<34yw?#VgHIt`b#HRb&(qr;m;!KT61^Cwlv*#f)$ZtH7LJu z-^Z;F5`@bW7juWY3jR0)Z{uE3kKay7y>=tKZ`--_lNM3SI>!B93kIp8c%ZaY6UBYT#IX?$gD{ZkW_T@zX6v zOIvqAh>C?@6-^SriPFhr`|n@`T=Yp?ZriTaLgm)v;rJuP!}oWtb*t9l;G!LtU#1W( zVSnu4q$(Yl;w)|p+1KHs1rn|)p-I&7ln_LN3)2;r1C^op0ENCQkN3Un>K-&nyZPso zyU<-)L79iGbsp@Xd3(QhZQ#zb$S5PhK0J%#$_1MY;4GD`nDu@*5~-`I`Y_uif1$D4 zVs=${Z=oT$yT4r?Y0~Dwkb?(Rv?{!Ept%!^>&5LCQL8>~+T z@wzk&Ge@@_p6I5!&bugpQf2-IjX$|L^^;u@bSaNvqB9-Om%P@&px~37tB&?5h*5aQvzKjv5W zN>r{M`vsm zxvfcupCqejK>bA0>68DULHbX@5Fp9^%&Nw3z?Z=O4}!D*GNXDs#`{L;zn$3r`4Ro= zVg9!@-hW%;{b#uSpD&*NfAK0@D>n8`u(%kJ_0YVwL5e;EK6#?!V1qpr{{V>ph@5Xp zrx}-+6&WaO-W6PHDEiND|0|6D_typYTS5@!CB!!_CC{R7l$A6+#053{%3#SUNL1fH z*;l_R@qSl5Bz+{KK4A-JmVFw^dT?hJ&@@G0e7UsAw(bQZ`O3F8%pQ5R+4PMezzCaC&sG_MjB~`4&J;Rtstr%^S&fDZAYlG1B{Q3EssK zIB(R=M>$%X>UaCz(dmhVVqk`XD!5!j{eo*T%0W3lOORs?l$NeRx|6V3{<{{TzaAGV z&^oPKhW)Hpe`UG4_6g$In83Znp)C35h286pxQg8HrP~QOmS+MRKkS2J1k~iZ0I|uSyiGZ2e7@%6iz2|i&so%U z$Bzdp`A5f42yxK36#_8dt{)_W^~*1~$7oU)f2aqS=<1yLjP&*R!h}cZ!G{}%zrfp{ zMiIVp!X8_l0t-I}hsPyv<~LZK8eQTLb9THl7l_@*88$7Acky4fIhP8i+^;9d%Kgxd zJaBggWd#O0T+pIonDVW~{%DuHpT-=!H@$bxL1YTJyVV*Sz}N5(fqj z2GS+*ijt`JNQ~D;e5rlBMyU}YvMyjXe9V55%X@!-BV&K}j@-1*Hy=dGxz!YQt4AmM z`4a^@F3;eR>R%*ko$DpnlEx>J=rJaI%}d@qA-TG7+MoBBW@jL@N++{Rdtm!3O1jxj|2*Ia^;^H0K?dSx=yx;o$sK-x}=-3q8ig6hZ%=G zNIVhm;hS92AE8i6d*h*JAZ`&z9Er!d_T8rVMNzS$o%O3h(mp&svZY7!QCW9RSMe}4nos*LAlBaKpRNigiqKEaZmyZvz$0=pO8YdIMib84`A z0MnU+mKAaAx`n!+gL18C=hxcx*%Rh{6o19io%_WPAM~p0da58zWlRjBTrfqr|65+Z z24+$cV#gsZQL}QGC(+N$3Rn$Nt^wwCr~jdD7veltDS;`CSbn!T*Ys4Vz~#$$3U0u4 zB5ceHhpG$xxcDs z^Z4j@&fvUtPLCHBI!SDk=a33v)p66>)ya9FIqqUt^4nWKEzjO>ZAxd`fs@ z%)ym2pH)?WE6wIy?srQrGb$w8D_?uHx#(>=!0TWz>E!dARYBt8qL`v`(D}CI)H;*2 z00*3X#0B_|>Fu3QsGg9)5Wu`=`ubio^&LdGbFzs$(q#26FM^8rfR1dsu^xh;Vce)3d3q0i?{dt$CH=kQ*?xodI()HCJiue+dZ=5R(W#A=$?|0TQUQV7@EA;|vSqNft|0rsdDV zT&nRGEBRNvy?e5Sgn?);Ea6D5^KcV=k&i;2GnXej^}+Sl=aOb$U)$`ZAjO`q1n0g6 zB}A>fV>M9aN>jD!*4!~x>Nyv-e;HHl9>-jq=urmFdmrp8e}UX!r~=Q~1LhjbY0Y?@ zFHQcM@olIGI`suuA<9!ijiaZ#Lw=y6S=TsKLa;tt%}JWL0~en5o2nL!cDwl-|8QWx z!*tBWUP@TFcADk$4@DmnM`sSbpw0cP`40 z&7s3!bZw+U7FzNytUPPv4l zoxF#TtlES=+TtIn@b5HkkAQ6$YX&_^E1F%s{2lq!7qHIp%=Y8<-|;&NC%!&fT|%Q) z)n?V^SkEalLb1KH0$wrKmu-2val0a_#&JGe&~Q?@b*;BUh`^^F?Fw|ylP~*YEdh*k zf^O08CDN^Y!ymodbI-d21#^2`E?Nzk-CDL%e{SzRH`BNjKwmuiYBL<9e+#wFS1Zwy zsLNK9?>&_Sc~UzD3_w;$9_j(yPEROoB>&2L-#t`;hTdd}mJz#~V?VWf(Ab?lSkh=>eA!AYVZ8^> z#MXcYn;`6X*C!TZ6ezn(ea=LX;3+g>=6Fo`` zvc7VHt%_N&V5(E6qZIlqF9R`FH}Z%p=v>OP(J@8g2aT_^1U}R%2aJnNlW1!u0(kzXvm-)}a$nIUxV`T4sW%&pD5x~;$ImaMUMJ6xA zu;N+k3Ju&x&Aqz(VhWI9M3`H7bKt}R!9t^DM&+Ut)=GD1W4R{5IpROpnebxtH>R&S zwlaLU=k+~5P;>(5Yyn8VkPD^=Gl-MEX`gr>_>j(My82uw2Xjgg5p~5|VYd~QhuQP` za=gWVU3TpC_TZQ;NlAa8$g9?o{7^8Ox)ij-!ooS!vkFf{Xbrqu=E)4(5*VoF7Np4b@3Y1q8dt>C>P{09Hvgmmkz6eFaF58u z4y8AlLd@jsJ3x1(t+ID#i=sHj6@PuUqhNHeao_n7JSwSyJ_ca{k!ALT?@U4<1=ntT zm#hxQ9>r)v4vOqwexM3hNhgNnBVCZtmZL#>%TYIdxW#`4t0>@ngx&h2aa`((#*?}& z>6{j3gw+5NE0%KXP%~57f?k~hMk|*w|16*jn@#?c<#WxY`$7ey>(T|$2%1#3A~eFG z!xtvNaCXzSmQ7(56-ET>9T~AMN11Va&H@L^Yz`oA7#G!TymoT36nBv{sE`is4ke5% zL8=OV)Ym4bMO3;S-AI7EsI@?BTQ%cAIeBG?gu!Xl}0N^Gtsi>-~pd0ldq)%l+06XK4s4W{MGD`{zWg@;j- zqM8rlb4X=rZ!PSua;)!(^Zh>a4Ny<7hwN{dal8yoQ*CqpV8KzDU&EU*=p{xYvAlHK zus5uCmTn=OXWxe+S?CY@}8^?xd1Bv(xr#EsHH`g-0c=(&4U@a1L9x>SrGjXb zO~aYd4sCQk<(iyJ!+nn`MXsuw-XCxw21i1{>(+~1G2OOR(yCLaJK*kvX-pA;9qeaa z**xHo+?kybP(BpjK_PhhO+ipk?|zksFT#IpPsGQcTjU1=66}nG%nW0T?8~*dMkG(J zBPQUB?woOPHks)Oy(Jq6IqinN_+*QXwR4Gs)^W*o!CW$;+0U>75FGOn(|K;l&-BxI6v-{n6^fhJkI(05{D;R?GJda zON?Rb>#3T{Z5>S=$eru+E~m2f zu9=zg(ocS;MAOv6Z#jb!xoyUxt>d-NlNYDB!u2*!$<;N!x;O4J@>ZUu-RQ!(Ns$32 zlT(c$gRagK0Rrcnw$NPzs4V4Ya*y+dBq1ijI}o{7?;!bXRhhyQvIK$k{94NZFeB0b zjVh{ttC%^jZnndhPx?}AS3ow&NYeV;NqYnIU~A0BS_PJ5SHJTDXS8ZAgvHG?FAcFf zjaQi1(_UZ)n-ibB^~Ir5i&EC@>OXfb%*pHPU)wcMutulSH21o*B2Xc0*oF#a01d_sx3}Yg<|xT@?)I%UQs)LgHp>bHEtgyW}; zQAx;^HaU+ocWr}8zuFdZ39I?<^TD%`LszkPrJ_z49Ep5lZQ7U+^H+BdrH;Eys0w`D zx}f?DK5fd)qhxv~d01vOoHuAAZ3z`Zxg;*UZ{57?(eqvQ*;!ZLfPyDe-7e@OIZisC zGISS}C3nx^=7eA6`XCxcd&ejUQ9$>L>;%?TyfKbLOXko}xh0)nu%h%8Swm^uS)@Bi zS0I7XNA=`DM^63RFg{0|wFHTFtO^ELHu+w#_q%pOf@M$=ghw1a*vmXDF(pvc$ct}W z91yoU%MmlE+`{OeGwMoWu!lM3%6kErHj-^KY{Dv?ui>kWl~aR8k^}Yq{5Ha=o3Q$i4wKb z{q;3w1N+k8$OdQAr!Px62oi~yTP*$AWP-BVZ9?!fq@ky*C|TF^MH>Izw580oR6)*h zedjYLH~wxGeGrao`DX9n^0zkL1mQZ;SPCAhLwYfK>0G;0OTo&Ug1v>nS#1%irkaE; z3R%+RtD(2v{QbXTZ~wb%p@@gcd|DYQ@YvUO8IYSocfTxpH*e+;R%_3C=OpB~#w81` z`dl9ow7E>yeVrcQn5?r8@j|JyY{cCsR{gjWm^u7eF1DrIbr#Q(+oJgDlh5_~WXXbd zWH0ozFW$voBJ}#I&thPFOf&wx_+LwRw1QT(%SKDiSJ!~*QmSvuwk<1UCel~@wjSM$ zyD3gMnuYbfq6MTl^J+d;$Qx&sWE>DI@rtaDKpm?2?!i{+74`Q4+gwGTJLuM{(_`>R zmQ=H>w4Jq(1?5*LJ$}CCv`xqD6Y9#AgE0JhruzQYp(nnin*ZQ6lJL5 zrHnctCF)%ooG~M>7XD=q^5tWU=tk1;>G@uC@@U%SVZlrvsF0rVPokLKkjB}`&)uq? zKRrXUL_LjP<&QWtLl3}G=v-ERTRxgq=4`%Ox#Qckbl1gqLiq*HKy0c~so%}Q-xU#J zTsk|2W1f95p}mv?x9{1O32DBsB{JPsx^f6XwrY*=aSW&2%Q*5#1i$}>4)I&$ml~8|9hm^@a1tM;n#Bs zKL5~p{jYBL+dFsvviFv=N@G*{IZ}AgZl+y&ivyU;LX3PUwW;o0dDMl7@?_11swOKu zZ2^|u-94tuVvdvMdtUFZycw6#XJVB6y<$3~b@U=8szzB!j700#OBr8R#PgerR& z#?}K5Va^al;9EZ};(6dCBl%>fOygql*pT1ZzfkFZcrqz)Fw6S&6hb#go$C}!gc`FGplsQ|ivx8L1Y+}xxal#5p6M4gpg3bv>yTRkx4 zYa0bIr1^I7B9j)z^Kx)cZlYBzJMd$_4>8pw@R5#WOi85lWvO>k=l0j2e)N*TVvZ2_ct*Y z1+YS2V}n^`a;D>+xaT=!f6yO{Ipw{u0>#ugpK>!34~ydxiGoOo_t(rzZmAPSJF?fE zwh&M@ufT@m8Gf8k+>W$k&Omop9vvNFLGcfAORlhX7gJV(N}<~5h?lP|b_S)0r`sYT zo(1y`?`fc+hgR4;Sw>2ku|{F3*o^tDCD+k|euUs?>f8Za;rLKKkVGs`Wgl)|m2ZQ8 zENVZry6#O&G^`9fZ%!O{S+W%CV2sB{H*Ea%r_gv7{DTH?mjfK9>dCvwt*bBe9{u*# zqPE0Qx$D%Tl!2_Kl_&~aP z-_My#FBa-vL+pp2n5+X+^O}3o2nOvN`}vh+LUVaC!)Ol>FD?_)qsx~+!{OUcP$ilg zkwEV8`o|Nhs6|wu#g*tW-NC**SQHoP@daqIIZl_Y=HSN0Ju(k-9-qj$0i}2)O*Li5 z)Z5M~njg|(r;{#*Y}>iPL`esdc-HZH7!(c9r?51vQgB!^`Zf)@O~06fM+R27@PwxH z5y(|b{^TCXkYsIpjB$C+^HL`tNBoB{!#bd1SpQR2U2oXX(!%T&U)@pW(m@AIa*f&i zI!~JNk`14mS`Y-K+xc9^>c?}>JaH*TJZ+T`^|Ze?am4NtY~rAJL3E5>{&>Cz-2hu> z2lvI>ucKl1>8!ILYgvZdPDgb@3v+91V0_5ObLfEx0q1}{*zL<~{I2j^lNmdC$S9&T z;vgvVK&*S1Kr_L6lwog}9MD}75m6PnWgF~BV+F~UQ2#f(J-bO`-k5eLK`v06jzE#R zUML%T^C78y*Jj7YE@s_Q@q)Rv_sPA>vDf^Pq8cmnjs{zPMNBgu1MTkPkvfKSLq5%2 z3u~#AGW5Xb@mgymz2iXJ`NUbKi%rRgx~Oy63!5%01FHsOnkS-OpXf-|voE{BJ2eN! zEAV9Q-rXhJcZ{)4E2rncm#IPFj^i$hu|O$GzR-=zulRbv2dRKw;Yn~)H}2=o8*Kp= zH9(Ri4Y*$4Yfn{eolL!ud^PI(SF$0(3I8z|z!1)vK2j*!&D`}^DEPCCc_y=U!uQ<^ zs%~$M>F&a@zB|(S_u87ccfFj*V|b^d{zL&2<`q$$)QU}17#&))_NJ6p+YEhfEa6_z z2ebEwJyn|+#`PgWVzjM)nF3qLFDf4&wMt7v05;z$I?u@tyO}gbw8X!<81olQ46a`< zQ zXOtdm`7NWklGPb#$$8?+7cE8+?;Jsk03Oo#y+?Q1l^ypOrNFi5x}a>6Th$ay`Y_ii zOLg^q!sXl39!$7*tlxWBk_Tgq96a=cuXD0izdgJktQ&kkF8E^Vhu*6^&*CBzY=_Jm zv%{g`+PR9_205+IPC3uG-#p*8f7V&dAz*4qv1TyW(3O_Oe2qPw-@*JN;+xa=i`PT!xBkNwb11s65njFN9)X-9f;o` z#N~7G)a}u?aaybV!nvcx+9Lprc2cO^a8*#-UPPTjWR^|kR|J}KHcHliTrWDF6CX^@#KTS9|Xs#uk&2;(H?Ab89i`bQ(kjl zc;pITef^GriiYS0V}tD~pdDv(Y+;)Bf-Ij`2I^czHL}F+c23uC6%eidsSt}YcOSA7+=LZc#0UwxAoe4ZlaWW0*;SAEG zx8Q~G*rX0HN2bq>=j!hZ<5*wH41DCwAu*|iR0XSC*sn0(j1i704Uwz|&#GzXI}46G zEw8iuqGzvL){MWc3Nf@zpt9leKK?Njv?yQT!f?%vZ#lZ8!3ZOoBoNql z0%5;)<|TfX!@6tQvP45hiLo^DG%HKZ(lgfZ?%$cOQhTYHyO6++OloKUWrD2%J$p4^ zFWzkpCPMHSA_*@-0gA3i<_551)=#n~z5cj+GP#l|o?adoHysbx`$ey`c)WevfRTKc z?+N2DEv>7>D{_m0A%Qf}sId-=GNTRS$HlonI?HIF)v7>q_xlm6G>vXz5Tkwv{jV5t zqhGcH8Oe!}Dvdb?3(Nq3N%%}MZ-&CtP7h&D8vr(|BL5pUi*IfNE&VJOD7T-|T+4rl z`{EuWe$e))G~cVA#U!SkzfKBwe4at&T*yYU@#r7LFw9DzUwbm-JchTZCyn&OmzDjxVwfaRS`pMm;- zicf~kz6Mr?u_mult5gGPw4BT9DG7>LH)tA7Mv&wr%+lPTGKv|N7VEG2F6g9RdTXl) z%*yz85KhU~W2whn5B+k^j>m^~TUah=(yPANoTk2woZT91zLo3d;_%E~s`2!54z69& z0Ht z)k5i5&AA?~FQkU&uF@A24JYu3^M9!Ko8f(6-1l`d5?TZ}T_P$2Q9DFDQBhZ@xc^MX z!PcVG@3j%!iNiK6N`VW)^pwS4f^#h+CYJ_nE^q3Ou6?SFH*9lb9VGWW`Dy2d^thbA zcqKL%v2S(n#HaDLAVcJe=_2Lz?|tznq~WAR<@2pS+M4TDLc#q9OjeAoU?@XZ)7xT{ zhzp)y9H&ny^Z3wC8!)=N8uPJYF9Tq|1MLk!FE_#IYw#^f*cSQc3Hcyv`nTps`huRn zAm*EDo*#;doLam@ct20-G$~k?ygu38iAsWLKS6_(0~ShlX!0osjs8jEITHR;@8@3X zqOENrtD&_+3kp?qTC4x`bF?haP;{;P?rVwdN>P#Mn)1gG+{8Yrh(6h?kD}duxm}Od z=e73y1>4JCP-b^yObFi1Sihph7*FRTq?$0&x-L7)r|lYqH`dfTn{2* zgC1*F3}gcX*)7Ju5~$BQC?QnJ4(32-nx0OaEpOZ7X*nuf3&m34m56irdg*osW+@)W zR|XBlksm7;8>ta{7S$?)G{W$wWEyWKeMjybwYu&`E42OrIel*cjn{{PJn{#_>1e#2 zs+6BlLqxq$reA9khQtl9jAk{2iy1~A>{U;}3)`HRv89XOIPLs%=Icznr6z$<=T`3H z*uKT^_s3h~E(p(s6IFxblAjl#`7fPb&j0 zMLVZ@0hhY?5~ua*oNDA9uti6l>)IQTzfA9{=-}twr%9E<#bqzV-E<;{_RaH59a^d5 z?^m6zMRJml1)cMBqO6GtYAsb`yBPVS#c`tq$LGgX)j)SmB<7?@KO|hk8Wu` zT*fAvUK>lsDlbBLS%*&w7ey%!T#jYjaUS=o(4D-O$F;uP`&GKj@df=&gZJ)e4Rn|G zarSkZ)G^nE;>+u@JNPeG$-(XhTXyU97PJv;!hw-Kah_Vem@Y?szz)+{b>0zeq+t$?|NZ{3l%$&<&2!6}w%9)fzt(*0$l6rOGqfYB(r7zVM zZ_0Zu*L|$?fO#JP-gQeTo6AOst02UFX9InGEnbU;mpE#sn=te*kW3N387iC|dTHlF zZt|7@J0CGL_fiqXWwx!cJ8<7#L#E=2WYVNvktc9s%8%7hP73|v45^R#DxW6|5@zL; zA{41KH?+C_jUe%1fJlhTmGn@UfZf|FPt50{{0zX9L0fs>bERPjP!lD-_0ufc4@4YP z!QQI}R+s;sM)N-*UWg!=I_ zk52U4Wv zt#n*=DMW#x7cla(#JrkDP}KJ@Ds&nBuY9w2JB7{!&Ws91{BDp)IXFEI8r_LBVLTtV zg;)N0R9b!J3V1E&J0i;4eu_DN>w*;z%)L49@iVXNqIP^XTaP-r=BXHUEBYbj<0{#G z7hg9;E(EV}(h!1-=QS{fDFa$bQMMt{T}MH{@Dq~pdFXEs7#Kl|xbe^}0o<~5W0M2{I=-S+= zX5|LL=|@KgLkFiV$U=-30*`vv``f;if#6jqJ!w4}IFlZ}b+n2x5slv>7n3Y*43*Pt znDktwllIOJMPAv<@V&fOX^3)YVYqcL?yga!#1!l)!H`oMS$pLq<^(XsW*uIRl_4O6 zxaI3G^Kr8mR6Jvg+AD zNu~vOul~GS7&WW)gJfT;{iGxSop8%uDm-%!!{UEiJ((DO$+{DmGt0GmLpV2ki_~|; zuwCr~K*Z<}gbC%F9P!yp_0%Wi25g-OGkBIiqNOEFbL=R7kuDW7R6FFwwQQ%gYdhac z8pUdi&I^gnTO|9^vfRhqmaJ|O$UIcOI-YfHfD!PR*WY;KgDT-!m@M3-M~pN3eN7JM zuKi2W$Lrk-mZNI8gfRbckTU#77H-(gXvW2FyG6Ic8%f(>xncNzmd|0agYT54C5OHm zF+e(Tv8iNH(Mz`WwM8B&%e^~(u{P{jx-!oh_AjH~=i5gh_VyA)J*43ftSrrG#T$9< zIO3}Z*`dtv4y1lX6jD7z1_mZR!gUPNn%(CRcGF##qPm#QD~!@?S{R!2EVcZ#)P-Uf zkRc|E1#yIeLic(a=(WsZJ$xH~8k2hiBR+wn-7hk#Zg+5A8Wa07&R|On60Ge#XaZOJ z(jK_npFirId}I5YShIGqFav0CsnR$^LS+fi^d_`>O23hmyMk`cbp7i*1H;GrT6<_S z=`7XAAiRU)XKv{I-tETjP|YQTMgbIwqj;9&ON6@Em|v?zMun_H?=%r}*+i8lIW3 z|4fO`jT!7$ejN}{532g>7>nkCi3Et@hVcmNgoj8Z10ObxDhI@x*~b*Fy@1sn0H*UQ~5@l6*XqP+GBLGnR00yxyO1jSd>BvYYy1cOy1m$$=UGnq|x(jb)q$CASuLi{G~ zA@=oBL3CxiKj#WoNdzewR%ZbmEj-(gdWw$VK`^EfhUant@BZ{&tGOtn(Ux}H{4lr2 zp3QX*k=?%*5CZZ}DdaueM=YNe|5#9b_#yo3lxHcP zX#Z)DI^P&=_Jo2PP_we6KO6vdwcFQyQd{Te^@@=@D=fu}K0w2Fjmc}gkT0*iFe!sz zY~x>d0%6+IPcGyUBdfEpYUq`&`rKA=zlsdt=8&XLKvtSe7k&Rl$v6Zk8O^tOvlRfV zIqN4w9$a#ejOi|QS^AFoX(cu6J>_MPwikWxRTpM(=s^ReZRjzh9C}N+w;9q>zKD7J zXi!@)-wlU(zql7~I&8(8#0nH{1#M~pfeu%Eo?El~d>()oovBr5pg!0Nws|LxkuGSq z7Qk!fqV7uaBtz)Giw9nndkt;Y^uaE+xndC~J(cqcX++Ch!Ml7oWALM4aqt7zi0 zFg}>cJDbzh6JmF@(a@6nEtOze^;*TnWtZ%L9**Xu~ij2FBJy(Pcsf-!im9@5*-d9Q?y)4CM zRaMcJecUIjjn3jG7vAfuWm1i9%=(hqQF;Vn=vDKox2Xod_dh7aZ5R&59et^0&n+iV|fIs|9VTyVG&sfc7lm69Y|VHAO>30HT4QwY7`Wq zi*$6jI7kV7iSOZ`qX{QlA5MscTqq9e5R{woCCXm%RWy57IaV!+1MtMucT%txYI+WV z52jV~nmB?3DJDeFtGg-nTeN%J)J|eriS5?uYA^FG%-sr;^f^RgHUR)0N>jeZ^o5=q zqg{S)^Ko}|sjTlt%l$_*(Ik3#WHgvDaTT@7v$-d}2Tm-74Pb4ixJ2fJDwdinXLref zO|Kh;r{zx!j?*eA9RoOh(Y6pgk^JM+{l?d>XVdsW4Qwqp>2p?X_RTSDa0+nbYp%yF zqG4xtgKdoGv1m=;9GKgmUykKuqp7n2UEgwlf1D1v)U9p3_*1kS2f#WuKWSSi#qd96 zx!SwmAA?+}#cT2sBkn^A^(3?`a`XnPigYy3#oLek8fDUvj6DOSszYFsz3O)KChBuBIY|`XNmlrt!8o+f3!mNLz!K8`tYs zwMd0-12wNIZY(9d(}sA#(zZZ}2+8(sn*YvdJZwk@ynXwl-W)EO>$HzAOi>bG^1orjSvKQ90Ho_~Bw23?XYsCJFO z-1lrOPKy>Ry=l58TU_aaFrsG%RPbW_aGG?XEcaF;5t^QUllj2dwVR=C?EMd7047wE zvTDxoxeoF>Q;tnbb;)*X$(F-uooMCmTQ)yQP!mN9vf{hM*+B8*5B@WxN~?70XtEIc z<#A<~X@1Blq1BEpy3jrSU1i4NFmxRWUn?e#sEu~40wMB6+ov~DmnDLFT3Z|Af8`t7bua(eKN-Z%xUZ}N-W?iv)hr+u$`%1T%zn2Hz*;xjF??Q&40q|h{u}z+iUGlVa@uJK*lF+PIW~8HFF>zu<^0(?>4tR zW*f88LKiXuFoJCerXI00px6-yVg{51{*)I|?K}z`#Ex3%bO+-ICuZr}whn0uz7b8} zd35VlPZFp%Tmg@<-YC|z+6@oRw#}qz1ImYjm%dWMss2TYUb7$TYjz>tw{-SqxStYN<~|j``kZhvskqan00&C_{lDDd zR1<}-Te~bxtOR2Ndzo|1jq2uuFrr@lZ z;5N@20q!NH{h8=mEAh>fa-;c_6^i9s?}K9D7n5%{Y2Sx64|4lJBCEe_TmgpU&q?U3 zUX?MJ6{UCr^ir}9X9fMs0sw(=Q$m|XB3kg^LtzZ6@vpQ)~0<8m`4KsOGZ zV=%M?|B>Dh-u2W%=0rE*NNyH)eNTbdu2llb4eGctg?JLBRX!Ra+PoOB^OxeitHYpI zgTD<{F})tME?FzWHwvs?R<1f`qxU4oQ8%3e`q14h<_zzeHtM_HgYw*#{l4@fGz~|> zhk%q_<)a~qyYPTU@p)hpQh^hX<^el@)(na!+l~uMc z-wg}!>bh=2T#BcenOUaE%3d`D@KB5x6gtj^5-whpZqUB5lk=T(PPxo~cnr*%s&%t? zLWom0%eXZ!?NOVF|MWPE71`*zGiMI$3Qrv5Hg>F|c3i-Bt=*9O??cJ%_%MVhXTv5i zdyv>no0rJN1|zG=OeiMH7A^RLU}hG)qRbxHJ6QOL_QUMLT>LWamgNWHgQpDsO9u!t zd3nHXNmY$nA3tzdj>A6Co?P8{Br#bJfH@Xa^(u&uBgoG^&BCS`d0 zHPWuTbEXj{I#-MO^_!C}yHps&sL~Afs}SBq?d*m&h)(RvjdFw>U?X8=x$~rGU&iBA zM8@IafrplOKh?HbS%zkktPjMcOKxTazBs~oZv@V`;YNA62D{ImxsD(2I28aDrdv-} zmP4NPpXKU$ui{IN)_{;swKJ{^gNR6vDLEoh^?+{w2WPM+3rsV?u|)@9D?0K^&B^r1 zIYL&=SAx#xjs7lcZ5m4I3%>8)%F7+@#%JAG?Ff-9tKIa^^t^W-9813Wz@1F;l zUBQwTX}7LDKT$=gH>=TvK+|e_G_#BL)+S0UrU13!YT} z%7#~H`>yPfB^R4H*Y97h@UTEo?fzBL=4{Rx3y`w5x`snNjh`bT5g$XJEz_`Kjt4)x z{|9^T8P!zV?R(o0K?M;I6(K6p5fl)lB_ayarGu0RNN-9nDJm*b6s30r1f=)S69wrd z^bS!V^xo6Y;(ng}-1j+S?|naeobi5o&lg}|7Us%YSDADE|Gzo##l)z$S>viyZ@DQs zYP%K^jlm6h{;~feuP?`zX&_dE7-x)VhriaRY3`PNds=O#?%cDh-EN{-C*>j8Elk_2 z!X){b@D6=zThtvx=Wb_h#jY6h4__JO$(MRg$$wH%1M`+y=Ia3Hh9WSa0 zp6BrS7!FdnSG&#eDTgX_$$}h}>gtpW;5(#Nr6DZ`gbAud)c^gNZ#wtf*tjjR%@{-T4m<<%u_?`2snPGmhL`Asx zr-RTeYHn2>m-`HjRpQOm7nGIDBX6>nWg}J}p-0t(X>7?9Nv#GXS{Sv@@5ivGzKHtX z%?2@~A}*D>Kq%9x*j0c*2b-Iz%d%Ka?T7BeJl~zhN$)~6V8UCJ*Ef&InoF)TcOO`g zvZ&!9k?%>k9hjcOGAfJg!3ioTYfC-MnN@a~N|If++|+RTG%t#^p>9(HE=oEZDG5v3 z^h>pCo7eJFe!??T5yL^9XV}ynrcr9eHx=MD12xwZ{VTjS1ya@W3~lwQ6Gcx#V?{6L zz&cHLpj}~g#L78in``Oy;4G?B=}vf_4ByMB=o)7+AUCE*Q^J2=KitGWI{8xt2{o(D zyz8gy+wX3=dPZOTYI@&Mu>0yh21*n8jLUYJ!i_X=AhA0nw5>nw4k2-=a*;B;gZNgM zn1jfDKGLjwFE4EF(u2AoK3dd_mtriE8YUYx4rnB!L#9(=Ay>m=wc!@9bJVyC$Q{m- z3*T9zCJ|pAU*C&F$Um`}B>T*QX(jg~*xwy5g5OU$)J#e-m=afj7k}NENsI>EG^aD~ zAO&nIy}J|dSC6EO?IjC@R~8Y}go^O5X0T$&D-U83^0OY7^K8)~(Y@x%6TBM9n9l64 z)~uEJFzf!bmAhg|d_FglyTxcFTV7c#Xe8jox_ulC_Tuz2Y7H%#B+}9NZI9$LC(oSJ zt_}>~8Gij3VPTr$G6El%^aOl#s_P9E9zR!_ez?E6k@{H+!k zre((>`JmYEQ#S|hJmV9<08kBSV?JG{454jSS0j$Wa7ylPhIcB4zmgxDQz z-mH%*i&28%Wma>^u@Zw~dc?Nw?2tH0LzYyM*L#_b_q-PS^$yvg_`nc$_(~Pnt^$@w z3=PjtC8v4*3S6T`eU?OKks3W|@#Ky?1fc?yyMWlm=_56OFOYdOrP!>f^3a#XJA|A! zv5>KPd>(4*owcJ$Frsdbl=|f-PmeZW)B0eWPu7T}RJk%U6tHUmevg;@7IG2vg#sMv zr0i!K-ix!@IUU90_>Q~6S$>3*dK80AN+D)ze>`ES5-RUCHGse(*Nr5nQFfX4-^{GA zs>6#fJwc#~B?uk&5+D{uDg}yNKRz;q3YF0ak&nZkG!UB~TCbhu+SW*V2vXqHEZkN# zyk6$9=XT(mST!}#a;t5=*zpK(M{MAi!JwZ6pr%AA*906wi`4Q0B#Ll~+3p{!L|c5y zFeQ^rIVh%858CSYd>=O+qwl9guV884iyN;0vzRU8~?>yu%5|R)CzC#qf)SFFu ztKqSqmDv~aR{jpAmWH(S;Sb4b&lRTNZdgj5z+~XApynyHA2?fSp)iZR3=Voq%&KS z+A&Rs>&J&@{t-ndUO8M5ka~c0-)#w$INQ<)xd2YvX$rIVcE0wRo^E^J3gzzLPb(CG zMLVqJUr=xW6kBOliQZN>K^;C8AU*%zR1O&J&Xq?8FTyCM7dSfp2%|HRX4)``88(W*3+hMruA5_`6&sAYW0=Ju6>pL zFxDF0cFlAz?Qy1@d}Djg2`~R`5evj^rX}b8a6_~NM4p6Ft)=d?^&81(cff5umVUC_ z4$K>X**`cE%389utNt1kvp8+tC%Ad*g@qh@$}rO}#Z&URcI_V0IsLCtN&ClZw<}(Z ze7*l+rv~kHk8`x4tT4_bTSLy|M7Yx@-+`j-&*7^S2anrzYs~D}!x(hE{wJbDuH z=ow|^gy)v#Za)eh!V!AaeYzJMw+l%IzRd@6nyZ( zsrd`oZiDWq#H+1um^rf>+V8hqAsW1H6Rw}C_DTJRrPvG$y(Re-say*lrS7FWO$tzQ zFEv@r=sf<&s{_`1q;tru;D|V9?C^tViT7p$P=x|Ojh4&T>BcQ0)I-0sd8dgU33`5) z%ja0z5cN0Z_3U|{1N8a*T-Te$*T->N`83$NaJGo{)@|%ZeCE)I47P)Hy68ILoBV^? zo7(847Qmj&=wzyC57eVshQu;%9-m%h(4Qmbh?#7Www}~hls$Qm-i+z#EBIZlOp{JJ z^)WK|We$Q*&q6rBqTIHI)x4_APQ43gPs;@%;FHltcHLrbn|Gny`0-M!kXw|>BOwdE zX17|Ovj~I}m(^~yF}K%JZvFlht8dX?Z-6Zk7f6Jr(xzCm?14n|7-oCPJ^j|zb4JJP zLDL};X$=vpgoK`kCyXkT!N8EF1a@^PV7Lm%gXZvir4>kD%+&@82t(xh@HJ!>nzD;q zpJIkqN+el6++x70_snd~cKD4~SR#5vuEWAk2zgM#N*36;>wP=ip}YWMm52#Bfogm7 zT^|y88ykH`n_X6-ru4oN`fpVEfAK2poXB0O|9$#zMCpHp|NLOMcZn+5-NI-<;Aq(!TJk^W5=&d*t8m9ci~ee%1GHjB)?s&>cB- zf*&v>Jhy#+^xq!&)2pAR=OJrBw9W1G95Hxovj#CBb9X+B!^QOB=_z<;<(ZAY9ofHL z@IK`at4`8x$dpe*hDA0u(SuiRSclr+gH7D}a`nG|F#i14PZ}p+(Y&=T0nmqtENQ9}iNEII!7&(sqe z&+WBXo#hmx#|8eQo_i~oghoqJ3}KsBxD<+o9~9~&A_g28sB zRw#qxg!fgi%l@a?+4H{uK3U!D52l!%KaDYJZ^EW;;(FS}pka5{ebO6$CFbZXgUf}H z*9uZ;Zbr8-JLa#>(905JCYv93xMt*dH^yA2@RkeivjRZ)=Bp(GrY(>Z*xfsrWe#Sr z;oHFzxrPeSfJ(Ec`|Rl)`(;MW){srdA)6bklc+H-sDXyoM9$JuIAdD~mD?Jvy<0jS z8c-m_HBuIgMvz$Wnv*KX)Ka-KUvmd@0W%Y!+;i&>*>`1qto+Ru2bz;v=S6hy zetS@k-~R0v(U+JlYlw|o{Ssvk1N#pYedS z;F`^9LM;{{aQjz;qhJ00yPb8O<>+eXLQ^XFBjEKp#a=l-0@CZ?j@8YZVs+T=V+N8M zazGbn3CUHwsyk}t%$iLI`7a>A>{j03aEUl_`!-OyN@%I^EE5Eomg&8jo zO4sF3Jvn89b2Ig`%{m6 zc9Qm@wnN-|b?B@rc{zE7vXZ?N$+qFcl++3qKX;VR%qO`Ug^2Iden4@blSrU29WP|v zb@~gzt2E&1rS|n>@TBg>Oh9~-+E^OF^QRKKL~?QI;~UteIE3Fw-$hWC@-Uky^g=0z&@ z8*L5@-Js0|Hy&!~7`6D{UV7r)!c^ULMH}WDB9D1+hI<6%STivX;iRU0w`vIwPlbKV zJG=!i=5Fec;QaDxnsOEzgiu_zH>Kz-uf*~$>8;7)t|VX-_~}e3jgNUq*P&`&S;&K# z4{7{-+7PB#ovOeU5jkmjYWEUNB6seVWu0xeX}KKo=vhpGGuQIo{gP&gcSknWfNAd( z!{+EE4=iWY6A2}uhG%cs>D znoN!Sh0>Q9h3Qwk-MY_ambr9^Hy$s0eE0klvUS6~G2Ke=7k|4(k$y^H_1+^+qU z|BBlshyna2D^@u)wUem7*@{2qpD1r%*wC2wF5B^y?>ynN=O1ro5r zve?Ke9{Pl*Vb3RL#YHKzmDgAMUa?Ma3&dJfmP{1H|90U6@`(|w=-pbx@85MFolZqk zU~YiHwS0E?o0nVr+TAekSva13!mAKlmHOzR=Z}z_bf(VqLaQv_ycFxV_X8MKjipuI z4Yo-SiWymP({lyEOaVPA*8c-4KZ$Q_^4)-%vF1}dJ%B3!ED_-%(aSl3)8OCBO^mx| z)6wg)`(|ocTgziD&y9PBXwPNt{!Ls4FpQrTgxT8Ic$1FmSFJgffOk%|+xOg$nW=g# zTe1~uM_=l`I-Q8*XVbGO^E0q)oY^LHH+1?qJ~2<&ZDuwo?m=b6Mh)b1+lZN zIQOsL+VH=GppYx^LpLzK~4oT>hQ@B2eC)}En1iI z!=Cxfeixm07)Em-?Or|yYe67{8eqRm1*k6)G%3>Z97XtR`OWj~&%8&uPBIMDzKuA5 z`_-w&WzBolCi-v*M)&%8;3DP;;T^RAe#_nbnT2$GbT6Q`{luQxktNTWkhx}7HkRWF z_Vz8hIAU4!hKX0i+qQo1xSw&kpWvoQM-0b@=yv;*%yGc$s-LZ6TCx@Z#(Q$|*fM7K z5Z|uLWT@Lnr2_T*krhcf!;_`%wZP%1v`}i@KiCWch890%-9G!)J;^So)V+LpL+)A9 z(jE1i!mYGk6cRE4gxwDYLmlP9f!;8z@6 z6sjKs6Wj}oW}oF#@M@JNh;lt!(5pVIu+Yq?l=hacr{{Hh3w9=Lll6@GcPsfRyg@6 z*Y4wVsb%@sH6QBKgWr#69fG;K{{(X}i2q-Jxz>4co)jxQ>+{`dzuI+R5nGMP^@bRDTJ>etB5mXsfe- zQgm)cVt81vKaZLuZ;>D>eB{uYbt#EnyI8yqQ1YcK_=d+I zH?QoXr&X?b^g1&oHkJuGWJ_eOpINR10grgY+f<0?kcpvI{JOTPrcpMm67Xi+VU`pa zMN6^08*Z^hFUDsszbp$%1&T-P=U2+gbk2PI6+hDG23O813+NZWtwd!XPG|$`;Ex>L z>mPL61LpKz_)yafbxu*IpXSX`qIzI!GWXnHO5{J`VUpX6Kj&dML4zhmab6v1i>f@=wv7|az5n(gH3!lD|C)CMaCVo!_ zb5Iu}D(qn#-&fj_nfanAze^*{xN7=`kHeP4u+HzXQ8kU9LsIaMtr7zx1<(V4w+X^N z9&Fp!{S z<$^3q31$FdPrGo~&rmc7x?X07ZU4ggQ)JpeVxrxiH;}#8IVE5*8+p!&M=S#%!u4kE zqqPij^<_A|>c3-zPK~opqeZ4r34l!K0buW*t#5LALjMA>t1?InY@!o=k#BF?Kd^#g z?4RR(oA;3G;??lV)2ve&{PjY%PdVCVd?|kBkQn%$^WvAI=Caw^DepJtyxV5u3OrLR zI|^$L@0v|}DW{_~tW)kX z=ot$=c;(?@lMU+7FZ*q>SkR|y>C5GrohNAf5F{WZv0sm%%1Lh2@c*ot(Qbdb+#R3e z)4W-OUUAEX@V}*dGq$VVu?e5C`(fO_7577cU$n>6>A z>kJPZWx1*^`L#gbxM%XYJduh|@V$w} zy~`w;#ALF|4PSe_DP8D6-)~ReQt?u&#lsf+=37my%!ilmNZ4<02|h7Fq||Yv+yNp?m?+%Y=Kc}1emq)@ji^EBS0gy$M7 zlF6~LMI8*4>)#Ef2dTVhhx?EcMjOcMk1s!;EDDZKm4QdNzquc6*IjrpjdlNZ0{h^m znY2;9+mz1GLp#20G?jnzNN7szr1quz4z=)A4ae)Y4BN7cdA4|}JMjlP(Stwe*lK&KnC8vlHb=#vrh2chUvJH3d)F0; zk>Zz_v8As66oBA0^rh&#T}d*bC;w9v*r-USx?D1p*nO*a1vFA-l8~_`wPYd0;$pb3 z6PeC3!wH}ZdEMub0MJ(#P$DgfPcvQe4m9@v-W*m zcPHt`pMjIKz2S7J)8sOv5qD)l${**CsdH*sd%Bh_YI25Q8!MU?a?#0xXmxuw`m7z3 z8^X^=3!obxCr%RbhVw%oKb_2$NX?_MjY$*qoh7K3*dPtEqVV+x*K7)B{e8#N)fcK^fCM{P``>{9a)&1ZJZQH=*1KHc- zag%D6=)~ogCTRuU@YBQHX)8>DN^@y`bMxeV?rZ?%z`hK}2_UaL?^=<5=DQn9B9sB9 z3evZEJaemFM>beHF%}`Rk2N`Mq{xGEzL2<#|L&Cf2~oSnp;N`MUyz4p+uyib0w$@j zYST_clFS<^8rNXW65@3jSP)G5A$azdR+E08m+;Cz+Qe&!~Q|dVrGwx|897H zWc~XZ%xj_ACUW>r-*WRV_hEc#b);1_VXrS4I7V_>*|^!?v{n)I?edZ0r}VB*1gc$8 zw3^zjMdv%ulmg8M$0giu^E+RAsX4{paHCvevBqj{A0P=NWglAw9$D3MEec-K?{6`q z8`%bial-IK;vK;MAId6WQLjBgzh*LuW@zpW+!h^*crUnW-vMf|y2ti+`K{O!>+!%ixzuDn`$UO&3^Lf=Lhbv>o1zgCF`ToW zpUYmeMoV?<*3yh+)-taSegBbHIXC7f^Qt6vw}NsJo}r&^IytN`l0|j z%jmGJ#J@^GfAhnucA&Pk;9jG4(?2XzeLbKoNmof6_$=mGU)hg^4?NioMzZ6DWGNv+ zKA$|7B^}k5IBr<<6jvP)d2p>;<`xs*|IqOn4`S!cmROeM};!78j zVajTtkyeH#Bw-$7M7(RH{0nA}ls#LYtUR$9TY8_cLYM@hHsL={f|Ct@Py)YSQhwup z?VKjbuy^0>VK!8hWA2#hPXMDOhA79bKbPs{R!Ky=5YoGh#9P$!`r{6B*9-HVdD}4m zdRwicsuidJww5W-Eer6|GHV_zJ_Fp+uoJb$%h3Ey9`QGDu$(-q0(w zfFBr9XIX2=)XE%S&rjhMSf`druqqaYOK|TgUcJO{aX4%)NF#JDBS-lOU-Dh=Pa&xM zuQrj$c_H;OQ67hN)S&0ichO;j@0AU8wOWLc&W9(v3jlAjoE!@2Pn#}y^?+X-nZ&|L z0BFyuByX2fQEu!b%4o*KZ!R;a<2n63rr*9jr7K9-)J=~FRx3OUfV2Hm_g2lcJ!pW~ zv+q5h?zXG-H%(kHi;gz8!Xqe+G|w{6>Xn{;0CX1+8^kVN))8?PM#tMyUtVCj9jtw$ z2C+B>c+uo`=5V@$jyaM5$6feM5^xkFNZSzmNK@(MVM2Epp^ST`|N$?92oV$ zLS#g)L6M>p+W$k+a??JB_(Jx@&i@RYMIU?%h#dvimyx|=qeZppP5#J{=6!Wsbo@(t z1k7dG=lg5~UzH1GXU1Bnwb&G)4IHA`SNm79zT75w$Xu>iQv#OwJ|cm})V6eY_JZS( zgTP>?{nfEIlyaNFGh?Mzj9hZYY>XM>4pS6y$H{HRTm!Mh?i2+jUb&(E5V4f9HTvZ- zG4mSys+|YiWgYuqR^bt8ZW#PC0XcqvSWK*1NTFp_A*hN=0IOgfk8@aX8K`oB7;UvM zMfbe+0i8~sVQx}rhNUjqRPvv9`2iS`7JwM*GgWbm^{1&U)4^d)3_9tiN7pGwM zvcMRSNVHq@+7Hr%X{R04X2MWp+MOq~ngPf;_e~fLb6o8`*tZk~&d;74-JVh!4F*7NLZTe>lo`SCA=EWFr130YSF%XBQ@Yzz|U z#eN`zQ&uR@Xe7kMFzCsDumI2~iZ$jy4Us<{vIH$kq@jF4qmRtrO#&cS@T0d*wh!1c z>xftuhEP`2aEq|3cyiey2q0Im>WE^9Ee`loT-yIE%}kT}&W}Zr7*>VNc*+2auh*)! zqd(tS;!shO+>7Y<*V+GtK$~PJ+Ea~1ROLVT$*isP2W0E}#(xUgnmvSUIZna<3fVg1 zbK`#i*$NeZ4hZ*J!x>C&20ReF_M+GMU}d~S3n8LqCVHKB*kwRjT)n`=REW;xwg6Hv z=kqI8->ko)wIHwTmC{*FFo0pKYxk^;B!kcS&orP4qqsEHXnRo}mMsXEJO}oziSObz>z3scr4q|18effMUj9=NBWKgwr0) z9TjdGA3m%?eA{lS>{(c^zfZpYbjJVxC=IdpqQYu~N7P?y%Cd7c&k+r0DS}fYR?2Kn zRO=5#!Y>yIMWK1yr*)B<6r>mpkOzKqZIoI=yA3*~i2&_m`oFE$YkU~r$yDNfYgOzD z9&{U%nFZZIrai(}MV?vhcr{7zv|pE6lAYGlY@@6**B)H%yC9iV@pjmcsP67v)DIr{Zxs@Cd+i(MH75d zbf4dX&%#dIj3mA~@oOBQ?dk)LvtRbCVq#ZYkBpQ30BK+0_*m=u-C0{1M`zqed8iKg z-aO;QzYw##B5~Eq>ibtn){dhyx{iYZ>F;T2Mp2A1 zKIr`-jmIuy^yVb12rRYcKx%P$jDB)EwI5ZDz9Kp?It0k$q4P+fw+D_2t^6GM?TMOK z0)cqE964XJvGUo4di}cci|Yw{{3c_ub$+xM(8GVyw2sGuhYqq%Bzj-Gj+=2A(}$R3 z%{!H%X$R3QepCRc^^B=zuM34t%LA3{tpol5K8tlRSupIZCl<69KDgK?t$-Ox#UyX4 z7^e)pFg}B3@Cok3bZwjNlbNx3!zH36hkcv7KUc{Vp0?PG-9Z`w{J7(&7Yq{q82f6 zg@9JM9FFj&n7I7HpOk{#d+sQagNA@Dp!aIfUJd&jHI^=} z_dw^G56@l2*oMj0m9QnK5@_b#!~vU4g-D{Rxqh+y&TrdJpo>lJg4tGMnBBKx4`P|a znz@xS%Dq;qGghq^h$O#?C#VbtC8pWv6(q*Mg}QDgY}u(n3<*NGJ5G1LBokcwdE2oL z=rC;ZKU>b|bHfa{JxvW~XFV?|Zco9JPMVq9T4-~$3~9&jKYu4?yh(>g?0GKeqYggx z+L5vMcLNoM{?TZsI2SpCBrDqM>wSJKCD-M-op9QDDc#Vv|FQqSn%xkH+a1i<1gnR4 zDF(>o3V_MXy-BHn0jWJtoY^fFNdjj$!sdnTp?nS z`i%OonxoYT&cy46u0zZF>M{W4uo2)Jt9@+4$S=hjku1l-#lb>0Ofem^`538PToD{k zY+L>rR<&!Qmh)NkMTu&ntQB8WzeX99h$0vbUrSj1OsU0hF)1idDw(A=Bo~r1v7g%- zR@TaX_s)*#1*v=cwuha%GQ)r&a*6>qoPrLp&&E6Ce00_iwAgdHv60BhV0;f@&cIYet8vSiv5N#T#94p}{8q-)pu$=8^}xh7ACsXUhzJef#A z?sXsU?oOYeMW%=>j^0Ro)*rz8mhG6so1SAQPS8cGW3CDy0<8I22i` zLl||>zIuHA(W9$hhc$6gn(Otnd1<@(m4GRDcG7lA87~3o@zrgbrLdj6)lCBHJ=NlZ zT(&V^v+x})Ty^)8706h=W3S)sVl#1fm}CTARVrSgBLx}cz(f408S;eLqJjxR6x4`@ zvvCUr2}iArRo&2KIg12ujW+C;NK`<;h&(k?dgZk?Hynh=#?y?(XXuNTjDkOK>B)XA zD3~BPS4W2LBCMC8DP8N3gy7W$e{kweSo)YWj{3HMX0wb7tPORu!Qg)SA$u1+;F$O0 z5U*&cDH%1-VfgThZ1ORn)DFnmkFBLU1}SScPU;Ar zQAxrvPuHb7UdnA}85chjBeCe+5gnIMxqK6&H;xfo87semPrT5_B0{PvWP~lZM(bHR zzL!{9AkFI`U=4kgkZSkm#SVE9-=4#Wv4vFNnGmvo7YXekD@3xalc*(368+>HA&S$r z%3r1NX1l586pq%}c90Qi(I1g87CR~iPUm|!hQ^I9Rl3o-cMyerDb|z^dF14~h(`lC z!?#Q%wOU=mEMfHcgK|jQcf2ZnHF1Zf`t8IkuI0eWf_cI$b8z>KzU}yJ+C{E zj&a3N#OP}DkFlpTbCK$|-E#}3+(yhp6&_H-A$oO)nl(~OAbqoE^6GxBGj3hH*Jk5E zuNxU|)h35AbWLmhZqcruO|jUC;yL>Z-9b0pq3|tMfTUC_y(}=e2_TVmUrpY{TMWDn zhi%w}fI1{b!rTu0y2f&uc3vef1Fzps$L2ZgcVt0$q(uBoCG974JtH!Np28Z!8##D% zYm`^)^4~s~x(-r-Ey?9>pTN7Jx>QFmnO|e?81YGqF{`N={x&|?GQrh!`sbX@ddNxL z=Cnv^>J_-Vh6wGKNr?kNvNwzL=oOw3c5u(4v*x?SEe_;b%YE0CxQI8`SZU^h>7g8& z(c&7hp#3$LNjQ=|Br_1M`{liTiXA)Dri%JtS3zfN(f59^Nj8N}MKOMp{>fiN4ZrA3X*?F7E`}ftA8QW+ zXk^&}1lSUP%&8^uXA#cUQ!JdZTG1q$nSfR*n70vC2|*F*{ml2CN9Jv15&*a?Zp%#= z0>*hUN>HRl+N~H+hJHq}{rS^$O>XchT;DDt^T|`VIPGn)!V?k-6F)_xi=xfVGYmcGuOKvjb?2P#j!s=TljPsrTg@#VX7( zr&^}gl22-B=qPh|a*FOn#TmuDXyQP%=>E9aGnihCF%$KDpY+2=-`Pz3&PwNUP4RkW z`{d9)$mm?}AYznE97$fK2vbrl9dTx>$1ei2BDW79+tNNw#$dW;HBJt1>uoC;-_pSk z57K-_GiX^5nsc8EgP0s2xn^;DwH8)(mIu z(S!W@@Eq(u56i{;A13e>)F=mEP0jAbB3DQ7&|3BVgWph)E+z1q5mL$3u18fPfUg&F zPiEr|ipqmye*3Kuc7U)(ViZj;&QqFpDaXiVgOG|r8&g8L0>(4$V%UgU;la!G*Ku!p z%)rC4tqPZKTmImKkVz=OJHF|>0C^cG2rmw`b|wU^`;5h5up=1I2pV$$1D)D;E0>Rc zF%T%c;j-O057K8nVTR+_5VazKbNh8hVdJ}(3m*KCvy8eO4Z&?$Z-GAMDW6>~%&?rt z7iRoptwHDRBai-Q9v*-+ld7epXk%wTzS!o!7y~YPPu;bYv1H8Z|K)VuNTb7mHo6Db zh2UHW)=rSm+~eDN%k#fPbKyT2y$jcU3W=-Rl)fDVQ#A~*SAj-QU6sg}Rp}bNK}h!F zVzknWe*H*cE*2DA3FAT`4@Y*p>_Qg5?cB(v^twJ#Pd>SI8CTVRyKqnNqM<&SeG%jR zIBtV5F^mvUu~7IX`+DI_`i5mpyHItBoW_PFa;Il4%4x*72rBWAvsDI;Dd6^uUwdwN^`JzIQ~v05$6)U>(ToQCl?Q`%EEeHvK7vF@Em1 zG;t+9F&_3II6jOvg^{T8wF5^}s;-LF3{dlyEz~>Cy>b4cBx+}Us$3%`^>e!)i5lBc zvnNw=MSZ!DXQ1B23Bq(TI?}_4a5f7UL%TSVN$*2Pw=0NK-2c7(fLe4;7<`aX+VC`Y zD#KOtMV3vNBeJqEfp=_ItFE;{Z~oe_AjTMfk24WzL>5KJGWF}UoDJZF>JdJ2A|Dr; zmAn1ekdWEO&oBneZ8PV%uowSasldhMpZxmUh9fU(r)q<**LW|jxa(nBlF1Req19a zeE?lOM*qCurYaYujRJbjA*EZ7va8IZRQNLb3sy7Qi}Gmer8vFP`%KTwuf?|G(o-^h zr#@EwhBOWEuj>c0u}GivNoUr{C%zhP_i0prMlsbB{)LN9yBkXOCcQKRr;sx zLNMuL9Qoe{1u)JR+#hr6QBKvA5SVM!=gr)zUls%HZ{qWv7T+AL1Y#Hi1Z{H> zMM^7xpGN7#?_iuMq+g`^?x2klahx0RqiUUs4Uu|YBQ=NmtPFYCmZMIp$t?h}iYw8g zd-ZCWA8!ahpc>ab4^ti5yYYSWwRf9ikcu{v)9?L} zFM!rGfKXu7DM`|{(XBFVIByk+$|pX8k;B(>ufow{Co0c|5y6+E3d9eXNCQ0XUs~@G zKA=#>H*syn{)+#x(iF`!Jd?UuAUUw#FQdFGW==7Ug?la1Y7Ufl!vovxV`BzImN{Yjl(_{wd`TE&=gtO{X(KvZz>~&pHA{I^I(4&rwX`ccHbP|}@oP$8uC0zAV zr8Z5gHrOAsk7pgEwKi{O`2JXS9Cgw2!sMjmXs365%lq!Y!VB=`2~oTJ6+H>gz+i?{ z>&svbi%3H&@?;J>M+SZQkA>hbKiKw9o=xn)=d!Bv4MimS(w_w@Pd7=KHnSm74G{O| zv5dK{7Lo3Xh0*PPoo6^bmRYCcCT6@zH3au}2mOKp?y=kY{yd`4mEH>#+KC^Tc|H~+ zrxUa-4AljfNu%;ssjn@E6-1(=b0j8ry?AoIyz32FaBluU3Hq`y#RG|P2<&Ft6KHw2 zGjING+a05xWLINXE{J$z8cnzdzIf(oZ^v`~wXalcDw&m_=>Go6 zlwVg;Y-GSqdn5F&N8@y51&7y84ycegU#cB^%af%Nw)o3=HOSjqE}=cV2$oe`0;BKj z{$NAOw;pgCiJNAwJq^v)!!#fohvS+i{CW%=d5^lx17Tq9%XBvN3a=QRsjY2URc$s2;zsCCp3GCW4`k z))Bv5ZVQ<& zN>IZGYTDHO<6`?4!zL`hzhSfSjDr2HYu_0gpnh${UhsKXA$AAfuG_-2S{7_o5xR`K z?0ZJNf16#=5Wk=5*^aFyBkY}Uu#gWquqxtyVX-iYqAZ+o&5jSqM8NsLqid;42MsEE zGTz$p0pgDPZS6~$+SJ8U9rYMr7^Jv9wYdv= z)9B%qO)hr6D)CXNYT2-5(tU&ZTA+jzkYYw)4P^9$YXsTJE|$H`^tUA4~mev&ew*`W|D5ZqA1HSw3unex_DjF|;Z7K9MPjh&vh^SM6S{cL|>5 zsroD|j?p%Rso(2om}4AK_coWL*KDa9|Lh~DxL?lwUlN^@?RdxviLrt&F3Vsq8T{)L{Es7B?W!|Pz5V-)`-1kM1NmHp=kjm;FKoP0)Bt%;;A0} zwRyimBj~xv)T-NqN+*pTKd|;&^8>2aBWMKro8UeZW(5stXXw16rlf9eC>JOYW)T7U zZgaUKvDEiAE5!MGQF_u8(Y1Sm(5wU2SJ7=Iq8oA2(_5P#xH}$O37(BJG(UNI zv#5 z!1BHAd)f18J;aPMYc|Y@@LGJ})2ff`NgEQtL2=}b((IUul&F>U7elUvK*#OIXd9YA zIWRj3s#%5G5OMYNRr)naxq)7D_qVTKuW^LoKp%Eb`6xZ|}UfhITTuYt7o=q)WH#G3SC#2$OY2n6Ni{i7ppV8$;c2gMx$iNBQJtm$XTEkFohbCe(DG-E6Ks_Wdg(@Kp?p_PJe7d}xMy zrYdwM5scdqe_^)-P3fROIaDV1Y9aLwl0m&>k+jGVbN-mYA#Z{n=!&LhX(C#F>hcn0ldb&-Gs8ts$%#g=FEN>lfLOzbdQWG}W#mJyN9BX=tp+g9 z*~Cf?Iq9z-A9sAE^o#%UeeM=qGavzf{#lFgmb68FK8$^)i@sfYF6*t?oH6IhYE0p1 zm2=HylSw6}*4HN6s#eWO!dHyQi(4K|v7$KV7Ep{>@`fhCDG&GKAidqLhkJf;tCw2x zz+v(pu0$~-#!>E!3&wE|HxPm5ar4)od}31bFbsvAV-eo^exfq^d*5bUK`=C+TEn*o zNQS7HxwnYf&@V;lKS0XZysPxK+b)`{`WRm>Ht$bs9|Tv$IgxUEzz^#oRolZ9a(VP0 zIkX}IUAT)HX+LP+MW=ET=5ix7TQN`p^%11ixlz%^u@k9E>7jP5h9{;nHSWiS?$N!l zHlV*qvB($gJMbWcHxBc?Ti!u8!6SuE1otGtR!+JEvB-|fL5ck_~3rz^(V1%dNjHIy~aW0(W9y4 zU`I&5A2pWW+`DB5k>pD0ehARO+P{_gVwo4NTfW9cdWrbkK;Z@9zlm;6$a2sXIp&0K zh5{offA0;HtTY_D<&f&UY4nEn+^QYj8RRm%JIGv@#TH>|ggsw@S7{Vg;uAbD){?a^ z9(Y0mTMyFj1iCXEukW0j!-HBgA1Md_mPSC=1UFyn%ChfqXDbhg`7h76U43j4t3?Ym zyC7R4N+i-nMo(U-rg6uJFG7AJa?T_R4zFknY1)OTYF}Y<=*-uuHUW^5GLI8TerJ* zmCHIEPuA||th59z(&-^`-Ew$r%YQs=4lI%p>0n?Rk7Ka7E+^47TUs;{d&fRx7X6uv zsQoGNC$1>!UZRmkWPtRUSWswU>*$_M$CbE)r-Jk%MW+Md3CmLU0y|sk0XBX=N=rwO z3$L9(5sZ7x4^m5lSp@R%eY2u7jac?~ZUphSdeH>?_}k<4dHM@^GOlQa&v0=?Llo9H`$t{pu>soVS;|`AYK6)`;bF+3h3`O zpqk@7>^ARL#16kr_0#Wa|1s4WA16R4)4{wh6^Rb0W7|_LFCwCaDFLW_{eUNHpYo)> zz=rY-R1|7o+pt>N^idryJ^yJ@ebIMN8;t3xmiK;!89~qS{1(Es6aC(EN_#4GOGAa z#r-3&Rl&FvZx)|<|jHf8}Dr%o6*Dk5{)Dt zMUFiHGVtVIn9^|$-o`IZ`ZUYN^iprV?5_Edrr!`zXyh3*78FU#B~xci5gHDSl(Km3 zTa!Agraj<(>f1cz`m|~My0r1DTlV69NCslKtj{i}BGqgFIlQgj;v!cwtHKp#ZMM!) zxX=32oNLNWybb3(o0^9J8dx#42#fn^YAq{J|0mjF4H zA+%HEM8{WrqCXSsF^KdAV1z((wvvj}jb(qt(uRvl|Mt!Q#ol{GHNCa{qRWbkf=E@w zs7M!3P(Vr|Dj?EpR7xl!ARy8~QdC5wD^;XKK|xwV4LwmhMCrX4DWTWUl900huJ2vn z9{XJE^f}-wR{uA<53;^=1$|scCIW9 z%l2Wpk?ZFUhfcf}K4VgWD@+mH@H?fYGhdy@55g$}fo8zU*XE;_xc1PQ^6(Y~!)-F=*ywz~>&y zxvDel9}8i-L~_{Ths*2VD5vV=@nZ9QL}@$J<99pg;Oi@7hR5X&7#oP=q|Taw!d&(TGPt#f=4 zV4;LrMoedC>&}gz^_7zWZP?{fuSSZA6}j|4=f{`UL&R}gcK5Jre^Aj-rThC6 zd-i1%1#le1xbWsMd+mRzcv7Y^JLg9GiPC(%L-=nN$Z{aF=kHpCH(+fthvkt*QFY7C zcRoG~4klZkxqFAUIe#m7HV+i6B+q~M&Y|FC2knd7^IWHr0pJVIc;Tg;o=UB555P^v z#vR`IPqheH*G>e=-elHtv`*E<$VVjMiUbc#^D{YbUX3M zG$_c-%J!G|!33qp!@6aO2qeR9jRn23am{Z<6qZJR-oD(+lC(e1%Db_`(?(w$%5;XZo3>b!k07P%j4}jaqmYyh zXm*)nO)dTGOXM89rwqziyA#gRtkT&;><#%69K$G}yz(FqBpE*R?MI=vb&R@fwoFnw z%!y%+X{&nRb&jbc=$0)I7gk$S^Euhasy=AS(uUl2vV2fW{j4qBPMzorWf=l%Zm2=cH`u15#4_> ziSJADVB_6`1sNI_Q~5TJKXn!7p1tQ67fta~qO2F9!6`fzkTM9A=`+0e#J#1GOdLQC zO>UK!w#{0B)s9x09<8S2FN7$b8R%~t>haXmQ5u0*QAdC)e#%qzW4(w04Fb#klA27@ z_qnH2=o{gXWCnb?!;gVm1I{EX0-`4+SJ;Zp9jxG}77az2D@iK!2G+CIO41|}CnU(k zhee*J{Gs;-hh1QA*t6d3_8dg36N}#HnNN80W1F$lMzYTC6i`ZXyGamP_1D??sY8|mK1{SxTs+}CTCyvOmIwN%UQjrvr@$HF$O(x$;?DdA3Z={i$KQB9CKG@|_D zTu1i+VTWv$Nb+=_-|4(&FgUFoH73B#?BwafkT zFF~`rlGJFzZa~|`KytB6-0ToiCv}Il*5pm9Ed8bfT!K}cx1m*ysbmKYce+VmBJ%7@ z?xnHf3pbtGm6KU{dhEfbvrwiZv{r7{dK-H=sA#myDEF`hu*)T8>N4J45lqOYF??yM(VhyzDdN&H3*W?lU1}&9VfX!oyO%Mh}oAPe{lhGT7a8(EHFcL8&=FMA;$ni)RGT0Gf~a9+i@M>)9jcTV*3DPChRE{5Tl>6# z-UU;MSn?Ui+uGzaS z{JAsi?fgkoo-GnzMeNv!fl_^!eP}GWbF~QVZu`$tNNHZSA}Ab#&F-Q8pl&DwAM84F z7B5$ncv{~abXFK{dj9*b^Szr;KG+4<_D)ZM!kXweGARPLWAc0NIAzc4$;939wzi=Y z|MDFk z0P$KxVW#s8C!R`W`6PZ&bUs0>nvsS>EBQqTw$iFQ1?-wH`)`=onXNKVa09JMG!OzlP= zFJLcx9$D4zI=u3!QJ}qa(%q>(PrHHh$al_>IX~WV!8o1h{QcAH*sfd^ z_a&rK1FJNeYx(w9^s_;Qan`qPvBPiv`qRfDllbGepY8wC$Jx>S9YIdMSd)s#;(!Nu zk{3?#<;2@Re73K{*S}Uf`vM$UWXC@2iP@`eq8(}1WVhY#i3!wgaeCc)yl_UTuqNhs zo%Z;7e*yUudZb{}dr%zvLzD^S8~)SWzHXoCADKm~fyJ)#YMS!u5_?XZ{j*2wn`eFx zH$TYWrB9Iqj_+1rc_m^+P8_fai&zg}D=Fjw!xf)_RRAwdgyX`p%qYtAc+d$k(9(`4 zOq6To=LLF9oy=U??1k%l|L}47&|PP36onpptBtY~_l>)jvY0vbjCd>OTYMuu2zz0b zyJ|+$i{7VeQaUg{t&wJqL&-+zf<0hY7O@VkjU2a-Io}*+=|Oa**gt$m;MY!`C<5++ zm(Jv2ZI}C)U)ef!<&O4XnTMyzkaK~lx}((Uhg^5|ndw`O~-X z>~o?01?_WBDnk+S78N*5Mta$)_1x9hU!g#>n5EIYTaSD4@^yWG z{`m)VJLFk~LN!nswNh6awA$LaoA4g_7JPL&q;m^OF6Y6(#mH$Umao{p(`rFWMPs0v zt`siSKm724Uwgv41~|)Q=j2|&*dAWfU%4*NeqPNr-guAW84p94k7R-P6^Ud@O^!(I;0|%Vl4Sz$x$zwEOFCZs$y~Awh^;Fo7^sG(T zxFkKg#wtx6c`NN2;?8)!8R4U9hRRc8edMIJpY1(XqtA%n?dsi#9@#cWqDp<0V9L;pC8%#pOZ0q z5fAfr6X!`fU|D!1*KB@oofR)Jc5zod?hkkKUxy!Pf6a?J6VQUaRj9f}j+$u8^uTtv z32i@?IssgQEfDlk(9?!94Z-pe_JjD!;@o_&L=ET_woPDi#s0j z%;IEW^7xASTwVgurlw{mbW16V%1Mu+UfzCNF|sKn6(Lx6(zPY^&-ctc?~|32>Bu+z zM4iq^Pks&g+IzM1Ec4Ldtvd%ki~U(~Ir}_M>sK078-9Ik->c9Wu za74$SzM%hkj{kYD{$#EEe_2<3O4rh<<*0WBjexj>k9UQJC@&BDrKT*)52{=9a6ILr z`RB#*+J6=7%v#u!<(noIo$rH#aTq=~Fmj?mmz(#-pZ+6@@Mk6`Z4zI8y7=dHr$6$q zohXbgP0RI9x8aBT$3G}k-+#axdf`vY(t_5r_PK>bSVGdDmWR9pd!)1SwUkV5|7lzB z#diOf|9K(*^NIZHe*gdN()!@Pbt1VZ?mB({sVk3Vn}4!4KD8(#w^OFC838X!LE;G+ z%1YW)XBx4^xmJhMYG)4r`{{f)v3q$JCa20>dnawMAX){uns}(xDe>;+fPCXy=4jmX zeZP~^Pi;1Xx<7cyI1%jHjhfaQf)ndvQ6k2Ga_|-~V7*RnifruJ$>^&{2jnk)8}B1H zAxy-%M}3ll&6s16O>qGzs}=mbcI;a;Z=otT&*%XBqU8^kTZEz+Ln`L9Aa0Fw*WkFw zu8s7m@+HYBw9J5Ppv{u(y_G|k?LDT@2H@8}5>UgxrV{T)X5IH&h^RhxDzY#iBA})$ zS5jGUI^Q4B96p|!^tms;{q2RTmR7WGxsP+8OA~sT_fl6%F#UYH0R_AuF#7{efGN+6 zbLn+_`Q=`I%utPA^gCsm#3c3OxNdO9bjEc#A`}q23dpK)0SwBk@DaZSGWhaGp)P;_ zIaKbK!4J7A$jxU%RrcZUAT%8*jCTqv;q?tcUBzbCmdPioJ=hah_(`I_!qCfr8%pK z%zG3fJUcq@gC96y&IxNeU5(^;Hvz`)r%41>RwA-wz==l$d9)4`Ku<+bB8B*r^t`ai_6wrKtmSpnU`8d2;2S( zUhs9;@T;mKJ$?{%;Z71E`N5^Nc5GzKJ~`g>gGMJ7XY0<>qwqI@k>-9avrpp@ZfZ@K zfaU8E=_K6YlTW*7&GP$t6BA^d2KF;WmO%dQP;RX3S-uSZ#!+~#!EEzk;by&xFz^=AzBJM zF6c?P@Q{y%5Mg)M> zykEZf+7-o!7^?7ds(NzCYI_Y|Si<;;S*o^vQa1--*?t@i^FCAZq#*%?`5=sQk#`r3ZQDHd zeQxjMV?-|I?@LT)nMuS%JW)&4y+0rJFDH1O%$|G&)i1BL_f}xjvl6<2;oo%L<9?UT z5~<2o>Ir~)m`AwW<=Z|3{7jDhgi}n%9$oA(z)9k7z#4hdOreZJ5Es?f;T)Y$B`aTJ zw!V!vZ=`ghdR;goeW$oNW{$8M*KcMT*1ggNlx7NLmvp$Z<$ToVQ_cFARo-h~vp=tX z@nO)`j8u~(#KGBX69DJnMceO0?57h=BSVo}MRfrjp|jkiKR zR>R;B9vr%f z-NoszYE34#U~d0ZBxCa#c84czgp+ScXQsAVaM|Ious2c8y_ESoCy)IUD#(nMLV9?r zjZi#ar+LK;e=$S(xG5ZJEC)t%vj08^w6uEhHd5$N$n(9I-r1`ydUA`6j~XttCkki- zW&$tUUYxG;qG0Vg0X*$xb#s9il!~Jy9_{m1nAwJX=|58zAK$_iiDIqhn2%1I;oaAP zbrFMAh%KM~D<-7IjN_S$)|HWrg*cW9nV>*ZeEcu1*xETe3+=Fdl1st4)#ZL$?tTR( zrP=q9f`Sd6RE)|6XC6nXrGwGD5h7&CHNkD}d>%ACW~eTx%CzG^+SBxGUew}a!H5w* z;n#_!jE7pghu#=6z!Rb4dFU$7+p+h{gbLd*l(Uc2H7m+&d)~XgOsNjz(2zmnG>j_9a|8$(u*0W;J zjVC!}5`Tqf{?=*41t4V&&p^&6)^&!*WpYm+ov8Ni+!*b*i~etml6SDe=Y@Z=00uU? zblFB7k0IhosI`KjGWdI!Uc{$7QDa|%D3tG6iT9>#tlok72Y~E=C@sYi;IU?Cy8JZA zJ7}rjVZMwMnc*$2!8iNvd99`NU@T}@p7^~HP^@ZJOgI?nnmnMI(1d-3(<4*|7*$&51*_^#2$Jpy*aSwp3xha@fU0o z8DTZ=lPmoh#3(B{xy7^Z)uk^o?GNs=vg#)_{$;s*k=|dM*llcyn+IDb6flfexa;m; zaqrgrJn_z4Rg)Gv{M;C0!>9u3HUTj-w&`6(sIgVqWEy7lL-;$^(qLKXbTK|Hcc{Ps zJMBl^A8|;CL=BFjMtK7=t&N4bBdEb_F>=x)%QJfH9s^Vtb~R}I#bAHQq^#Pp6Vz`P zpYAF@nxC>0GS;p?{gWUYs76+gKy_)pGwSN#16I)_B|H_PNkeo%JLr0*t~F-T@%AH| zmBuAM$@t)nDx2ECJn8)9UE9p9v@9 zdB!o@B0gahvmB&@(*eJ8Y<;rc=^qgfkX>9#uIpon_2M^kRsI}++YrGliPv1!>c(bq2vbFFGt`+y- zQvv6`rq{wOGkpZb(Cd~Q3~Qj&PT=}i$oI>m{j~|*#^UyemqopeMt}Sl2$$>AG>Ju68ZzeoQh#Y5+xq9_LFz6k&39xe9m?U<0XhY z)EZQ>L)gi$mxi1JhWxmRd-$WxmbUz|diDrUkTGVbTWY^9Eq(ZQV&&K=@rR<0^Ino! z#XD39ELghQ_L44OgDObNyef?fvDZ#S^R}E=zp;nPLgVw&9M|?geC{uFNfXB*9}()w zym1u2K#C)ZIbL(GY%%T8oQiSX8GdGyj8QK&9$sk`;Kkj zcFIy30tv%6-ivSVX+fA#!DPTYrHV-m5xvA4{JqfVOCS!LD(~D1NiT6OX~TLla1^H_ zqq9h*1?7WUbsIG`2a;ZTN>sd>Q=fa(?fiY&+mZ#YI?52Xyexg5sYjA=Qyw5zKmVro zCD!I3OeP7x1L!c_6W9;z)X)9jXVd4>+Fx^{I)GNlnn7!63U}maDsx^jioov7G~$bm zD=!A^RJ3EVtuaFFe|hM$ij(CMt{G?ho_=z#9-CG^Y%VQ;p)YVcPN*GWv(L{;C&ACx2P0;$$)jM_yU}eC$@tkL zosEz=`3R#f@WPk``&Xw0IJ3UFu9D_>M0o+6K%8KJeP*J(tM7N5=aNo*!TR{RnKHJ) zqVZNKQ{X104`scE5h%W^z-;7~bVzhA=X_@@@oAM?uYySz^M(o59-n75)T=7uC=ID* zfQBs6PMqfZargbHhgsGmaHBSbdk0_TFaGd8ysEcK3rTxkXJ+HPC@;-EzMY~NuDK5v zXqXP%@cpoGGC3@;#%Crjf5HLjkgXHJ-UlZf+hRId9 zUrp#TR{s%1WCVYIzpJA6DG6~mXRUNg^5>_EVzU`74_+AzMS0v zzR2Hx*LwU^6VMTU8VZ$v5iG;8d^|hj829Ij7`>Wr;5kh*SVzQ9LaBSzszoVVTzicA zdMtopLUwnWSJ={on9w+bp|oq~px0gc)QhbvxVVF-&kR@HgthmdP|5>6E?d?xlwMtY zUFZfj9GPn5Lq%jAmAj;Oa+JfR7t^VNc%LYm@au;Y3y@6LyY=TvBs(d|Cu7H}+mrog zeHu&psD2{;S@#V9s^YTuhaa1K*a-?*nDF}uj+@bv19sclJ~jEvLgyt7EpDTPuSxEo zS;Na}b_4s(?EJ)mf0_KvPdul*?|620YK59;j_DIzoG}vc2#z)!SsFLJ;JhSfxf5)& zd96x)q1-#kNA_}{gTt!D#o=R96he-*Uo` zxS!oC<@)|373#V0pZu>|n?QyL>aEb&S|2h@iMl_|Y$7K$8Fe<9Eh6@cL`CeG0XUiC zp{5@rQc5F#(yLCXJWu%|Cga@B{1Kd2BE(lR*8t%>S|k)mV`hFdA9-wh*?_P0Uj2}S zMy0-d66P_I1?1E!Z}5ZEeiTC^WxwNQDPr9E>INH7*q#v60=))1 zt{Ojv5(_!tQTgzy`Z>jIxjmsOliIshlF50mh6#=y5l}N4C7NW3H$9*C>+d=Ln9E4@ z)1)u5XfvBv`lcZti>!mX%q{8PJPP63B0p>H@%akpj_hsaFF;pzSkQEauKWx1Ydj2) zr!JCS_Nv^~(pnt`#B3=i-|i^q&vCgmrbC*p98HHFdOEC{3njA?t}9kPX^K7j@oVTk zK$+HeIi2uunST4gK%K7q@8)w+l*3=zsmzF>+sPw=S#t&;m^A)i^vFg9aBAiqFIu9E zJS*W09(*6gjS>V|QL_WLn3Zr}l|(c%Sv%MlH2-K~#I;H^sY$!)v{!>@`{U8~*Us0z+-?56+ODc@veLjVc zPB@^rHCs!6r&3hv?z(H8#D38Duczpp3&vR=KAiRO(7(QxZ7Nk4u$cEXJwiicbgJdV z+`G57HU>^JMu5Pp>35TIYp2~2dZ80x1oWMG54AyK7P$SmZO$6z=-?c&RWzvxQo@(6xG39`|cqA5I-3s+>Kr4R7)8!LlU%jCH^2E}5CJZVbOF17bfl zOmRaz!TXu05zjMQ1hi?Hm zk!t!&%k1-~yfc>9q0U;qPP5z(BRT-RPmfdwd2A%%hmxAe@q}V3x&4;Z9xGoJ*pIu9 zO@?%S9Obn#+EUuU;x<~o;_EFYw?vP9Q%HEs z&?JD>Gsi0HUrWOd&Hfe=J!%)Lx7UB1;KaqYF4?`cd_=UjOeBf8GNp6#U#Of}>E{Jf zS)CTo^aHleKGW#vRPvemuIm=}Tg;P|IBdQoC3WJrr?TI}qU0sz>F9`2!TIIz%bdff ziptanrv~BHWX_fP-DWp}b3?ZT)A^=q%E5m*-&@6=7s&Re>zzBP^e>0X{|4u-Z=E+T zeHyO!$DGl#{dxNULPth2SryP9T5mT&ER5ZwUhTjA%l-Tt-CdKN+L^tCc7;R{l+$Om z^gv-?4BC_zLCsfdV1w+dZKcN%e)5oh8`d59zpfqspc%h+)z~K;RmDY0>}ro8iGh|o z&+Nr_qJ0;fG4r3yAPVzn@_km`8Kf#a|LJ{iG4zV?3%}QZTTsHDWdeu5vol6 z<;o!Z{4!^m+b+*f`Z`ol;`j69&`z$NSs zSANw)0#@ztr?Xdi0lZp}lSHplsdRI^uQ_W9J~YXTBzOgc*Ns}{h*kJ6@#6hce>eir zd-#A&SoZ#)P2dWfZcdV66?9k-3>RmO>N%_qSUAkUfHAw#gXH;Q&imUZ@AY&Q@9S{t zpl4zYI$t=kDTn=eCwwLpK@{WkXqv1T=YH*dCVws3I$7Ro*S?)(g5LcI;N+Nh^i(UE z&@@kmIL+n;Y`bapR){w3H$G)-D1q>aP${dpRm&VzYx?ck=*u%Rx`<+*p5vQ=P??zGQ-s4uX_l}l$CsC=N*}ezU3~8kY zEG>vSxE^P{VBC^)7IHL0e)tYlss3^z)@~^An^DW^2E(hrvy$RG2}$1`9f0(n?!aXg zB9H!-JLxXUHDAE8s9N2NnVrx_>^@2Bg911T*$k4E`Q4IzNqT8b1IpyAY4NiNB1Ff@ zj_$bAQeCaT?Mx}=7={Dz&#m=(<;DqwmEy6UIr$id!2^QpuS8hrg_Uo`(!FtzV$RV21Fan+c;kA@uS6|e~GX#x^P#L@HSv6AlId@B&+Pd z$rH?yH9c&bDKD7LVJijhJK47Ztt6FB>tdWfAEe1Ux2?l zF=Bo_Q!8vE{_wZ91A}n0vQ@}AvaOPwY6dD%$d?S&8b27_gfSp$ZTKS^helCi3s=7z z$xyA^azdYklGYhAe_Jt1=22a?J*w69MlwZLP6K-Iv+v86GQmREb3Y@mx_#!k(WJ69 zQ5rzJvsIKQ6n>)kifg|X;xDWf!9==Y#81ZbD3+eW2?lg@xtkKi7`dDLX{?B6>72;> zkD$eQI9+bC!wrLmdCZZ1@tf@qtG9~^>pzYSKJ3Mj9_DfSrzJ|&}K_Ke8Jh= z0SKOnI-(ZXnZr6TzPOP`LFSX&$lXbVl;(U=>;wUD5#NgC^gLmVo1AjN8Jwmq688{< zS_c6{!#&dC+=SD8w)Cya)7q1x$m#b+*~^jI@oqF<^(s|MKN?~>vKRTTlAdG~&tC8* zlu)x9Bm`-ZPf=U@uu>u?@J-~fP3`}KLHhX*gJep$ay@*d2XeG}GC$J<$x)2jRrR6_ zoijO0SdJ#BeS82$24cV5tFbNNj_~Z-B1^vwjL|en$DCB1*CZT>=uyT}E&fDo^dg7>S|d!F`0+ z0A&#_MW7Z?daFkdU7mcUb1UE)kr?nG5(_t3*Ew>kdY%{A83~q%X)RkGH|3+)_#Zw1 zIn}lHT?M_yb4MIbbWld8t9qH&0tC@Rj(bI}0B7^%T;dpD4N-iRBmr@;6PU&v<1`zi zQc`FPWi!SB`QNlH=yjpfP~?jWvyR`?3-qAMgNp>In45wi=2S4{d6l@Ya-ANOVUgGg z5J)AaNcf_}0?)$n1=Fs|g|J-K{3Yw{s*5n(c0&bYv^~~{Hh4NS#(=Xr($O2o<{`dD znlbPcou)+}Z1GY-=F(huk_mD$8zTMPcP0IrU(fuQIkL2=(*kd^_x%Wn>a(u38|y4; zd*YJI;+rM)SI5RqtCi`*JRLuSGaUpXt2nYLIr|jX`?s^R0kA-iVCzrxw*b8+ATYW+V##t}cg}}b?vJ)YdCU{tq;)dTU=cTRRwcQ? zf?zYzLY|rgwfxLsy&r*+C{9z(G6Yo{%=XP1;`E#u#DgMgm<*Q#Y(Dm!qyb2XJDBFi z39_%84iQfE>gQe-T)(x2F0Whl`neb@mcA{FLeEJ=TKZ zcgcf1S&fHacDR9wDHn~QBIse+zEk*o@J zK%;Qk_qWy1bdFdIg};K~GNDhKIs)mXga&#nhslFvQGJ(_mw|;<^&OG`8{N$;Bb)DulV2mRrb{l9WERNI`M6X5d6D_yUBW-Q)=uv#@`$efNEE zYT8@CKG|Ptk=2#m5_;#P1`CEZ6@|SZb~)q@_-(MIlrFxXOz7lCjjffBZFRbx!(qa0 ze@d!ofL4sos9j{y2L5`?Zm`&j9q?1tQ1Ar2nvU zil~Y01uWqrQ~cnarG)mGUkc-avr#!WtS=9clx2D{K_ z_fWyN(_5IOiC8V~?Ia^ce!I3bcOI{YOKYA(hh|q%Y(?61x{lmh=kV z{fi}Nz5B*xbi<)|CO)~(v{BXQH?PPaQ^nApOs1~WYNmd;`p{h zMk3L`q=e$s{pCK0>JpOB;&8(K%7KQ4L>h=Wp}s>vrp3o^`5v znH*M}2(e-eOM~QiJQ#0~R=d$fh4b+tH=A3xHL$ueV$FaPOKXZ@Sb{W6M3kW=@tC!# zByKC_D`U)>2i!bUdcD&E=>BpM8dh`yhVDuP>{vf$KyVv!LqAe9>I>`S3SiIGLB_-R z`@y0jRafNjK&V;V4|7x(#ETr;xeEkk(8|~ts*S79@Mwn7T59xcmfpe94T8;TvDB*j zA(^3_ja(3pp%v&wjFm$1C`AF+!@KwHw%j_V?s$3X^lHoaD_c);NS6n^SoWS)JIJsQ zcrPh}pt~&$B5&IcabJzn%dAVbK!pkH@Y|gN5*}$~iSlbcTLk@QaN0Y@6jE+f5JvM( zM1faxaFld6n#>(A5K`)f@_@UO+Xp)=SifCKbmx2mZZ_GIHA=1SnSBI7sEka8p{#bN zj*ve80(&vud@;k?E4<_N7QXu~iz7?oqPR#>#(w_p%23%0AEGdWA54aFt5?oKS2fN{ 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 F{~vM}JC6VW literal 0 HcmV?d00001 diff --git a/docs/source/developer_notes/agent.rst b/docs/source/developer_notes/agent.rst index 0c9b6834..a265f937 100644 --- a/docs/source/developer_notes/agent.rst +++ b/docs/source/developer_notes/agent.rst @@ -11,16 +11,384 @@ Agents are LLM-based and themselves belong to another popular family of LLM appl The key on Agents are their ability to reasoning, plannning, and acting via accessible tools. In LightRAG, agents are simply a generator which can use tools, take multiple steps(sequential or parallel ) to complete a user query. +Design +---------------- +We will first introduce ``ReAct``[2]_, a general paradigm for building agents with sequential of interleaving thought, action, and observation steps. +- **Thought**: The reasoning to take an action. +- **Action**: The action to take from a predefined set of actions. In particular, it is tools/functional tools we have introduced in :doc:`tools`. +- **Observation**: The simplest senario is the execution result of the action in string format. To be more robust, this can be anyway you define to pass the right amount of execution information LLM to plan the next step. + +Prompt and Data Models +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +:const:`components.agent.react.DEFAULT_REACT_AGENT_SYSTEM_PROMPT` is the default prompt for React agent's LLM planner. +Let's go through this template to see how the planner works. + +1. Task description + +This part is the overall role setup and task description for the agent. + +.. code-block:: python + + task_desc = r"""You are a helpful assistant. + Answer the user's query using the tools provided below with minimal steps and maximum accuracy. + + Each step you will read the previous Thought, Action, and Observation(execution result of the action) and then provide the next Thought and Action.""" + +2. Tools, output format, and example + +This part of the template is exactly the same as how we were calling functions in the :doc:`tools`. +The ``output_format_str`` will be generated by ``FunctionExpression`` via ``JsonOutputParser``. +It includes the actual output format and examples of a list of ``FunctionExpression`` instances. +We will use ``thought`` and ``action`` fields of the ``FunctionExpression`` as the agent's response. +In particular, we will create a simple function named ``finish`` to stop the agent and return the final answer. + +.. code-block:: python + + tools = r"""{% if tools %} + + {% for tool in tools %} + {{ loop.index }}. + {{tool}} + ------------------------ + {% endfor %} + + {% endif %} + {{output_format_str}}""" + + +3. More task specification to teach the agent how to "think": + +We are putting more detailed instruction to ensure the agent will always end with 'finish' action to finish the task. +And we additionally teach it how to handle simple queries and complex queries. +For simple queries, we try to get it to finish with less steps as possible. +For complex queries, we teach the agent 'divide-and-conquer' strategy to solve the query step by step. + +.. code-block:: python + + task_spec = r""" + - For simple queries: Directly call the ``finish`` action and provide the answer. + - For complex queries: + - Step 1: Read the user query and potentially divide it into subqueries. And get started with the first subquery. + - Call one available tool at a time to solve each subquery/subquestion. \ + - At step 'finish', join all subqueries answers and finish the task. + Remember: + - Action must call one of the above tools with name. It can not be empty. + - You will always end with 'finish' action to finish the task. The answer can be the final answer or failure message. + """ + +We put all these three parts together in order to be in ````. + +4. Agent step history. + +We use :class:`StepOutput` to record the agent's step history, including + +- ``action``: which will be the ``FunctionExpression`` instance the agent predicted. +- ``observation``: the execution result of the action. + +In particular, we will format the steps history after the user query, as the following: + +.. code-block:: python + + step_history = r"""User query: + {{ input_str }} + {# Step History #} + {% if step_history %} + + {% for history in step_history %} + Step {{ loop.index }}. + "Thought": "{{history.action.thought}}", + "Action": "{{history.action.action}}", + "Observation": "{{history.observation}}" + ------------------------ + {% endfor %} + + {% endif %} + You:""" + + +Tools +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Besides of the tools users provide, in default, we add a new tool named ``finish`` to allow the agent to stop and return the final answer. + +.. code-block:: python + + def finish(answer: str) -> str: + """Finish the task with answer.""" + return answer + +Simplily return string might not fit in all senarios, and we might consider to let users to define their finish function in the future when the cases are more complex. + + +Additionally, as the provided tools can not always solve user queries, we allow users to configure if an LLM model should be used to solve a subquery via ``add_llm_as_fallback`` parameter. +This LLM will use the same model client and model arguments as the agent's planner. Here is our code to specify the fallback LLM tool: + +.. code-block:: python + + _additional_llm_tool = ( + Generator(model_client=model_client, model_kwargs=model_kwargs) + if self.add_llm_as_fallback + else None + ) + + def llm_tool(input: str) -> str: + """I answer any input query with llm's world knowledge. Use me as a fallback tool or when the query is simple.""" + # use the generator to answer the query + try: + output: GeneratorOutput = _additional_llm_tool( + prompt_kwargs={"input_str": input} + ) + response = output.data if output else None + return response + except Exception as e: + log.error(f"Error using the generator: {e}") + print(f"Error using the generator: {e}") + + return None + + +React Agent +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +We define class :class:`ReActAgent` to put everything together. +It will orchestrate two components: + +* ``ToolManager``: which manages a given list of tools and finish and llm_tool, and be repsponsible to parse and execute the function. +* ``planner``: A ``Generator`` which works with a ``JsonOutputParser`` to parse the output format and examples of the function calls with ``FunctionExpression``. + +Also, it manages step_history as a list of ``StepOutput`` instances for the agent's internal state. + +.. list-table:: + :header-rows: 1 + :widths: 70 40 + + * - **Name** + - **Description** + * - ``__init__(self, tools: List[Union[Callable, AsyncCallable, FunctionTool]] = [], max_steps: int = 10, add_llm_as_fallback: bool = True, examples: List[FunctionExpression] = [], *, model_client: ModelClient, model_kwargs: Dict = {})`` + - Initialize the `ReActAgent` with the specified tools, maximum steps, fallback option, examples, model client, and model arguments. + * - ``call(self, input: str, prompt_kwargs: Optional[Dict] = {}, model_kwargs: Optional[Dict] = {}) -> Any`` + - Prompt the agent with an input query and process the steps to generate a response. + +Agent In Action +------------------- + +We will set up two sets of models, `llama3-70b-8192` by Groq and `gpt-3.5-turbo` by OpenAI to test two queries. +In comparison, we will compare it with a vanilla LLM response without using the agent. +Here are the code snippets: + +.. code-block:: python + + from lightrag.components.agent import ReActAgent + from lightrag.core import Generator, ModelClientType, ModelClient + from lightrag.utils import setup_env + + setup_env() + + + # Define tools + def multiply(a: int, b: int) -> int: + """ + Multiply two numbers. + """ + return a * b + + def add(a: int, b: int) -> int: + """ + Add two numbers. + """ + return a + b + + def divide(a: float, b: float) -> float: + """ + Divide two numbers. + """ + return float(a) / b + + llama3_model_kwargs = { + "model": "llama3-70b-8192", # llama3 70b works better than 8b here. + "temperature": 0.0, + } + gpt_model_kwargs = { + "model": "gpt-3.5-turbo", + "temperature": 0.0, + } + + + def test_react_agent(model_client: ModelClient, model_kwargs: dict): + tools = [multiply, add, divide] + queries = [ + "What is the capital of France? and what is 465 times 321 then add 95297 and then divide by 13.2?", + "Give me 5 words rhyming with cool, and make a 4-sentence poem using them", + ] + # define a generator without tools for comparison + + generator = Generator( + model_client=model_client, + model_kwargs=model_kwargs, + ) + + react = ReActAgent( + max_steps=6, + add_llm_as_fallback=True, + tools=tools, + model_client=model_client, + model_kwargs=model_kwargs, + ) + # print(react) + + for query in queries: + print(f"Query: {query}") + agent_response = react.call(query) + llm_response = generator.call(prompt_kwargs={"input_str": query}) + print(f"Agent response: {agent_response}") + print(f"LLM response: {llm_response}") + print("") + +The structure of React, including the initiation arguments and two major components: ``tool_manager`` and ``planner``, is shown below. + +.. code-block:: + + ReActAgent( + max_steps=6, add_llm_as_fallback=True, + (tool_manager): ToolManager(Tools: [FunctionTool(fn: , async: False, definition: FunctionDefinition(func_name='multiply', func_desc='multiply(a: int, b: int) -> int\n\n Multiply two numbers.\n ', func_parameters={'type': 'object', 'properties': {'a': {'type': 'int'}, 'b': {'type': 'int'}}, 'required': ['a', 'b']})), FunctionTool(fn: , async: False, definition: FunctionDefinition(func_name='add', func_desc='add(a: int, b: int) -> int\n\n Add two numbers.\n ', func_parameters={'type': 'object', 'properties': {'a': {'type': 'int'}, 'b': {'type': 'int'}}, 'required': ['a', 'b']})), FunctionTool(fn: , async: False, definition: FunctionDefinition(func_name='divide', func_desc='divide(a: float, b: float) -> float\n\n Divide two numbers.\n ', func_parameters={'type': 'object', 'properties': {'a': {'type': 'float'}, 'b': {'type': 'float'}}, 'required': ['a', 'b']})), FunctionTool(fn: .llm_tool at 0x11384b740>, async: False, definition: FunctionDefinition(func_name='llm_tool', func_desc="llm_tool(input: str) -> str\nI answer any input query with llm's world knowledge. Use me as a fallback tool or when the query is simple.", func_parameters={'type': 'object', 'properties': {'input': {'type': 'str'}}, 'required': ['input']})), FunctionTool(fn: .finish at 0x11382fa60>, async: False, definition: FunctionDefinition(func_name='finish', func_desc='finish(answer: str) -> str\nFinish the task with answer.', func_parameters={'type': 'object', 'properties': {'answer': {'type': 'str'}}, 'required': ['answer']}))], Additional Context: {}) + (planner): Generator( + model_kwargs={'model': 'llama3-70b-8192', 'temperature': 0.0}, + (prompt): Prompt( + template: + {# role/task description #} + You are a helpful assistant. + Answer the user's query using the tools provided below with minimal steps and maximum accuracy. + {# REACT instructions #} + Each step you will read the previous Thought, Action, and Observation(execution result of the action) and then provide the next Thought and Action. + {# Tools #} + {% if tools %} + + You available tools are: + {# tools #} + {% for tool in tools %} + {{ loop.index }}. + {{tool}} + ------------------------ + {% endfor %} + + {% endif %} + {# output format and examples #} + {{output_format_str}} + + {# Specifications TODO: preference between the usage of llm tool vs the other tool #} + - For simple queries: Directly call the ``finish`` action and provide the answer. + - For complex queries: + - Step 1: Read the user query and potentially divide it into subqueries. And get started with the first subquery. + - Call one available tool at a time to solve each subquery/subquestion. \ + - At step 'finish', join all subqueries answers and finish the task. + Remember: + - Action must call one of the above tools with name. It can not be empty. + - You will always end with 'finish' action to finish the task. The answer can be the final answer or failure message. + + + ----------------- + User query: + {{ input_str }} + {# Step History #} + {% if step_history %} + + {% for history in step_history %} + Step {{ loop.index }}. + "Thought": "{{history.action.thought}}", + "Action": "{{history.action.action}}", + "Observation": "{{history.observation}}" + ------------------------ + {% endfor %} + + {% endif %} + You:, prompt_kwargs: {'tools': ['func_name: multiply\nfunc_desc: "multiply(a: int, b: int) -> int\\n\\n Multiply two numbers.\\n "\nfunc_parameters:\n type: object\n properties:\n a:\n type: int\n b:\n type: int\n required:\n - a\n - b\n', 'func_name: add\nfunc_desc: "add(a: int, b: int) -> int\\n\\n Add two numbers.\\n "\nfunc_parameters:\n type: object\n properties:\n a:\n type: int\n b:\n type: int\n required:\n - a\n - b\n', 'func_name: divide\nfunc_desc: "divide(a: float, b: float) -> float\\n\\n Divide two numbers.\\n "\nfunc_parameters:\n type: object\n properties:\n a:\n type: float\n b:\n type: float\n required:\n - a\n - b\n', "func_name: llm_tool\nfunc_desc: 'llm_tool(input: str) -> str\n\n I answer any input query with llm''s world knowledge. Use me as a fallback tool\n or when the query is simple.'\nfunc_parameters:\n type: object\n properties:\n input:\n type: str\n required:\n - input\n", "func_name: finish\nfunc_desc: 'finish(answer: str) -> str\n\n Finish the task with answer.'\nfunc_parameters:\n type: object\n properties:\n answer:\n type: str\n required:\n - answer\n"], 'output_format_str': 'Your output should be formatted as a standard JSON instance with the following schema:\n```\n{\n "thought": "Why the function is called (Optional[str]) (optional)",\n "action": "FuncName() Valid function call expression. Example: \\"FuncName(a=1, b=2)\\" Follow the data type specified in the function parameters.e.g. for Type object with x,y properties, use \\"ObjectType(x=1, y=2) (str) (required)"\n}\n```\nExamples:\n```\n{\n "thought": "I have finished the task.",\n "action": "finish(answer=\\"final answer: \'answer\'\\")"\n}\n________\n```\n-Make sure to always enclose the JSON output in triple backticks (```). Please do not add anything other than valid JSON output!\n-Use double quotes for the keys and string values.\n-DO NOT mistaken the "properties" and "type" in the schema as the actual fields in the JSON output.\n-Follow the JSON formatting conventions.'}, prompt_variables: ['input_str', 'tools', 'step_history', 'output_format_str'] + ) + (model_client): GroqAPIClient() + (output_processors): JsonOutputParser( + data_class=FunctionExpression, examples=[FunctionExpression(thought='I have finished the task.', action='finish(answer="final answer: \'answer\'")')], exclude_fields=None, return_data_class=True + (output_format_prompt): Prompt( + template: Your output should be formatted as a standard JSON instance with the following schema: + ``` + {{schema}} + ``` + {% if example %} + Examples: + ``` + {{example}} + ``` + {% endif %} + -Make sure to always enclose the JSON output in triple backticks (```). Please do not add anything other than valid JSON output! + -Use double quotes for the keys and string values. + -DO NOT mistaken the "properties" and "type" in the schema as the actual fields in the JSON output. + -Follow the JSON formatting conventions., prompt_variables: ['example', 'schema'] + ) + (output_processors): JsonParser() + ) + ) + ) +Now, let's run the test function to see the agent in action. + +.. code-block:: python + + test_react_agent(ModelClientType.GROQ, llama3_model_kwargs) + test_react_agent(ModelClientType.OPENAI, gpt_model_kwargs) + + +The internal terminal printout of the agent on the first query will show the input_query, steps, and the final answer in different colors. +The printout of the first query is shown below(without the color here): + +.. code-block:: console + + 2024-07-10 16:48:47 - [react.py:287:call] - input_query: What is the capital of France? and what is 465 times 321 then add 95297 and then divide by 13.2 + + 2024-07-10 16:48:48 - [react.py:266:_run_one_step] - Step 1: + StepOutput(step=1, action=FunctionExpression(thought="Let's break down the query into subqueries and start with the first one.", action='llm_tool(input="What is the capital of France?")'), function=Function(thought=None, name='llm_tool', args=[], kwargs={'input': 'What is the capital of France?'}), observation='The capital of France is Paris!') + _______ + + 2024-07-10 16:48:49 - [react.py:266:_run_one_step] - Step 2: + StepOutput(step=2, action=FunctionExpression(thought="Now, let's move on to the second subquery.", action='multiply(a=465, b=321)'), function=Function(thought=None, name='multiply', args=[], kwargs={'a': 465, 'b': 321}), observation=149265) + _______ + + 2024-07-10 16:48:49 - [react.py:266:_run_one_step] - Step 3: + StepOutput(step=3, action=FunctionExpression(thought="Now, let's add 95297 to the result.", action='add(a=149265, b=95297)'), function=Function(thought=None, name='add', args=[], kwargs={'a': 149265, 'b': 95297}), observation=244562) + _______ + + 2024-07-10 16:48:50 - [react.py:266:_run_one_step] - Step 4: + StepOutput(step=4, action=FunctionExpression(thought="Now, let's divide the result by 13.2.", action='divide(a=244562, b=13.2)'), function=Function(thought=None, name='divide', args=[], kwargs={'a': 244562, 'b': 13.2}), observation=18527.424242424244) + _______ + + 2024-07-10 16:48:50 - [react.py:266:_run_one_step] - Step 5: + StepOutput(step=5, action=FunctionExpression(thought="Now, let's combine the answers of both subqueries.", action='finish(answer="The capital of France is Paris! and the result of the mathematical operation is 18527.424242424244.")'), function=Function(thought=None, name='finish', args=[], kwargs={'answer': 'The capital of France is Paris! and the result of the mathematical operation is 18527.424242424244.'}), observation='The capital of France is Paris! and the result of the mathematical operation is 18527.424242424244.') + _______ + 2024-07-10 16:48:50 - [react.py:301:call] - answer: + The capital of France is Paris! and the result of the mathematical operation is 18527.424242424244. + + +.. .. figure:: /_static/images/query_1.png +.. :align: center +.. :alt: DataClass +.. :width: 100% + +.. The internal terminal printout of the agent on the first query. + + +.. .. figure:: /_static/images/query_2.png +.. :align: center +.. :alt: DataClass +.. :width: 100% + +.. The internal terminal printout of the agent on the second query. + .. admonition:: References :class: highlight - 1. A survey on large language model based autonomous agents: https://github.com/Paitesanshi/LLM-Agent-Survey - 2. ReAct: https://arxiv.org/abs/2210.03629 + .. [1] A survey on large language model based autonomous agents: https://github.com/Paitesanshi/LLM-Agent-Survey + .. [2] ReAct: https://arxiv.org/abs/2210.03629 .. admonition:: API References :class: highlight - - :class:`components.agent.react.ReactAgent` + - :class:`components.agent.react.ReActAgent` + - :class:`core.types.StepOutput` diff --git a/lightrag/lightrag/components/agent/react.py b/lightrag/lightrag/components/agent/react.py index 74185fad..25ca31af 100644 --- a/lightrag/lightrag/components/agent/react.py +++ b/lightrag/lightrag/components/agent/react.py @@ -1,4 +1,4 @@ -"""Implementation of ReAct.""" +"""Implementation of ReAct Agent.""" from typing import List, Union, Callable, Optional, Any, Dict from copy import deepcopy @@ -23,8 +23,12 @@ log = logging.getLogger(__name__) +d = r"""You are a helpful assistant. +Answer the user's query using the tools provided below with minimal steps and maximum accuracy. + +Each step you will read the previous Thought, Action, and Observation(execution result of the action) and then provide the next Thought and Action.""" -DEFAULT_REACT_AGENT_SYSTEM_PROMPT = r"""<> +DEFAULT_REACT_AGENT_SYSTEM_PROMPT = r""" {# role/task description #} You are a helpful assistant. Answer the user's query using the tools provided below with minimal steps and maximum accuracy. @@ -42,10 +46,8 @@ {% endfor %} {% endif %} -{# output is always more robust to use json than string #} - +{# output format and examples #} {{output_format_str}} - {# Specifications TODO: preference between the usage of llm tool vs the other tool #} - For simple queries: Directly call the ``finish`` action and provide the answer. @@ -57,37 +59,23 @@ - Action must call one of the above tools with name. It can not be empty. - You will always end with 'finish' action to finish the task. The answer can be the final answer or failure message. -{#Examples can be here#} -{# Check if there are any examples #} -{% if examples %} - -{% for example in examples %} -{{ example }} -{% endfor %} - -{% endif %} - -<> + ----------------- -{% if input_str %} User query: {{ input_str }} -{% endif %} {# Step History #} {% if step_history %} {% for history in step_history %} Step {{ loop.index }}. -{ - "thought": "{{history.action.thought}}", - "action": "{{history.action.action}}", -} +"Thought": "{{history.action.thought}}", +"Action": "{{history.action.action}}", "Observation": "{{history.observation}}" ------------------------ {% endfor %} {% endif %} -""" +You:""" class ReActAgent(Component): @@ -139,12 +127,14 @@ def add(a: int, b: int) -> int: [1] https://arxiv.org/abs/2210.03629, published in Mar, 2023. """ + # TODO: allow users to pass in a few examples. Need to be a list of FunctionExpression instances. def __init__( self, # added arguments specifc to React tools: List[Union[Callable, AsyncCallable, FunctionTool]] = [], max_steps: int = 10, add_llm_as_fallback: bool = True, + examples: List[FunctionExpression] = [], *, # the following arguments are mainly for the planner model_client: ModelClient, @@ -165,8 +155,10 @@ def __init__( func=self._finish, answer="final answer: 'answer'", ) + self._examples = examples + [example] + output_parser = JsonOutputParser( - data_class=ouput_data_class, examples=[example], return_data_class=True + data_class=ouput_data_class, examples=self._examples, return_data_class=True ) prompt_kwargs = { "tools": self.tool_manager.yaml_definitions, @@ -315,7 +307,7 @@ def call( return answer def _extra_repr(self) -> str: - s = f"max_steps={self.max_steps}, add_llm_as_fallback={self.add_llm_as_fallback}" + s = f"max_steps={self.max_steps}, add_llm_as_fallback={self.add_llm_as_fallback}, " return s From 565e55ce2eb81dc03b070335a8bf11d8a53213f7 Mon Sep 17 00:00:00 2001 From: Li Yin Date: Wed, 10 Jul 2024 19:31:54 -0700 Subject: [PATCH 03/11] replace PyTorch with Lightning --- README.md | 4 +-- docs/source/developer_notes/agent.rst | 46 ++++++++++++++++++++++++--- docs/source/index.rst | 39 ++++++++++++----------- lightrag/README.md | 4 +-- 4 files changed, 67 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 640d2cc2..3e0f5027 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ [![](https://dcbadge.vercel.app/api/server/zt2mTPcu?compact=true&style=flat)](https://discord.gg/zt2mTPcu) -### ⚡ The PyTorch-like Library for Large Language Model Applications ⚡ +### ⚡ The Lightning Library for Large Language Model Applications ⚡ *LightRAG* helps developers with both building and optimizing *Retriever-Agent-Generator* pipelines. It is *light*, *modular*, and *robust*, with a 100% readable codebase. @@ -240,7 +240,7 @@ LightRAG full documentation available at [lightrag.sylph.ai](https://lightrag.sy ```bibtex @software{Yin2024LightRAG, author = {Li Yin}, - title = {{LightRAG: The PyTorch Library for Large Language Model (LLM) Applications}}, + title = {{LightRAG: The Lightning Library for Large Language Model (LLM) Applications}}, month = {7}, year = {2024}, doi = {10.5281/zenodo.12639531}, diff --git a/docs/source/developer_notes/agent.rst b/docs/source/developer_notes/agent.rst index a265f937..cf33ec0b 100644 --- a/docs/source/developer_notes/agent.rst +++ b/docs/source/developer_notes/agent.rst @@ -7,20 +7,21 @@ Agent -- Franklin and Graesser (1997) -Agents are LLM-based and themselves belong to another popular family of LLM applications besides of the well-known RAGs. +Agents [1]_ are LLM-based and themselves belong to another popular family of LLM applications besides of the well-known RAGs. The key on Agents are their ability to reasoning, plannning, and acting via accessible tools. In LightRAG, agents are simply a generator which can use tools, take multiple steps(sequential or parallel ) to complete a user query. Design ---------------- -We will first introduce ``ReAct``[2]_, a general paradigm for building agents with sequential of interleaving thought, action, and observation steps. +We will first introduce ReAct [2]_, a general paradigm for building agents with sequential of interleaving thought, action, and observation steps. + - **Thought**: The reasoning to take an action. - **Action**: The action to take from a predefined set of actions. In particular, it is tools/functional tools we have introduced in :doc:`tools`. - **Observation**: The simplest senario is the execution result of the action in string format. To be more robust, this can be anyway you define to pass the right amount of execution information LLM to plan the next step. Prompt and Data Models ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -:const:`components.agent.react.DEFAULT_REACT_AGENT_SYSTEM_PROMPT` is the default prompt for React agent's LLM planner. +:const:`DEFAULT_REACT_AGENT_SYSTEM_PROMPT` is the default prompt for React agent's LLM planner. Let's go through this template to see how the planner works. 1. Task description @@ -334,7 +335,7 @@ Now, let's run the test function to see the agent in action. The internal terminal printout of the agent on the first query will show the input_query, steps, and the final answer in different colors. -The printout of the first query is shown below(without the color here): +The printout of the first query with llama3 is shown below(without the color here): .. code-block:: console @@ -362,6 +363,43 @@ The printout of the first query is shown below(without the color here): 2024-07-10 16:48:50 - [react.py:301:call] - answer: The capital of France is Paris! and the result of the mathematical operation is 18527.424242424244. +For the second query, the printout: + +.. code-block:: python + + 2024-07-10 16:48:51 - [react.py:287:call] - input_query: Give me 5 words rhyming with cool, and make a 4-sentence poem using them + 2024-07-10 16:48:52 - [react.py:266:_run_one_step] - Step 1: + StepOutput(step=1, action=FunctionExpression(thought="I need to find 5 words that rhyme with 'cool'.", action='llm_tool(input="What are 5 words that rhyme with \'cool\'?")'), function=Function(thought=None, name='llm_tool', args=[], kwargs={'input': "What are 5 words that rhyme with 'cool'?"}), observation='Here are 5 words that rhyme with "cool":\n\n1. Rule\n2. Tool\n3. Fool\n4. Pool\n5. School') + _______ + + 2024-07-10 16:49:00 - [react.py:266:_run_one_step] - Step 2: + StepOutput(step=2, action=FunctionExpression(thought='Now that I have the rhyming words, I need to create a 4-sentence poem using them.', action='llm_tool(input="Create a 4-sentence poem using the words \'rule\', \'tool\', \'fool\', \'pool\', and \'school\'.")'), function=Function(thought=None, name='llm_tool', args=[], kwargs={'input': "Create a 4-sentence poem using the words 'rule', 'tool', 'fool', 'pool', and 'school'."}), observation="Here is a 4-sentence poem using the words 'rule', 'tool', 'fool', 'pool', and 'school':\n\nIn the classroom, we learn to rule,\nWith a pencil as our trusty tool.\nBut if we're not careful, we can be a fool,\nAnd end up swimming in the school pool.") + _______ + + 2024-07-10 16:49:12 - [react.py:266:_run_one_step] - Step 3: + StepOutput(step=3, action=FunctionExpression(thought='I have the poem, now I need to finish the task.', action='finish(answer="Here are 5 words that rhyme with \'cool\': rule, tool, fool, pool, school. Here is a 4-sentence poem using the words: In the classroom, we learn to rule, With a pencil as our trusty tool. But if we\'re not careful, we can be a fool, And end up swimming in the school pool.")'), function=Function(thought=None, name='finish', args=[], kwargs={'answer': "Here are 5 words that rhyme with 'cool': rule, tool, fool, pool, school. Here is a 4-sentence poem using the words: In the classroom, we learn to rule, With a pencil as our trusty tool. But if we're not careful, we can be a fool, And end up swimming in the school pool."}), observation="Here are 5 words that rhyme with 'cool': rule, tool, fool, pool, school. Here is a 4-sentence poem using the words: In the classroom, we learn to rule, With a pencil as our trusty tool. But if we're not careful, we can be a fool, And end up swimming in the school pool.") + _______ + + 2024-07-10 16:49:12 - [react.py:301:call] - answer: + Here are 5 words that rhyme with 'cool': rule, tool, fool, pool, school. Here is a 4-sentence poem using the words: In the classroom, we learn to rule, With a pencil as our trusty tool. But if we're not careful, we can be a fool, And end up swimming in the school pool. + +The comparison between the agent and the vanilla LLM response is shown below: + +.. code-block:: + + Answer with agent: The capital of France is Paris! and the result of the mathematical operation is 18527.424242424244. + Answer without agent: GeneratorOutput(data="I'd be happy to help you with that!\n\nThe capital of France is Paris.\n\nNow, let's tackle the math problem:\n\n1. 465 × 321 = 149,485\n2. Add 95,297 to that result: 149,485 + 95,297 = 244,782\n3. Divide the result by 13.2: 244,782 ÷ 13.2 = 18,544.09\n\nSo, the answer is 18,544.09!", error=None, usage=None, raw_response="I'd be happy to help you with that!\n\nThe capital of France is Paris.\n\nNow, let's tackle the math problem:\n\n1. 465 × 321 = 149,485\n2. Add 95,297 to that result: 149,485 + 95,297 = 244,782\n3. Divide the result by 13.2: 244,782 ÷ 13.2 = 18,544.09\n\nSo, the answer is 18,544.09!", metadata=None) + + +For the second query, the comparison is shown below: + +.. code-block:: + + Answer with agent: Here are 5 words that rhyme with 'cool': rule, tool, fool, pool, school. Here is a 4-sentence poem using the words: In the classroom, we learn to rule, With a pencil as our trusty tool. But if we're not careful, we can be a fool, And end up swimming in the school pool. + Answer without agent: GeneratorOutput(data='Here are 5 words that rhyme with "cool":\n\n1. rule\n2. tool\n3. fool\n4. pool\n5. school\n\nAnd here\'s a 4-sentence poem using these words:\n\nIn the summer heat, I like to be cool,\nFollowing the rule, I take a dip in the pool.\nI\'m not a fool, I know just what to do,\nI grab my tool and head back to school.', error=None, usage=None, raw_response='Here are 5 words that rhyme with "cool":\n\n1. rule\n2. tool\n3. fool\n4. pool\n5. school\n\nAnd here\'s a 4-sentence poem using these words:\n\nIn the summer heat, I like to be cool,\nFollowing the rule, I take a dip in the pool.\nI\'m not a fool, I know just what to do,\nI grab my tool and head back to school.', metadata=None) + +React agent will be helpful to answer queries that require capabilities like computation or more complicated reasoning and planning, using it on general queries might not be the best choice. + .. .. figure:: /_static/images/query_1.png .. :align: center diff --git a/docs/source/index.rst b/docs/source/index.rst index 007139d6..6e59caf1 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -22,7 +22,7 @@ .. raw:: html -

⚡ The PyTorch Library for Large Language Model Applications ⚡

+

⚡ The Lightning Library for Large Language Model Applications ⚡

@@ -37,6 +37,26 @@ + + + + + + +.. and Customizability + + +Light +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +LightRAG shares similar design pattern as `PyTorch` for deep learning modeling. +We provide developers with fundamental building blocks of *100% clarity and simplicity*. + +- Only two fundamental but powerful base classes: `Component` for the pipeline and `DataClass` for data interaction with LLMs. +- A highly readable codebase and less than two levels of class inheritance. :doc:`developer_notes/class_hierarchy`. +- We maximize the library's tooling and prompting capabilities to minimize the reliance on LLM API features such as tools and JSON format. +- The result is a library with bare minimum abstraction, providing developers with *maximum customizability*. + + .. grid:: 1 :gutter: 1 @@ -94,23 +114,6 @@ async def acall(self, query): return await self.generator.acall({"input_str": query}) - - - - -.. and Customizability - - -Light -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -We provide developers with fundamental building blocks of *100% clarity and simplicity*. - -- Only two fundamental but powerful base classes: `Component` for the pipeline and `DataClass` for data interaction with LLMs. -- A highly readable codebase and less than two levels of class inheritance. :doc:`developer_notes/class_hierarchy`. -- We maximize the library's tooling and prompting capabilities to minimize the reliance on LLM API features such as tools and JSON format. -- The result is a library with bare minimum abstraction, providing developers with *maximum customizability*. - - .. - We use 10X less code than other libraries to achieve 10X more robustness and flexibility. .. - `Class Hierarchy Visualization `_ diff --git a/lightrag/README.md b/lightrag/README.md index e4ce3222..236a33dd 100644 --- a/lightrag/README.md +++ b/lightrag/README.md @@ -1,7 +1,7 @@ ![LightRAG Logo](https://raw.githubusercontent.com/SylphAI-Inc/LightRAG/main/docs/source/_static/images/LightRAG-logo-doc.jpeg) -### ⚡ The PyTorch-like Library for Large Language Model Applications ⚡ +### ⚡ The Lightning Library for Large Language Model Applications ⚡ *LightRAG* helps developers with both building and optimizing *Retriever-Agent-Generator (RAG)* pipelines. It is *light*, *modular*, and *robust*. @@ -97,7 +97,7 @@ LightRAG full documentation available at [lightrag.sylph.ai](https://lightrag.sy ```bibtex @software{Yin2024LightRAG, author = {Li Yin}, - title = {{LightRAG: The PyTorch Library for Large Language Model (LLM) Applications}}, + title = {{LightRAG: The Lightning Library for Large Language Model (LLM) Applications}}, month = {7}, year = {2024}, doi = {10.5281/zenodo.12639531}, From 73af32ba592abb88e36d34a56b1ee3c481fd1134 Mon Sep 17 00:00:00 2001 From: Alleria Date: Wed, 10 Jul 2024 21:17:00 -0700 Subject: [PATCH 04/11] update the text splitter --- .../components/data_process/text_splitter.py | 21 ++++------ lightrag/tests/test_text_splitter.py | 39 +++++++++++-------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/lightrag/lightrag/components/data_process/text_splitter.py b/lightrag/lightrag/components/data_process/text_splitter.py index 6d19b1db..38059902 100644 --- a/lightrag/lightrag/components/data_process/text_splitter.py +++ b/lightrag/lightrag/components/data_process/text_splitter.py @@ -181,22 +181,18 @@ def __init__( super().__init__() self.split_by = split_by - assert ( - split_by in SEPARATORS - ), f"Invalid options for split_by. You must select from {list(SEPARATORS.keys())}." + if split_by not in SEPARATORS: + raise ValueError(f"Invalid options for split_by. You must select from {list(SEPARATORS.keys())}.") - assert ( - chunk_overlap < chunk_size - ), f"chunk_overlap can't be larger than or equal to chunk_size. Received chunk_size: {chunk_size}, chunk_overlap: {chunk_overlap}" + if chunk_overlap >= chunk_size: + raise ValueError(f"chunk_overlap can't be larger than or equal to chunk_size. Received chunk_size: {chunk_size}, chunk_overlap: {chunk_overlap}") - assert ( - chunk_size > 0 - ), f"chunk_size must be greater than 0. Received value: {chunk_size}" + if chunk_size <= 0: + raise ValueError(f"chunk_size must be greater than 0. Received value: {chunk_size}") self.chunk_size = chunk_size - assert ( - chunk_overlap >= 0 - ), f"chunk_overlap must be non-negative. Received value: {chunk_overlap}" + if chunk_overlap < 0: + raise ValueError(f"chunk_overlap must be non-negative. Received value: {chunk_overlap}") self.chunk_overlap = chunk_overlap self.batch_size = batch_size @@ -350,4 +346,3 @@ def _extra_repr(self) -> str: return s -# test the execution llamaindex and langchain diff --git a/lightrag/tests/test_text_splitter.py b/lightrag/tests/test_text_splitter.py index eb03a3de..0f686646 100644 --- a/lightrag/tests/test_text_splitter.py +++ b/lightrag/tests/test_text_splitter.py @@ -9,20 +9,25 @@ def setUp(self): # Set up a TextSplitter instance before each test self.splitter = TextSplitter(split_by="word", chunk_size=5, chunk_overlap=2) - # def test_invalid_split_by(self): - # # Test initialization with invalid split_by value - # with self.assertRaises(ValueError): - # TextSplitter(split_by="invalid", chunk_size=5, chunk_overlap=0) + def test_invalid_split_by(self): + # Test initialization with invalid split_by value + with self.assertRaises(ValueError): + TextSplitter(split_by="invalid", chunk_size=5, chunk_overlap=0) - # def test_negative_chunk_size(self): - # # Test initialization with negative chunk_size - # with self.assertRaises(ValueError): - # TextSplitter(split_by="word", chunk_size=-1, chunk_overlap=0) + def test_negative_chunk_size(self): + # Test initialization with negative chunk_size + with self.assertRaises(ValueError): + TextSplitter(split_by="word", chunk_size=-1, chunk_overlap=0) - # def test_negative_chunk_overlap(self): - # # Test initialization with negative chunk_overlap - # with self.assertRaises(ValueError): - # TextSplitter(split_by="word", chunk_size=5, chunk_overlap=-1) + def test_negative_chunk_overlap(self): + # Test initialization with negative chunk_overlap + with self.assertRaises(ValueError): + TextSplitter(split_by="word", chunk_size=5, chunk_overlap=-1) + + def test_equal_chunk_overlap_size(self): + # Test initialization with equal chunk overlap and chunk size + with self.assertRaises(ValueError): + TextSplitter(split_by="word", chunk_size=5, chunk_overlap=5) def test_split_by_word(self): # Test the basic functionality of splitting by word @@ -54,11 +59,11 @@ def test_document_splitting(self): result_texts = [doc.text for doc in result] self.assertEqual(result_texts, expected_texts) - # def test_empty_text_handling(self): - # # Test handling of empty text - # with self.assertRaises(ValueError): - # self.splitter.call([Document(text=None, id="1")]) + def test_empty_text_handling(self): + # Test handling of empty text + with self.assertRaises(ValueError): + self.splitter.call([Document(text=None, id="1")]) if __name__ == "__main__": - unittest.main() + unittest.main() \ No newline at end of file From 38017263c6ace134c58b66ae889238550649caaa Mon Sep 17 00:00:00 2001 From: Li Yin Date: Wed, 10 Jul 2024 21:51:05 -0700 Subject: [PATCH 05/11] finished editing of the react agent tutorial --- docs/Makefile | 3 +- .../_static/images/LightRAG_dataflow.png | Bin 127326 -> 89122 bytes docs/source/apis/components/index.rst | 6 -- docs/source/developer_notes/agent.rst | 101 +++++++++++------- docs/source/index.rst | 2 +- docs/source/insert_autosummary.py | 19 ++++ lightrag/lightrag/components/agent/react.py | 5 +- .../lightrag/core/default_prompt_template.py | 6 ++ 8 files changed, 92 insertions(+), 50 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index 014ee19f..d763e798 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -21,7 +21,8 @@ help: apidoc: @sphinx-apidoc -o $(APIDOCOUTDIR)/core ../lightrag/lightrag/core --separate --force - @sphinx-apidoc -o $(APIDOCOUTDIR)/components ../lightrag/lightrag/components --separate --force --templatedir=$(SOURCEDIR)/_templates + @sphinx-apidoc -o $(APIDOCOUTDIR)/components ../lightrag/lightrag/components --separate --force +#--templatedir=$(SOURCEDIR)/_templates @sphinx-apidoc -o $(APIDOCOUTDIR)/eval ../lightrag/lightrag/eval --separate --force @sphinx-apidoc -o $(APIDOCOUTDIR)/optim ../lightrag/lightrag/optim --separate --force @sphinx-apidoc -o $(APIDOCOUTDIR)/utils ../lightrag/lightrag/utils --separate --force diff --git a/docs/source/_static/images/LightRAG_dataflow.png b/docs/source/_static/images/LightRAG_dataflow.png index b385553c9d3d4a0406a55f0817ba58c7c547cab4..88444352242d749f4c5784d6e93fd8fa67188730 100644 GIT binary patch literal 89122 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

Z%*Xt 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 J=H4)Q@joW*mNNhV literal 127326 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

)4aiPHpE=G>DyiE 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%0A~?#MBa!8bQms5Fq-oE#U@R#o*X6c{W^ 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%0DUxTZ+J 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. -- **Observation**: The simplest senario is the execution result of the action in string format. To be more robust, this can be anyway you define to pass the right amount of execution information LLM to plan the next step. +- **Thought**: The reasoning behind taking an action. +- **Action**: The action to take from a predefined set of actions. In particular, these are the tools/functional tools we have introduced in :doc:`tools`. +- **Observation**: The simplest scenario is the execution result of the action in string format. To be more robust, this can be defined in any way that provides the right amount of execution information for the LLM to plan the next step. Prompt and Data Models ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :const:`DEFAULT_REACT_AGENT_SYSTEM_PROMPT` is the default prompt for React agent's LLM planner. -Let's go through this template to see how the planner works. +We can categorize the prompt template into four parts: 1. Task description @@ -37,11 +40,13 @@ This part is the overall role setup and task description for the agent. 2. Tools, output format, and example + + This part of the template is exactly the same as how we were calling functions in the :doc:`tools`. -The ``output_format_str`` will be generated by ``FunctionExpression`` via ``JsonOutputParser``. +The ``output_format_str`` is generated by ``FunctionExpression`` via ``JsonOutputParser``. It includes the actual output format and examples of a list of ``FunctionExpression`` instances. -We will use ``thought`` and ``action`` fields of the ``FunctionExpression`` as the agent's response. -In particular, we will create a simple function named ``finish`` to stop the agent and return the final answer. +We use ``thought`` and ``action`` fields of the ``FunctionExpression`` as the agent's response. + .. code-block:: python @@ -57,12 +62,14 @@ In particular, we will create a simple function named ``finish`` to stop the age {{output_format_str}}""" -3. More task specification to teach the agent how to "think": +3. Task specification to teach the planner how to "think". -We are putting more detailed instruction to ensure the agent will always end with 'finish' action to finish the task. -And we additionally teach it how to handle simple queries and complex queries. -For simple queries, we try to get it to finish with less steps as possible. -For complex queries, we teach the agent 'divide-and-conquer' strategy to solve the query step by step. + +We provide more detailed instruction to ensure the agent will always end with 'finish' action to complete the task. +Additionally, we teach it how to handle simple queries and complex queries. + +* For simple queries, we instruct the agent to finish with as few steps as possible. +* For complex queries, we teach the agent a 'divide-and-conquer' strategy to solve the query step by step. .. code-block:: python @@ -77,16 +84,18 @@ For complex queries, we teach the agent 'divide-and-conquer' strategy to solve t - You will always end with 'finish' action to finish the task. The answer can be the final answer or failure message. """ -We put all these three parts together in order to be in ````. +We put all these three parts together to be within the ```` tag. 4. Agent step history. -We use :class:`StepOutput` to record the agent's step history, including -- ``action``: which will be the ``FunctionExpression`` instance the agent predicted. -- ``observation``: the execution result of the action. -In particular, we will format the steps history after the user query, as the following: +We use :class:`StepOutput` to record the agent's step history, including: + +- ``action``: This will be the ``FunctionExpression`` instance predicted by the agent. +- ``observation``: The execution result of the action. + +In particular, we format the steps history after the user query as follows: .. code-block:: python @@ -110,7 +119,8 @@ In particular, we will format the steps history after the user query, as the fol Tools ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Besides of the tools users provide, in default, we add a new tool named ``finish`` to allow the agent to stop and return the final answer. + +In addition to the tools provided by users, by default, we add a new tool named ``finish`` to allow the agent to stop and return the final answer. .. code-block:: python @@ -118,12 +128,13 @@ Besides of the tools users provide, in default, we add a new tool named ``finish """Finish the task with answer.""" return answer -Simplily return string might not fit in all senarios, and we might consider to let users to define their finish function in the future when the cases are more complex. - +Simply returning a string might not fit all scenarios, and we might consider allowing users to define their own finish function in the future for more complex cases. -Additionally, as the provided tools can not always solve user queries, we allow users to configure if an LLM model should be used to solve a subquery via ``add_llm_as_fallback`` parameter. +Additionally, since the provided tools cannot always solve user queries, we allow users to configure if an LLM model should be used to solve a subquery via the ``add_llm_as_fallback`` parameter. This LLM will use the same model client and model arguments as the agent's planner. Here is our code to specify the fallback LLM tool: + + .. code-block:: python _additional_llm_tool = ( @@ -150,13 +161,16 @@ This LLM will use the same model client and model arguments as the agent's plann React Agent ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -We define class :class:`ReActAgent` to put everything together. + + +We define the class :class:`ReActAgent` to put everything together. It will orchestrate two components: -* ``ToolManager``: which manages a given list of tools and finish and llm_tool, and be repsponsible to parse and execute the function. -* ``planner``: A ``Generator`` which works with a ``JsonOutputParser`` to parse the output format and examples of the function calls with ``FunctionExpression``. +- ``planner``: A ``Generator`` that works with a ``JsonOutputParser`` to parse the output format and examples of the function calls using ``FunctionExpression``. +- ``ToolManager``: Manages a given list of tools, the finish function, and the LLM tool. It is responsible for parsing and executing the functions. + +Additionally, it manages `step_history` as a list of ``StepOutput`` instances for the agent's internal state. -Also, it manages step_history as a list of ``StepOutput`` instances for the agent's internal state. .. list-table:: :header-rows: 1 @@ -172,8 +186,9 @@ Also, it manages step_history as a list of ``StepOutput`` instances for the agen Agent In Action ------------------- -We will set up two sets of models, `llama3-70b-8192` by Groq and `gpt-3.5-turbo` by OpenAI to test two queries. -In comparison, we will compare it with a vanilla LLM response without using the agent. + +We will set up two sets of models, `llama3-70b-8192`` by Groq and `gpt-3.5-turbo`` by OpenAI, to test two queries. +For comparison, we will compare these with a vanilla LLM response without using the agent. Here are the code snippets: .. code-block:: python @@ -244,9 +259,13 @@ Here are the code snippets: print(f"LLM response: {llm_response}") print("") -The structure of React, including the initiation arguments and two major components: ``tool_manager`` and ``planner``, is shown below. +The structure of React, including the initialization arguments and two major components: ``tool_manager`` and ``planner``, is shown below. -.. code-block:: +.. raw:: html + +

+ Now, let's run the test function to see the agent in action. .. code-block:: python @@ -333,11 +356,11 @@ Now, let's run the test function to see the agent in action. test_react_agent(ModelClientType.GROQ, llama3_model_kwargs) test_react_agent(ModelClientType.OPENAI, gpt_model_kwargs) +Our agent will show the core steps for developers via colored printout, including input_query, steps, and the final answer. +The printout of the first query with llama3 is shown below (without the color here): -The internal terminal printout of the agent on the first query will show the input_query, steps, and the final answer in different colors. -The printout of the first query with llama3 is shown below(without the color here): -.. code-block:: console +.. code-block:: python 2024-07-10 16:48:47 - [react.py:287:call] - input_query: What is the capital of France? and what is 465 times 321 then add 95297 and then divide by 13.2 @@ -385,6 +408,7 @@ For the second query, the printout: The comparison between the agent and the vanilla LLM response is shown below: + .. code-block:: Answer with agent: The capital of France is Paris! and the result of the mathematical operation is 18527.424242424244. @@ -398,8 +422,8 @@ For the second query, the comparison is shown below: Answer with agent: Here are 5 words that rhyme with 'cool': rule, tool, fool, pool, school. Here is a 4-sentence poem using the words: In the classroom, we learn to rule, With a pencil as our trusty tool. But if we're not careful, we can be a fool, And end up swimming in the school pool. Answer without agent: GeneratorOutput(data='Here are 5 words that rhyme with "cool":\n\n1. rule\n2. tool\n3. fool\n4. pool\n5. school\n\nAnd here\'s a 4-sentence poem using these words:\n\nIn the summer heat, I like to be cool,\nFollowing the rule, I take a dip in the pool.\nI\'m not a fool, I know just what to do,\nI grab my tool and head back to school.', error=None, usage=None, raw_response='Here are 5 words that rhyme with "cool":\n\n1. rule\n2. tool\n3. fool\n4. pool\n5. school\n\nAnd here\'s a 4-sentence poem using these words:\n\nIn the summer heat, I like to be cool,\nFollowing the rule, I take a dip in the pool.\nI\'m not a fool, I know just what to do,\nI grab my tool and head back to school.', metadata=None) -React agent will be helpful to answer queries that require capabilities like computation or more complicated reasoning and planning, using it on general queries might not be the best choice. - +The ReAct agent is particularly helpful for answering queries that require capabilities like computation or more complicated reasoning and planning. +However, using it on general queries might not be an overkill, as it might take more steps than necessary to answer the query. .. .. figure:: /_static/images/query_1.png .. :align: center @@ -430,3 +454,4 @@ React agent will be helpful to answer queries that require capabilities like com - :class:`components.agent.react.ReActAgent` - :class:`core.types.StepOutput` + - :const:`components.agent.react.DEFAULT_REACT_AGENT_SYSTEM_PROMPT` diff --git a/docs/source/index.rst b/docs/source/index.rst index 6e59caf1..7ed3b674 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -27,7 +27,7 @@

LightRAG helps developers with both building and optimizing Retriever-Agent-Generator pipelines.
- It is light, modular, and robust, with a 100% readable codebase. + It is light, modular, and robust, with a 100% readable codebase.

diff --git a/docs/source/insert_autosummary.py b/docs/source/insert_autosummary.py index 16d9fa64..4469bae2 100644 --- a/docs/source/insert_autosummary.py +++ b/docs/source/insert_autosummary.py @@ -54,6 +54,25 @@ def generate_rst_for_module(module_full_name, module, output_dir): content += f" {class_name}\n" content += "\n" + # Collect constants from __all__ + constants = [] + if hasattr(module, "__all__"): + all_members = getattr(module, "__all__") + for const_name in all_members: + const_value = getattr(module, const_name, None) + if ( + const_value is not None + and not inspect.isfunction(const_value) + and not inspect.isclass(const_value) + ): + constants.append((const_name, const_value)) + + if constants: + content += " .. rubric:: Constants\n\n" + for const_name, const_value in constants: + content += f" .. autodata:: {module_full_name}.{const_name}\n" + content += "\n" + with open(rst_filepath, "a") as rst_file: rst_file.write(content) diff --git a/lightrag/lightrag/components/agent/react.py b/lightrag/lightrag/components/agent/react.py index 25ca31af..33c8c145 100644 --- a/lightrag/lightrag/components/agent/react.py +++ b/lightrag/lightrag/components/agent/react.py @@ -23,10 +23,7 @@ log = logging.getLogger(__name__) -d = r"""You are a helpful assistant. -Answer the user's query using the tools provided below with minimal steps and maximum accuracy. - -Each step you will read the previous Thought, Action, and Observation(execution result of the action) and then provide the next Thought and Action.""" +__all__ = ["DEFAULT_REACT_AGENT_SYSTEM_PROMPT", "ReActAgent"] DEFAULT_REACT_AGENT_SYSTEM_PROMPT = r""" {# role/task description #} diff --git a/lightrag/lightrag/core/default_prompt_template.py b/lightrag/lightrag/core/default_prompt_template.py index 6c8084b6..247a4d76 100644 --- a/lightrag/lightrag/core/default_prompt_template.py +++ b/lightrag/lightrag/core/default_prompt_template.py @@ -3,6 +3,12 @@ Use :ref:`Prompt ` class to manage it. """ +__all__ = [ + "LIGHTRAG_DEFAULT_PROMPT_ARGS", + "LIGHTRAG_DEFAULT_PROMPT_TRAINABLE_PARAMS", + "SIMPLE_DEFAULT_LIGHTRAG_SYSTEM_PROMPT", + "DEFAULT_LIGHTRAG_SYSTEM_PROMPT", +] # TODO: potentially make a data class for this LIGHTRAG_DEFAULT_PROMPT_ARGS = [ "task_desc_str", # task description From 64618ab6d8f3e5d8f2360e129ba05b1cd27d92e8 Mon Sep 17 00:00:00 2001 From: Li Yin Date: Wed, 10 Jul 2024 21:54:36 -0700 Subject: [PATCH 06/11] delete the tests from the react.py and we have react_note in developer notes --- lightrag/lightrag/components/agent/react.py | 108 -------------------- 1 file changed, 108 deletions(-) diff --git a/lightrag/lightrag/components/agent/react.py b/lightrag/lightrag/components/agent/react.py index 33c8c145..3a769e6c 100644 --- a/lightrag/lightrag/components/agent/react.py +++ b/lightrag/lightrag/components/agent/react.py @@ -306,111 +306,3 @@ def call( def _extra_repr(self) -> str: s = f"max_steps={self.max_steps}, add_llm_as_fallback={self.add_llm_as_fallback}, " return s - - -if __name__ == "__main__": - from lightrag.components.model_client import GroqAPIClient - from lightrag.core.types import ModelClientType - from lightrag.utils import setup_env - - # get_logger() - - setup_env() - - def multiply(a: int, b: int) -> int: - """ - Multiply two numbers. - """ - return a * b - - def add(a: int, b: int) -> int: - """ - Add two numbers. - """ - return a + b - - def divide(a: float, b: float) -> float: - """ - Divide two numbers. - """ - return float(a) / b - - def search(query: str) -> str: - """ - Search the web for the given query. - """ - return "python programming is a great way to learn programming" - - tools = [ - FunctionTool(fn=multiply), - FunctionTool(fn=add), - FunctionTool(fn=divide), - # FunctionTool.from_defaults(fn=search), - ] - llm_model_kwargs = { - "model": "llama3-70b-8192", # llama3 is not good with string formatting, llama3 8b is also bad at following instruction, 70b is better but still not as good as gpt-3.5-turbo - # mistral also not good: mixtral-8x7b-32768, but with better prompt, it can still work - "temperature": 0.0, - } - - gpt_3_5_turbo_model_kwargs = { - "model": "gpt-3.5-turbo", - } - - examples = [ - # r""" - # User: What is 9 - 3? - # You: { - # "thought": "I need to subtract 3 from 9, but there is no subtraction tool, so I ask llm_tool to answer the query.", - # "action": "llm_tool('What is 9 - 3?')" - # } - # """ - ] - # agent = ReActAgent( - # # examples=examples, - # tools=tools, - # max_steps=5, - # model_client=GroqAPIClient, - # model_kwargs=llm_model_kwargs, - # ) - # print(agent) - queries = [ - # "What is 2 times 3?", - # "What is 3 plus 4?", - "What is the capital of France? and what is 465 times 321 then add 95297 and then divide by 13.2?", - # "Li adapted her pet Apple in 2017 when Apple was only 2 months old, now we are at year 2024, how old is Li's pet Apple?", - "Give me 5 words rhyming with cool, and make a 4-sentence poem using them", - ] - """ - Results: mixtral-8x7b-32768, 0.9s per query - llama3-70b-8192, 1.8s per query - gpt-3.5-turbo, 2.2s per query - """ - import time - - generator = Generator( - model_client=GroqAPIClient(), - model_kwargs=llm_model_kwargs, - ) - # for i in range(3): - agent = ReActAgent( - tools=tools, - max_steps=5, - model_client=ModelClientType.GROQ(), - model_kwargs=llm_model_kwargs, - ) - # agent.llm_planner.print_prompt() - # print(agent) - - # vs not using agent - # print(agent.tools) - - average_time = 0 - for query in queries: - t0 = time.time() - answer = agent(query) - average_time += time.time() - t0 - answer_no_agent = generator(prompt_kwargs={"input_str": query}) - print(f"Answer with agent: {answer}") - print(f"Answer without agent: {answer_no_agent}") - print(f"Average time: {average_time / len(queries)}") From c1e9e40b3e91f8a88b1460b0a58c21d7617286d7 Mon Sep 17 00:00:00 2001 From: Li Yin Date: Wed, 10 Jul 2024 22:20:35 -0700 Subject: [PATCH 07/11] add intro section for the tutorials --- docs/source/developer_notes/component.rst | 18 ++++++++++++++---- docs/source/developer_notes/index.rst | 14 ++++++++++++++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/docs/source/developer_notes/component.rst b/docs/source/developer_notes/component.rst index 026d5a71..1784c4eb 100644 --- a/docs/source/developer_notes/component.rst +++ b/docs/source/developer_notes/component.rst @@ -6,14 +6,24 @@ Component .. `Li Yin `_ -What you will learn? +.. What you will learn? + +.. 1. What is ``Component`` and why is it designed this way? +.. 2. How to use ``Component`` along with helper classes like ``FunComponent`` and ``Sequential``? + + +:ref:`Component` is to LLM task pipelines what `nn.Module` is to PyTorch models. +An LLM task pipeline in LightRAG consists of components, be it a `Prompt`, `ModelClient`, `Generator`, `Retriever`, `Agent`, or any other custom components. +This pipeline can be ``Sequential`` or a Directed Acyclic Graph (DAG) of components. +`Prompt` will work with ``DataClass`` to ease the data interaction with the LLM model. +`Retriever` will work with database to retrieve context to overcome the halluciation and knowledge limitation of LLM, the paradigm of Retrieval-Augmented Generation (RAG). +`Agent` will work with tools and LLM planner for enhanced ability to reason, plan, and to act real-world tasks. + + -1. What is ``Component`` and why is it designed this way? -2. How to use ``Component`` along with helper classes like ``FunComponent`` and ``Sequential``? Design --------------------------------------- - :ref:`Component` is to LLM task pipelines what ``nn.Module`` is to PyTorch models. It is the base class for components, such as ``Prompt``, ``ModelClient``, ``Generator``, ``Retriever`` in LightRAG. Your task pipeline should subclass from ``Component`` too. Instead of working with ``Tensor`` and ``Parameter`` to train models with weights and biases, our component works with any data, ``Parameter`` that can be any data type for LLM in-context learning, from manual to auto prompt engineering. diff --git a/docs/source/developer_notes/index.rst b/docs/source/developer_notes/index.rst index 18987344..eb075654 100644 --- a/docs/source/developer_notes/index.rst +++ b/docs/source/developer_notes/index.rst @@ -41,11 +41,25 @@ We have a clear :doc:`lightrag_design_philosophy`, which results in this :doc:`c class_hierarchy +Introduction +------------------- + + +:ref:`Component` is to LLM task pipelines what `nn.Module` is to PyTorch models. +An LLM task pipeline in LightRAG mainly consists of components, such as a `Prompt`, `ModelClient`, `Generator`, `Retriever`, `Agent`, or any other custom components. +This pipeline can be `Sequential` or a Directed Acyclic Graph (DAG) of components. +A `Prompt` will work with `DataClass` to ease data interaction with the LLM model. +A `Retriever` will work with databases to retrieve context and overcome the hallucination and knowledge limitations of LLM, following the paradigm of Retrieval-Augmented Generation (RAG). +An `Agent` will work with tools and an LLM planner for enhanced ability to reason, plan, and act on real-world tasks. +We will introduce the libraries starting from the core base classes, then move to the RAG essentials, and finally to the agent essentials. +With these building blocks, we will further introduce optimizing, where the optimizer uses building blocks such as Generator for auto-prompting and retriever for dynamic few-shot in-context learning (ICL). Building ------------------- + + Base classes ~~~~~~~~~~~~~~~~~~~~~~ Code path: :ref:`lightrag.core `. From 4cc0106b326092157234ac068f218642c5910afa Mon Sep 17 00:00:00 2001 From: Li Yin Date: Wed, 10 Jul 2024 22:48:28 -0700 Subject: [PATCH 08/11] simple editing of component tutorial --- docs/source/developer_notes/component.rst | 121 +++++++++++++++------- 1 file changed, 82 insertions(+), 39 deletions(-) diff --git a/docs/source/developer_notes/component.rst b/docs/source/developer_notes/component.rst index 1784c4eb..9e465d4d 100644 --- a/docs/source/developer_notes/component.rst +++ b/docs/source/developer_notes/component.rst @@ -13,27 +13,23 @@ Component :ref:`Component` is to LLM task pipelines what `nn.Module` is to PyTorch models. -An LLM task pipeline in LightRAG consists of components, be it a `Prompt`, `ModelClient`, `Generator`, `Retriever`, `Agent`, or any other custom components. -This pipeline can be ``Sequential`` or a Directed Acyclic Graph (DAG) of components. -`Prompt` will work with ``DataClass`` to ease the data interaction with the LLM model. -`Retriever` will work with database to retrieve context to overcome the halluciation and knowledge limitation of LLM, the paradigm of Retrieval-Augmented Generation (RAG). -`Agent` will work with tools and LLM planner for enhanced ability to reason, plan, and to act real-world tasks. - +It is the base class for components such as ``Prompt``, ``ModelClient``, ``Generator``, ``Retriever`` in LightRAG. +Your task pipeline should also subclass from ``Component``. Design --------------------------------------- -It is the base class for components, such as ``Prompt``, ``ModelClient``, ``Generator``, ``Retriever`` in LightRAG. -Your task pipeline should subclass from ``Component`` too. Instead of working with ``Tensor`` and ``Parameter`` to train models with weights and biases, our component works with any data, ``Parameter`` that can be any data type for LLM in-context learning, from manual to auto prompt engineering. -We name it differently to avoid confusion and also for better compatibility with `PyTorch`. +Different from PyTorch's nn.Module, which works exclusively with Tensor and Parameter to train models with weights and biases, our component can work with different types of data, from a string or a list of strings to a list of :class:`Document`. + +.. `Parameter` that can be any data type for LLM in-context learning, from manual to auto prompt engineering. +Here is the comparison of writing a PyTorch model and a LightRAG task pipeline. -Here is the comparison of writing a PyTorch model and a LightRAG task component. -.. grid:: 2 +.. grid:: 1 :gutter: 1 .. grid-item-card:: PyTorch @@ -75,28 +71,49 @@ Here is the comparison of writing a PyTorch model and a LightRAG task component. def call(self, query: str) -> str: return self.doc(prompt_kwargs={"input_str": query}).data +As the fundamental building block in LLM task pipelines, the component is designed to serve five main purposes: + +1. **Standardize the interface for all components.** + This includes the `__init__` method, the `call` method for synchronous calls, the `acall` method for asynchronous calls, and the `__call__` method, which by default calls the `call` method. -As the foundamental building block in LLM task pipeline, the component is designed to serve five main purposes: +2. **Provide a unified way to visualize the structure of the task pipeline** + via the `__repr__` method. Subclasses can additionally add the `_extra_repr` method to include more information than the default `__repr__` method. -1. **Standarize the interface for all components.** This includes the `__init__` method, the `call` method for synchronous call, the `acall` method for asynchronous call, and the `__call__` which in default calls the `call` method. -2. **Provide a unified way to visualize the structure of the task pipeline** via `__repr__` method. And subclass can additional add `_extra_repr` method to add more information than the default `__repr__` method. -3. **Tracks, adds all subcomponents and parameters automatically and recursively** to assistant the building and optimizing process of the task pipeline. -4. **Manages the states and serialization**, with `state_dict` and `load_state_dict` methods in particular for parameters and `to_dict` method for serialization of all the states fall into the component's attributes, from subcomponents to parameters, to any other attributes of various data type. -5. **Make all components configurable from using `json` or `yaml` files**. This is especially useful for experimenting or building data processing pipelines. +3. **Track and add all subcomponents and parameters automatically and recursively** + to assist in the building and optimizing process of the task pipeline. -These features are key to keep LightRAG pipeline transparent, flexible, and easy to use. +4. **Manage the states and serialization**, + with `state_dict` and `load_state_dict` methods specifically for parameters, and the `to_dict` method for serialization of all states within the component's attributes, from subcomponents to parameters, to any other attributes of various data types. + +5. **Make all components configurable using `json` or `yaml` files**. + This is especially useful for experimenting or building data processing pipelines. + +These features are key to keeping the LightRAG pipeline transparent, flexible, and easy to use. By subclassing from the `Component` class, you will get most of these features out of the box. +.. As the foundamental building block in LLM task pipeline, the component is designed to serve five main purposes: + +.. 1. **Standarize the interface for all components.** This includes the `__init__` method, the `call` method for synchronous call, the `acall` method for asynchronous call, and the `__call__` which in default calls the `call` method. +.. 2. **Provide a unified way to visualize the structure of the task pipeline** via `__repr__` method. And subclass can additional add `_extra_repr` method to add more information than the default `__repr__` method. +.. 3. **Tracks, adds all subcomponents and parameters automatically and recursively** to assistant the building and optimizing process of the task pipeline. +.. 4. **Manages the states and serialization**, with `state_dict` and `load_state_dict` methods in particular for parameters and `to_dict` method for serialization of all the states fall into the component's attributes, from subcomponents to parameters, to any other attributes of various data type. +.. 5. **Make all components configurable from using `json` or `yaml` files**. This is especially useful for experimenting or building data processing pipelines. + +.. These features are key to keep LightRAG pipeline transparent, flexible, and easy to use. +.. By subclassing from the `Component` class, you will get most of these features out of the box. + + Component in Action --------------------------------------- -.. Transparency -.. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + In this note, we are creating an AI doctor to answer medical questions. Run the ``DocQA`` on a query: + .. code-block:: python doc = DocQA() @@ -143,6 +160,7 @@ Configure from file As the above example shows, we added subcomponent via attributes. We can also use methods to add more subcomponnents or parameters. + .. code-block:: python from lightrag.core.parameter import Parameter @@ -151,8 +169,12 @@ We can also use methods to add more subcomponnents or parameters. # list all parameters for param in doc.named_parameters(): print(param) - # output - # ('demo', Parameter: demo) + +The output: + +.. code-block:: + + ('demo', Parameter: demo) You can easily save the detailed states: @@ -162,21 +184,25 @@ You can easily save the detailed states: save_json(doc.to_dict(), "doc.json") +To add even more flexibility, we provide :class:`FunComponent` and :class:`Sequential` for more advanced use cases. -To adds even more flexibility, we provide :class:`core.component.FunComponent` and :class:`core.component.Sequential` for more advanced use cases. Searalization and deserialization ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -We provide ``is_pickable`` method to check if the component is pickable. -And any of your component, it is a good practise to ensure it is pickable. +We provide the ``is_pickable`` method to check if the component is pickable. +It is good practice to ensure that any of your components are pickable. + + + + FunComponent -------------- - Use :func:`core.component.fun_to_component` as a decorator to convert any function to a Component with its unique class name. + Use :func:`fun_to_component` as a decorator to convert any function to a Component with its unique class name. -:class:`core.component.FunComponent` is a subclass of :class:`core.component.Component` that allows you to define a component with a function. +:class:`FunComponent` is a subclass of :class:`Component` that allows you to define a component with a function. You can directly use this class as: .. code-block:: python @@ -190,16 +216,21 @@ You can directly use this class as: print(fun_component(1)) print(type(fun_component)) - # output: - # 2 - # +The printout: + +.. code-block:: + + 2 + -We also have :func:`core.component.fun_to_component` to convert a function to a FunComponent via decorator or directly call the function. + +We also have :func:`fun_to_component` to convert a function to a `FunComponent` via a decorator or by directly calling the function. This approach gives you a unique component converted from the function name. Via direct call: + .. code-block:: python from lightrag.core.component import fun_to_component @@ -208,12 +239,17 @@ Via direct call: print(fun_component(1)) print(type(fun_component)) - # output: - # 2 - # +The output: + +.. code-block:: + + 2 + -Via decorator will be even more convenient to have a component from a function: + + +Using a decorator is an even more convenient way to create a component from a function: .. code-block:: python @@ -230,8 +266,12 @@ Via decorator will be even more convenient to have a component from a function: Sequential -------------- -We have :class:`core.component.Sequential` class to PyTorch's ``nn.Sequential`` class. This is especially useful to chain together components in a sequence. Much like the concept of ``chain`` or ``pipeline`` in other LLM libraries. -Let's put the FunComponent and DocQA together in a sequence: + + + +We have the :class:`Sequential` class, which is similar to PyTorch's ``nn.Sequential`` class. +This is especially useful for chaining together components in a sequence, much like the concept of ``chain`` or ``pipeline`` in other LLM libraries. +Let's put the `FunComponent`` and `DocQA`` together in a sequence: .. code-block:: python @@ -246,9 +286,12 @@ Let's put the FunComponent and DocQA together in a sequence: query = "What is the best treatment for headache?" print(seq(query)) -We automatically enhance users' queries before passing them to the DocQA component. +We automatically enhance users' queries before passing them to the `DocQA` component. The output is: + + + .. code-block:: 1. Over-the-counter pain relievers like acetaminophen, ibuprofen, or aspirin @@ -279,4 +322,4 @@ The structure of the sequence using ``print(seq)``: - :func:`core.component.fun_to_component` -We will have more advanced use cases in the upcoming tutorials. +We will cover more advanced use cases in the upcoming tutorials. From 6ddd56838e8959e9b2f3c507e57ebd6fb5083bf0 Mon Sep 17 00:00:00 2001 From: Li Yin Date: Wed, 10 Jul 2024 23:44:40 -0700 Subject: [PATCH 09/11] removed extensive code and add reranker in retriever in model client --- .../developer_notes/base_data_class.rst | 2 +- docs/source/developer_notes/index.rst | 5 + docs/source/developer_notes/model_client.rst | 201 +++++------------- .../source/developer_notes/output_parsers.rst | 5 +- docs/source/get_started/installation.rst | 2 +- 5 files changed, 64 insertions(+), 151 deletions(-) diff --git a/docs/source/developer_notes/base_data_class.rst b/docs/source/developer_notes/base_data_class.rst index 40e8d664..dcb3c6dd 100644 --- a/docs/source/developer_notes/base_data_class.rst +++ b/docs/source/developer_notes/base_data_class.rst @@ -300,7 +300,7 @@ The ``exclude`` parameter works the same across all methods. **DataClassFormatType** -For data class format, we have :class:``core.base_data_class.DataClassFormatType`` along with ``format_class_str`` method to specify the format type for the data format methods. +For data class format, we have :class:`DataClassFormatType` along with ``format_class_str`` method to specify the format type for the data format methods. .. code-block:: python diff --git a/docs/source/developer_notes/index.rst b/docs/source/developer_notes/index.rst index eb075654..79b37ca4 100644 --- a/docs/source/developer_notes/index.rst +++ b/docs/source/developer_notes/index.rst @@ -52,6 +52,11 @@ A `Prompt` will work with `DataClass` to ease data interaction with the LLM mode A `Retriever` will work with databases to retrieve context and overcome the hallucination and knowledge limitations of LLM, following the paradigm of Retrieval-Augmented Generation (RAG). An `Agent` will work with tools and an LLM planner for enhanced ability to reason, plan, and act on real-world tasks. + +Additionally, what shines in LightRAG is that all orchestrator components, like `Retriever`, `Embedder`, `Generator`, and `Agent`, are model-agnostic. +You can easily make each component work with different models from different providers by switching out the `ModelClient` and its `model_kwargs`. + + We will introduce the libraries starting from the core base classes, then move to the RAG essentials, and finally to the agent essentials. With these building blocks, we will further introduce optimizing, where the optimizer uses building blocks such as Generator for auto-prompting and retriever for dynamic few-shot in-context learning (ICL). diff --git a/docs/source/developer_notes/model_client.rst b/docs/source/developer_notes/model_client.rst index ce49548c..7bb83b34 100644 --- a/docs/source/developer_notes/model_client.rst +++ b/docs/source/developer_notes/model_client.rst @@ -6,14 +6,16 @@ ModelClient .. `Li Yin `_ -What you will learn? +.. What you will learn? -1. What is ``ModelClient`` and why is it designed this way? -2. How to intergrate your own ``ModelClient``? -3. How to use ``ModelClient`` directly? +.. 1. What is ``ModelClient`` and why is it designed this way? +.. 2. How to intergrate your own ``ModelClient``? +.. 3. How to use ``ModelClient`` directly? + + +:ref:`ModelClient` is the standardized protocol and base class for all model inference SDKs (either via APIs or local) to communicate with LightRAG internal components. +Therefore, by switching out the ``ModelClient`` in a ``Generator``, ``Embedder``, or ``Retriever`` (those components that take models), you can make these functional components model-agnostic. -:ref:`ModelClient` is the standardized protocol and base class for all model inference SDKs (either via APIs or local) to communicate with LightRAG internal components/classes. -Because so, by switching off ``ModelClient`` in a ``Generator`` or ``Embedder`` component, you can make your prompt or ``Retriever`` model-agnostic. .. figure:: /_static/images/model_client.png @@ -21,17 +23,20 @@ Because so, by switching off ``ModelClient`` in a ``Generator`` or ``Embedder`` :alt: ModelClient :width: 400px - The interface to internal components in LightRAG + The bridge between all model inference SDKs and internal components in LightRAG .. note:: - All users are encouraged to customize your own ``ModelClient`` whenever you need to do so. You can refer our code in ``components.model_client`` dir. + All users are encouraged to customize their own ``ModelClient`` whenever needed. You can refer to our code in ``components.model_client`` directory. + Model Inference SDKs ------------------------ -With cloud API providers like OpenAI, Groq, Anthropic, it often comes with a `sync` and an `async` client via their SDKs. + +With cloud API providers like OpenAI, Groq, and Anthropic, it often comes with a `sync` and an `async` client via their SDKs. For example: + .. code-block:: python from openai import OpenAI, AsyncOpenAI @@ -42,128 +47,32 @@ For example: # sync call using APIs response = sync_client.chat.completions.create(...) -For local models, such as using `huggingface transformers`, you need to create this model inference SDKs yourself. -How you do this is highly flexible. Here is an example to use local embedding model (e.g. ``thenlper/gte-base``) as a model (Refer :class:`components.model_client.transformers_client.TransformerEmbedder` for details). +For local models, such as using `huggingface transformers`, you need to create these model inference SDKs yourself. +How you do this is highly flexible. +Here is an example of using a local embedding model (e.g., ``thenlper/gte-base``) as a model (Refer to :class:`TransformerEmbedder` for details). It really is just normal model inference code. -.. code-block:: python - - from transformers import AutoTokenizer, AutoModel - - class TransformerEmbedder: - models: Dict[str, type] = {} - - def __init__(self, model_name: Optional[str] = "thenlper/gte-base"): - super().__init__() - - if model_name is not None: - self.init_model(model_name=model_name) - - @lru_cache(None) - def init_model(self, model_name: str): - try: - self.tokenizer = AutoTokenizer.from_pretrained(model_name) - self.model = AutoModel.from_pretrained(model_name) - # register the model - self.models[model_name] = self.model - - except Exception as e: - log.error(f"Error loading model {model_name}: {e}") - raise e - - def infer_gte_base_embedding( - self, - input=Union[str, List[str]], - tolist: bool = True, - ): - model = self.models.get("thenlper/gte-base", None) - if model is None: - # initialize the model - self.init_model("thenlper/gte-base") - - if isinstance(input, str): - input = [input] - # Tokenize the input texts - batch_dict = self.tokenizer( - input, max_length=512, padding=True, truncation=True, return_tensors="pt" - ) - outputs = model(**batch_dict) - embeddings = average_pool( - outputs.last_hidden_state, batch_dict["attention_mask"] - ) - # (Optionally) normalize embeddings - embeddings = F.normalize(embeddings, p=2, dim=1) - if tolist: - embeddings = embeddings.tolist() - return embeddings - - def __call__(self, **kwargs): - if "model" not in kwargs: - raise ValueError("model is required") - # load files and models, cache it for the next inference - model_name = kwargs["model"] - # inference the model - if model_name == "thenlper/gte-base": - return self.infer_gte_base_embedding(kwargs["input"]) - else: - raise ValueError(f"model {model_name} is not supported") - - ModelClient Protocol ----------------------------------------------------------------------------------------------------------- -A model client can be used to manage different types of models, we defined a ``ModelType`` to categorize the model type. +A model client can be used to manage different types of models, we defined a :class:`ModelType` to categorize the model type. .. code-block:: python class ModelType(Enum): EMBEDDER = auto() LLM = auto() + RERANKER = auto() UNDEFINED = auto() -We designed 6 abstract methods in the ``ModelClient`` class to be implemented by the subclass model type. -We will use :class:`components.model_client.OpenAIClient` along with the above ``TransformerEmbedder`` as examples. - -First, we offer two methods to initialize the model SDKs: - -.. code-block:: python - - def init_sync_client(self): - raise NotImplementedError( - f"{type(self).__name__} must implement _init_sync_client method" - ) - - def init_async_client(self): - raise NotImplementedError( - f"{type(self).__name__} must implement _init_async_client method" - ) +We designed 6 abstract methods in the `ModelClient` class that can be implemented by subclasses to integrate with different model inference SDKs. +We will use :class:`OpenAIClient` as the cloud API example and :class:`TransformersClient` along with the local inference code :class:`TransformerEmbedder` as an example for local model clients. -This is how `OpenAIClient` implements these methods along with ``__init__`` method: - -.. code-block:: python - class OpenAIClient(ModelClient): - - def __init__(self, api_key: Optional[str] = None): - - super().__init__() - self._api_key = api_key - self.sync_client = self.init_sync_client() - self.async_client = None # only initialize if the async call is called - - def init_sync_client(self): - api_key = self._api_key or os.getenv("OPENAI_API_KEY") - if not api_key: - raise ValueError("Environment variable OPENAI_API_KEY must be set") - return OpenAI(api_key=api_key) - - def init_async_client(self): - api_key = self._api_key or os.getenv("OPENAI_API_KEY") - if not api_key: - raise ValueError("Environment variable OPENAI_API_KEY must be set") - return AsyncOpenAI(api_key=api_key) +First, we offer two methods, `init_async_client` and `init_sync_client`, for subclasses to initialize the SDK client. +You can refer to :class:`OpenAIClient` to see how these methods, along with the `__init__` method, are implemented: This is how ``TransformerClient`` does the same thing: @@ -183,8 +92,7 @@ This is how ``TransformerClient`` does the same thing: def init_sync_client(self): return TransformerEmbedder() - -Second. we use `convert_inputs_to_api_kwargs` for subclass to convert LightRAG inputs into the `api_kwargs` (SDKs arguments). +Second, we use `convert_inputs_to_api_kwargs` for subclasses to convert LightRAG inputs into the `api_kwargs` (SDK arguments). .. code-block:: python @@ -228,6 +136,15 @@ This is how `OpenAIClient` implements this method: raise ValueError(f"model_type {model_type} is not supported") return final_model_kwargs +.. For embedding, as `Embedder` takes both `str` and `List[str]` as input, we need to convert the input to a list of strings. +.. For LLM, as `Generator` takes a `prompt_kwargs` (dict) and converts it into a single string, we need to convert the input to a list of messages. +.. For Rerankers, you can refer to :class:`CohereAPIClient` for an example. + + +For embedding, as ``Embedder`` takes both `str` and `List[str]` as input, we need to convert the input to a list of strings that is acceptable by the SDK. +For LLM, as ``Generator`` will takes a `prompt_kwargs`(dict) and convert it into a single string, thus we need to convert the input to a list of messages. +For Rerankers, you can refer to :class:`CohereAPIClient` for an example. + This is how ``TransformerClient`` does the same thing: .. code-block:: python @@ -245,37 +162,15 @@ This is how ``TransformerClient`` does the same thing: else: raise ValueError(f"model_type {model_type} is not supported") -In addition, you can add any method that parse the SDK specific output to a format compatible with LightRAG components. -Typically an LLM needs to use `parse_chat_completion` to parse the completion to texts and `parse_embedding_response` to parse the embedding response to a structure LightRAG components can understand. - -.. code-block:: python - - def parse_chat_completion(self, completion: Any) -> str: - raise NotImplementedError( - f"{type(self).__name__} must implement parse_chat_completion method" - ) +In addition, you can add any method that parses the SDK-specific output to a format compatible with LightRAG components. +Typically, an LLM needs to use `parse_chat_completion` to parse the completion to text and `parse_embedding_response` to parse the embedding response to a structure that LightRAG components can understand. +You can refer to :class:`OpenAIClient` for API embedding model integration and :class:`TransformersClient` for local embedding model integration. - def parse_embedding_response(self, response: Any) -> EmbedderOutput: - r"""Parse the embedding response to a structure LightRAG components can understand.""" - raise NotImplementedError( - f"{type(self).__name__} must implement parse_embedding_response method" - ) -You can refer to :class:`components.model_client.openai_client.OpenAIClient` for API embedding model integration and :class:`components.model_client.transformers_client.TransformersClient` for local embedding model integration. +Lastly, the `call` and `acall` methods are used to call model inference via their own arguments. +We encourage subclasses to provide error handling and retry mechanisms in these methods. -Then `call` and `acall` methods to call Model inference via their own arguments. -We encourage the subclass provides error handling and retry mechanism in these methods. - -.. code-block:: python - - def call(self, api_kwargs: Dict = {}, model_type: ModelType = ModelType.UNDEFINED): - raise NotImplementedError(f"{type(self).__name__} must implement _call method") - - async def acall( - self, api_kwargs: Dict = {}, model_type: ModelType = ModelType.UNDEFINED - ): - pass The `OpenAIClient` example: @@ -296,14 +191,19 @@ The `TransformerClient` example: def call(self, api_kwargs: Dict = {}, model_type: ModelType = ModelType.UNDEFINED): return self.sync_client(**api_kwargs) - -Our library currently integrated with 5 providers: OpenAI, Groq, Anthropic, Huggingface, and Google. +O +ur library currently integrates with six providers: OpenAI, Groq, Anthropic, Huggingface, Google, and Cohere. Please check out :ref:`ModelClient Integration`. + + Use ModelClient directly ----------------------------------------------------------------------------------------------------------- -Though ``ModelClient`` is often managed in a ``Generator`` or ``Embedder`` component, you can use it directly if you ever plan to write your own component. -Here is an example to use ``OpenAIClient`` directly, first on LLM model: + + +Though ``ModelClient`` is often managed in a ``Generator``, ``Embedder``, or ``Retriever`` component, you can use it directly if you plan to write your own component. +Here is an example of using ``OpenAIClient`` directly, first on an LLM model: + .. code-block:: python @@ -311,6 +211,8 @@ Here is an example to use ``OpenAIClient`` directly, first on LLM model: from lightrag.core.types import ModelType from lightrag.utils import setup_env + setup_env() + openai_client = OpenAIClient() query = "What is the capital of France?" @@ -361,6 +263,10 @@ The output will be: api_kwargs: {'model': 'text-embedding-3-small', 'dimensions': 8, 'encoding_format': 'float', 'input': ['What is the capital of France?', 'What is the capital of France?']} reponse_embedder_output: EmbedderOutput(data=[Embedding(embedding=[0.6175549, 0.24047995, 0.4509756, 0.37041178, -0.33437008, -0.050995983, -0.24366009, 0.21549304], index=0), Embedding(embedding=[0.6175549, 0.24047995, 0.4509756, 0.37041178, -0.33437008, -0.050995983, -0.24366009, 0.21549304], index=1)], model='text-embedding-3-small', usage=Usage(prompt_tokens=14, total_tokens=14), error=None, raw_response=None) + +.. TODO: add optional package introduction here + + .. admonition:: API reference :class: highlight @@ -370,3 +276,4 @@ The output will be: - :class:`components.model_client.groq_client.GroqAPIClient` - :class:`components.model_client.anthropic_client.AnthropicAPIClient` - :class:`components.model_client.google_client.GoogleGenAIClient` + - :class:`components.model_client.cohere_client.CohereAPIClient` diff --git a/docs/source/developer_notes/output_parsers.rst b/docs/source/developer_notes/output_parsers.rst index 314766a6..fc4f8167 100644 --- a/docs/source/developer_notes/output_parsers.rst +++ b/docs/source/developer_notes/output_parsers.rst @@ -1,7 +1,9 @@ Parser ============= -In this note, we will explain LightRAG parser and output parsers. +Parser is the `interpreter` of the LLM output. + + Context ---------------- @@ -21,7 +23,6 @@ It is an important step for the LLM applications to interact with the external w - to list to support multiple choice selection. - to json/yaml which will be extracted to dict, and optional further to data class instance to support support cases like function calls. -Parsing is the `interpreter` of the LLM output. Scope and Design ------------------ diff --git a/docs/source/get_started/installation.rst b/docs/source/get_started/installation.rst index 099b3099..6c01c878 100644 --- a/docs/source/get_started/installation.rst +++ b/docs/source/get_started/installation.rst @@ -53,7 +53,7 @@ Or, you can load it yourself with ``python-dotenv``: This setup ensures that LightRAG can access all necessary configurations during runtime. -1. Install Optional Packages +4. Install Optional Packages ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From eaf1c12201245d92aaa0d9e3dcb98822f9975361 Mon Sep 17 00:00:00 2001 From: Ikko Eltociear Ashimine Date: Thu, 11 Jul 2024 15:46:44 +0900 Subject: [PATCH 10/11] chore: update data_components.py mulitple -> multiple --- lightrag/lightrag/components/data_process/data_components.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lightrag/lightrag/components/data_process/data_components.py b/lightrag/lightrag/components/data_process/data_components.py index f712c052..f504e62e 100644 --- a/lightrag/lightrag/components/data_process/data_components.py +++ b/lightrag/lightrag/components/data_process/data_components.py @@ -33,7 +33,7 @@ def retriever_output_to_context_str( retriever_output: Union[RetrieverOutput, List[RetrieverOutput]], deduplicate: bool = False, ) -> str: - r"""The retrieved documents from one or mulitple queries. + r"""The retrieved documents from one or multiple queries. Deduplicate is especially helpful when you used query expansion. """ """ From 159b949cb5377340bbe982cef3154f38fbe4e9af Mon Sep 17 00:00:00 2001 From: Li Yin Date: Thu, 11 Jul 2024 00:01:20 -0700 Subject: [PATCH 11/11] add change log for 0.0.0-beta.1 --- .github/workflows/python-test.yml | 2 +- lightrag/CHANGELOG.md | 12 ++++++++++++ lightrag/poetry.lock | 26 +++++++++++++------------- lightrag/pyproject.toml | 6 +++--- 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index d56701e6..14d2b6ea 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -11,7 +11,7 @@ jobs: strategy: matrix: - python-version: ['3.10', '3.11', '3.12'] + python-version: ['3.9', '3.10', '3.11', '3.12'] steps: - uses: actions/checkout@v3 # Updated to the latest version diff --git a/lightrag/CHANGELOG.md b/lightrag/CHANGELOG.md index d9f8a191..fd876f53 100644 --- a/lightrag/CHANGELOG.md +++ b/lightrag/CHANGELOG.md @@ -1,3 +1,15 @@ +## [0.0.0-beta.1] - 2024-07-10 + +### Added +- `DataClass`: add `__type_var_map__` in `data class schema` as the necessary step to support `Generic` in data class. +- Support Python `3.9`. + +### Fixed +- `ReAct` agent is fixed to be working with updates on the json output parser. +- `Add` error handling for using Lazy Import classes the wrong way, such as subclass. + + + ## [0.0.0-alpha.16] - 2024-07-08 ### Fixed diff --git a/lightrag/poetry.lock b/lightrag/poetry.lock index 02d8f4b7..5a453e03 100644 --- a/lightrag/poetry.lock +++ b/lightrag/poetry.lock @@ -750,20 +750,20 @@ files = [ [[package]] name = "networkx" -version = "3.3" +version = "3.2.1" description = "Python package for creating and manipulating graphs and networks" optional = false -python-versions = ">=3.10" +python-versions = ">=3.9" files = [ - {file = "networkx-3.3-py3-none-any.whl", hash = "sha256:28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2"}, - {file = "networkx-3.3.tar.gz", hash = "sha256:0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9"}, + {file = "networkx-3.2.1-py3-none-any.whl", hash = "sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2"}, + {file = "networkx-3.2.1.tar.gz", hash = "sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6"}, ] [package.extras] -default = ["matplotlib (>=3.6)", "numpy (>=1.23)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] -developer = ["changelist (==0.5)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] -doc = ["myst-nb (>=1.0)", "numpydoc (>=1.7)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] -extra = ["lxml (>=4.6)", "pydot (>=2.0)", "pygraphviz (>=1.12)", "sympy (>=1.10)"] +default = ["matplotlib (>=3.5)", "numpy (>=1.22)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.4)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["nb2plots (>=0.7)", "nbconvert (<7.9)", "numpydoc (>=1.6)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.11)", "sympy (>=1.10)"] test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] [[package]] @@ -966,13 +966,13 @@ files = [ [[package]] name = "openai" -version = "1.35.12" +version = "1.35.13" description = "The official Python library for the openai API" optional = false python-versions = ">=3.7.1" files = [ - {file = "openai-1.35.12-py3-none-any.whl", hash = "sha256:c3a8c9be524480ae32a3212b78d90786b112844eb8f96235ebb8bc5f35cb1e72"}, - {file = "openai-1.35.12.tar.gz", hash = "sha256:2dd0f1d9ff34bf6bc89d15246245369d281b2ba01ae07eae5555a00da4b51e0b"}, + {file = "openai-1.35.13-py3-none-any.whl", hash = "sha256:36ec3e93e0d1f243f69be85c89b9221a471c3e450dfd9df16c9829e3cdf63e60"}, + {file = "openai-1.35.13.tar.gz", hash = "sha256:c684f3945608baf7d2dcc0ef3ee6f3e27e4c66f21076df0b47be45d57e6ae6e4"}, ] [package.dependencies] @@ -2048,5 +2048,5 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [metadata] lock-version = "2.0" -python-versions = ">=3.10, <4.0" -content-hash = "b4026b7c4601d9e9ce0cda2ed24add4689fa54ac6c990a2dcdc7095733206aed" +python-versions = ">=3.9, <4.0" +content-hash = "933e0a902cffe3e2808a2337d0eeb6a2b566998c7bfb5e3b2edd8e289566cd39" diff --git a/lightrag/pyproject.toml b/lightrag/pyproject.toml index 44d6a9de..de58e59d 100644 --- a/lightrag/pyproject.toml +++ b/lightrag/pyproject.toml @@ -1,8 +1,8 @@ [tool.poetry] name = "lightrag" -version = "0.0.0-alpha.16" -description = "The 'PyTorch' library for LLM applications." +version = "0.0.0-beta.1" +description = "The Lightning Library for LLM Applications." authors = ["Li Yin "] readme = "README.md" repository = "https://github.com/SylphAI-Inc/LightRAG" @@ -32,7 +32,7 @@ packages = [{ include = "lightrag", from = "." }] [tool.poetry.dependencies] -python = ">=3.10, <4.0" +python = ">=3.9, <4.0" python-dotenv = "^1.0.1" backoff = "^2.2.1"