fastworkflow 2.17.24__py3-none-any.whl → 2.17.26__py3-none-any.whl

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.
@@ -74,11 +74,15 @@ class CommandsSystemPreludeAdapter(dspy.ChatAdapter):
74
74
  Returns:
75
75
  Formatted messages with commands injected into system message
76
76
  """
77
- # Call the base adapter's format method
78
- formatted = self.base.format(signature, demos, inputs)
79
-
80
- # Check if available_commands is in inputs
77
+ # Extract available_commands before passing to base adapter
81
78
  cmds = inputs.get("available_commands")
79
+
80
+ # Create a copy of inputs without available_commands to avoid including it in user message
81
+ inputs_for_base = {k: v for k, v in inputs.items() if k != "available_commands"}
82
+
83
+ # Call the base adapter's format method with filtered inputs
84
+ formatted = self.base.format(signature, demos, inputs_for_base)
85
+
82
86
  if not cmds:
83
87
  return formatted
84
88
 
@@ -72,14 +72,13 @@ class fastWorkflowReAct(Module):
72
72
  instr.extend(f"({idx + 1}) {tool}" for idx, tool in enumerate(tools.values()))
73
73
  instr.append("When providing `next_tool_args`, the value inside the field must be in JSON format")
74
74
 
75
- # Build the ReAct signature with trajectory and available_commands inputs.
75
+ # Build the ReAct signature with trajectory input.
76
76
  # available_commands is injected into system message by CommandsSystemPreludeAdapter
77
77
  # (see fastworkflow/utils/chat_adapter.py) and is NOT included in the trajectory
78
78
  # formatting to avoid token bloat across iterations.
79
79
  react_signature = (
80
80
  dspy.Signature({**signature.input_fields}, "\n".join(instr))
81
81
  .append("trajectory", dspy.InputField(), type_=str)
82
- .append("available_commands", dspy.InputField(), type_=str)
83
82
  .append("next_thought", dspy.OutputField(), type_=str)
84
83
  .append("next_tool_name", dspy.OutputField(), type_=Literal[tuple(tools.keys())])
85
84
  .append("next_tool_args", dspy.OutputField(), type_=dict[str, Any])
@@ -88,7 +87,7 @@ class fastWorkflowReAct(Module):
88
87
  fallback_signature = dspy.Signature(
89
88
  {**signature.input_fields, **signature.output_fields},
90
89
  signature.instructions,
91
- ).append("trajectory", dspy.InputField(), type_=str).append("available_commands", dspy.InputField(), type_=str)
90
+ ).append("trajectory", dspy.InputField(), type_=str)
92
91
 
93
92
  self.tools = tools
94
93
  self.react = dspy.Predict(react_signature)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastworkflow
3
- Version: 2.17.24
3
+ Version: 2.17.26
4
4
  Summary: A framework for rapidly building large-scale, deterministic, interactive workflows with a fault-tolerant, conversational UX
5
5
  License: Apache-2.0
6
6
  Keywords: fastworkflow,ai,workflow,llm,openai
@@ -16,12 +16,12 @@ Provides-Extra: training
16
16
  Requires-Dist: colorama (>=0.4.6,<0.5.0)
17
17
  Requires-Dist: datasets (>=4.0.0,<5.0.0) ; extra == "training"
18
18
  Requires-Dist: dspy (>=3.0.1,<4.0.0)
19
- Requires-Dist: fastapi (>=0.115.5,<0.116.0) ; extra == "fastapi"
19
+ Requires-Dist: fastapi (>=0.120.1) ; extra == "fastapi"
20
20
  Requires-Dist: fastapi-mcp (>=0.4.0,<0.5.0) ; extra == "fastapi"
21
21
  Requires-Dist: libcst (>=1.8.2,<2.0.0)
22
- Requires-Dist: litellm[proxy] (>=1.75.8,<2.0.0)
22
+ Requires-Dist: litellm[proxy] (>=1.80.5,<2.0.0)
23
23
  Requires-Dist: mmh3 (>=5.1.0,<6.0.0)
24
- Requires-Dist: openai (>=1.99.5,<1.100.0)
24
+ Requires-Dist: openai (>=2.8.0)
25
25
  Requires-Dist: prompt_toolkit (>=3.0.43,<4.0.0)
26
26
  Requires-Dist: pydantic (>=2.9.2,<3.0.0)
27
27
  Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
@@ -31,7 +31,7 @@ Requires-Dist: scikit-learn (>=1.6.1,<2.0.0)
31
31
  Requires-Dist: speedict (>=0.3.12,<0.4.0)
32
32
  Requires-Dist: torch (>=2.7.1,<3.0.0)
33
33
  Requires-Dist: transformers (>=4.48.2,<5.0.0)
34
- Requires-Dist: uvicorn (>=0.29.0,<0.30.0) ; extra == "fastapi"
34
+ Requires-Dist: uvicorn (>=0.31.1,<0.32.0) ; extra == "fastapi"
35
35
  Project-URL: homepage, https://github.com/radiantlogicinc/fastworkflow
36
36
  Project-URL: repository, https://github.com/radiantlogicinc/fastworkflow
37
37
  Description-Content-Type: text/markdown
@@ -55,8 +55,22 @@ While [DSPy](https://dspy.ai) ([Why DSPy](https://x.com/lateinteraction/status/1
55
55
 
56
56
  ### Why fastWorkflow?
57
57
 
58
- - ✅ **Unlimited Tool Scaling**: fastworkflow organizes tools into context hierarchies so use any number of tools without sacrificing performance or efficiency
59
58
  - ✅ **Cost-Effective Performance**: fastWorkFlow with small, free models can match the quality of large expensive models
59
+
60
+ <p align="center">
61
+ <table>
62
+ <tr>
63
+ <td align="center" width="50%">
64
+ <img src="fastWorkflow - Tau Bench Retail.jpg" alt="fastWorkflow - Tau Bench Retail" style="max-width: 100%; height: auto;"/>
65
+ </td>
66
+ <td align="center" width="50%">
67
+ <img src="fastWorkflow - TauBench Airline.jpg" alt="fastWorkflow - TauBench Airline" style="max-width: 100%; height: auto;"/>
68
+ </td>
69
+ </tr>
70
+ </table>
71
+ </p>
72
+
73
+ - ✅ **Unlimited Tool Scaling**: fastworkflow organizes tools into context hierarchies so use any number of tools without sacrificing performance or efficiency
60
74
  - ✅ **Reliable Tool Execution**: fastworkflow validation pipeline virtually eliminates incorrect tool calling or parameter extraction, ensuring a reliable tool response
61
75
  - ✅ **Adaptive Learning**: 1-shot learning from intent detection mistakes. It learns your conversational vocabulary as you interact with it
62
76
  - ✅ **Interface Flexibility**: Support programmatic, assistant-driven and agent-driven interfaces with the same codebase
@@ -159,7 +159,7 @@ fastworkflow/train/__main__.py,sha256=m4v9uczmZ58EfNlJKc-cewMjPeltLL7tNRKotYtig3
159
159
  fastworkflow/train/generate_synthetic.py,sha256=ingoGxpwlaHGM9WHeK1xULEZntr5HBmQohyLtpqVTD0,5917
160
160
  fastworkflow/user_message_queues.py,sha256=svbuFxQ16q6Tz6urPWfD4IEsOTMxtS1Kc1PP8EE8AWg,1422
161
161
  fastworkflow/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
- fastworkflow/utils/chat_adapter.py,sha256=-U5JFiPynDhSYXJ75wdY0EA-hH8QPaq1bzA6ju4ZnVc,4090
162
+ fastworkflow/utils/chat_adapter.py,sha256=NVIvSmd0L4QNYTg2oEZzR1iCdPjti0C0ZMffaylfBx8,4319
163
163
  fastworkflow/utils/context_utils.py,sha256=mjYVzNJCmimNMmBdOKfzFeDSws_oAADAwcfz_N6sR7M,749
164
164
  fastworkflow/utils/dspy_cache_utils.py,sha256=OP2IsWPMGCdhjC-4iRqggWgTEfvPxFN_78tV1_C6uHY,3725
165
165
  fastworkflow/utils/dspy_logger.py,sha256=NS40fYl-J-vps82BUh9D8kqv5dP3_qAY78HZWyZemEA,6571
@@ -171,14 +171,14 @@ fastworkflow/utils/logging.py,sha256=2SA-04fg7Lx_vGf980tfCOGDQxBvU9X6Vbhv47rbdaw
171
171
  fastworkflow/utils/parameterize_func_decorator.py,sha256=V6YJnishWRCdwiBQW6P17hmGGrga0Empk-AN5Gm7iMk,633
172
172
  fastworkflow/utils/pydantic_model_2_dspy_signature_class.py,sha256=w1pvl8rJq48ulFwaAtBgfXYn_SBIDBgq1aLMUg1zJn8,12875
173
173
  fastworkflow/utils/python_utils.py,sha256=KMxktfIVOre7qkLhd80Ig39g313EMx_I_oHSa6sC5wI,8512
174
- fastworkflow/utils/react.py,sha256=FGDnzIPKSTwXOCrzUVluFtkZ06lVjgMdB-YQ8jhggZU,13065
174
+ fastworkflow/utils/react.py,sha256=dmDn0huU_rp6z4p-gKwag5Btlmcb9ZsnukO1tXNFTGQ,12910
175
175
  fastworkflow/utils/signatures.py,sha256=ddcwCLNF_5dpItvcHdkZ0WBMse7CaqYpAyg6WwoJZPo,33310
176
176
  fastworkflow/utils/startup_progress.py,sha256=9icSdnpFAxzIq0sUliGpNaH0Efvrt5lDtGfURV5BD98,3539
177
177
  fastworkflow/workflow.py,sha256=37gn7e3ct-gdGw43zS6Ab_ADoJJBO4eJW2PywfUpjEg,18825
178
178
  fastworkflow/workflow_agent.py,sha256=vdGoeiG7xIsG7rhqjdIwveCkPDvs_bb3dE-Pw-unYMA,18848
179
179
  fastworkflow/workflow_inheritance_model.py,sha256=Pp-qSrQISgPfPjJVUfW84pc7HLmL2evuq0UVIYR51K0,7974
180
- fastworkflow-2.17.24.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
181
- fastworkflow-2.17.24.dist-info/METADATA,sha256=KDvZ_Y-9qLuXbPsL8-oIMbpxmK2fUB_RdWPManci9PM,31003
182
- fastworkflow-2.17.24.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
183
- fastworkflow-2.17.24.dist-info/entry_points.txt,sha256=m8HqoPzCyaZLAx-V5X8MJgw3Lx3GiPDlxNEZ7K-Gb-U,54
184
- fastworkflow-2.17.24.dist-info/RECORD,,
180
+ fastworkflow-2.17.26.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
181
+ fastworkflow-2.17.26.dist-info/METADATA,sha256=-rCeYKc7fwI4iAygy7sUGQDUukm-RoExYVtHcBLyM8I,31418
182
+ fastworkflow-2.17.26.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
183
+ fastworkflow-2.17.26.dist-info/entry_points.txt,sha256=m8HqoPzCyaZLAx-V5X8MJgw3Lx3GiPDlxNEZ7K-Gb-U,54
184
+ fastworkflow-2.17.26.dist-info/RECORD,,