flo-ai 0.0.5.dev5__tar.gz → 0.0.5.dev7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/PKG-INFO +3 -3
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/factory/agent_factory.py +10 -9
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/models/flo_executable.py +1 -8
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/router/flo_router.py +2 -2
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/yaml/config.py +1 -1
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/pyproject.toml +3 -4
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/LICENSE +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/README.md +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/__init__.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/builders/__init__.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/builders/yaml_builder.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/callbacks/__init__.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/callbacks/flo_callbacks.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/callbacks/flo_execution_logger.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/common/README.md +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/common/__init__.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/common/flo_langchain_logger.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/common/flo_logger.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/constants/__init__.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/constants/common_constants.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/constants/flo_node_contants.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/constants/prompt_constants.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/core.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/error/flo_exception.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/helpers/utils.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/models/__init__.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/models/delegate.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/models/exception.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/models/flo_agent.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/models/flo_delegation_agent.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/models/flo_llm_agent.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/models/flo_member.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/models/flo_node.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/models/flo_reflection_agent.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/models/flo_routed_team.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/models/flo_team.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/models/flo_tool_agent.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/parsers/flo_json_parser.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/parsers/flo_parser.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/parsers/flo_pydantic_parser.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/retrievers/__init__.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/retrievers/flo_compression_pipeline.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/retrievers/flo_multi_query.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/retrievers/flo_retriever.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/router/__init__.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/router/flo_linear.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/router/flo_llm_router.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/router/flo_router_factory.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/router/flo_supervisor.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/state/__init__.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/state/flo_data_collector.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/state/flo_kv_collector.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/state/flo_session.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/state/flo_state.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/storage/data_collector.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/tools/__init__.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/tools/flo_tool.py +0 -0
- {flo_ai-0.0.5.dev5 → flo_ai-0.0.5.dev7}/flo_ai/yaml/validators.py +0 -0
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: flo-ai
|
|
3
|
-
Version: 0.0.5.
|
|
3
|
+
Version: 0.0.5.dev7
|
|
4
4
|
Summary: A easy way to create structured AI agents
|
|
5
5
|
License: MIT
|
|
6
6
|
Author: vizsatiz
|
|
7
7
|
Author-email: vishnu@rootfor.xyz
|
|
8
|
-
Requires-Python: >=3.
|
|
8
|
+
Requires-Python: >=3.9,<4.0
|
|
9
9
|
Classifier: License :: OSI Approved :: MIT License
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
11
12
|
Classifier: Programming Language :: Python :: 3.10
|
|
12
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
13
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
14
15
|
Requires-Dist: httpx (==0.27.0)
|
|
15
|
-
Requires-Dist: ipython (==8.24.0)
|
|
16
16
|
Requires-Dist: langchain (==0.3.3)
|
|
17
17
|
Requires-Dist: langchain-community (==0.3.2)
|
|
18
18
|
Requires-Dist: langgraph (==0.2.38)
|
|
@@ -33,15 +33,16 @@ class AgentFactory:
|
|
|
33
33
|
if agent_kind is None:
|
|
34
34
|
raise FloException(f"""Unknown agent kind: `{kind}`. The supported types are llm, tool, reflection, delegator or agentic.
|
|
35
35
|
Check the documentation @ {DOCUMENTATION_AGENT_ANCHOR}""")
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
36
|
+
if agent_kind == AgentKinds.llm:
|
|
37
|
+
return AgentFactory.__create_llm_agent(session, agent)
|
|
38
|
+
elif agent_kind == AgentKinds.tool:
|
|
39
|
+
return AgentFactory.__create_runnable_agent(session, agent)
|
|
40
|
+
elif agent_kind == AgentKinds.reflection:
|
|
41
|
+
return AgentFactory.__create_reflection_agent(session, agent)
|
|
42
|
+
elif agent_kind == AgentKinds.delegator:
|
|
43
|
+
return AgentFactory.__create_delegator_agent(session, agent)
|
|
44
|
+
else:
|
|
45
|
+
raise ValueError(f'Unsupported agent kind: {agent_kind}')
|
|
45
46
|
return AgentFactory.__create_agentic_agent(session, agent, tool_map)
|
|
46
47
|
|
|
47
48
|
@staticmethod
|
|
@@ -16,14 +16,7 @@ class ExecutableType(Enum):
|
|
|
16
16
|
|
|
17
17
|
@staticmethod
|
|
18
18
|
def isAgent(type: 'ExecutableType'):
|
|
19
|
-
|
|
20
|
-
case ExecutableType.agentic:
|
|
21
|
-
return True
|
|
22
|
-
case ExecutableType.llm:
|
|
23
|
-
return True
|
|
24
|
-
case ExecutableType.tool:
|
|
25
|
-
return True
|
|
26
|
-
return False
|
|
19
|
+
return type in [ExecutableType.agentic, ExecutableType.llm, ExecutableType.tool]
|
|
27
20
|
|
|
28
21
|
|
|
29
22
|
class ExecutableFlo(FloMember):
|
|
@@ -78,7 +78,7 @@ class FloRouter(ABC):
|
|
|
78
78
|
workflow: StateGraph,
|
|
79
79
|
parent: FloNode,
|
|
80
80
|
delegation_node: FloNode,
|
|
81
|
-
nextNode: Union[FloNode
|
|
81
|
+
nextNode: Union[FloNode, str],
|
|
82
82
|
):
|
|
83
83
|
to_agent_names = delegation_node.delegate.to
|
|
84
84
|
delegation_node_name = delegation_node.name
|
|
@@ -129,7 +129,7 @@ class FloRouter(ABC):
|
|
|
129
129
|
self,
|
|
130
130
|
workflow: StateGraph,
|
|
131
131
|
reflection_node: FloNode,
|
|
132
|
-
nextNode: Union[FloNode
|
|
132
|
+
nextNode: Union[FloNode, str],
|
|
133
133
|
):
|
|
134
134
|
to_agent_name = reflection_node.delegate.to[0]
|
|
135
135
|
retry = reflection_node.delegate.retry or 1
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "flo-ai"
|
|
3
|
-
version = "0.0.5-
|
|
3
|
+
version = "0.0.5-dev7"
|
|
4
4
|
description = "A easy way to create structured AI agents"
|
|
5
5
|
authors = ["vizsatiz <vishnu@rootfor.xyz>"]
|
|
6
6
|
license = "MIT"
|
|
7
7
|
readme = "README.md"
|
|
8
8
|
|
|
9
9
|
[tool.poetry.dependencies]
|
|
10
|
-
python = ">=3.
|
|
10
|
+
python = ">=3.9,<4.0"
|
|
11
11
|
langchain = "0.3.3"
|
|
12
12
|
langgraph = "0.2.38"
|
|
13
|
-
ipython = "8.24.0"
|
|
14
13
|
httpx = "0.27.0"
|
|
15
14
|
pillow = "^10.3.0"
|
|
16
15
|
pydantic = "^2.9.2"
|
|
@@ -19,7 +18,7 @@ langchain-community = "0.3.2"
|
|
|
19
18
|
|
|
20
19
|
[tool.poetry.group.dev.dependencies]
|
|
21
20
|
langchain-mongodb = "^0.2.0"
|
|
22
|
-
langchain-chroma = "^0.1.4"
|
|
21
|
+
# langchain-chroma = "^0.1.4"
|
|
23
22
|
langchainhub = "^0.1.17"
|
|
24
23
|
pypdf = "^4.2.0"
|
|
25
24
|
ipykernel = "^6.29.5"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|