abstractflow 0.1.0__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.
@@ -0,0 +1,30 @@
1
+ # Changelog
2
+
3
+ All notable changes to AbstractFlow will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Planned
11
+ - Visual workflow editor with drag-and-drop interface
12
+ - Real-time workflow execution and monitoring
13
+ - Integration with AbstractCore for multi-provider LLM support
14
+ - Custom node development SDK
15
+ - Cloud deployment capabilities
16
+ - Collaborative workflow development features
17
+
18
+ ## [0.1.0] - 2025-01-15
19
+
20
+ ### Added
21
+ - Initial placeholder package to reserve PyPI name
22
+ - Basic project structure and packaging configuration
23
+ - Comprehensive README with project vision and roadmap
24
+ - MIT license and contribution guidelines
25
+ - CLI placeholder with planned command structure
26
+
27
+ ### Notes
28
+ - This is a placeholder release to secure the `abstractflow` name on PyPI
29
+ - No functional code is included in this version
30
+ - Follow the GitHub repository for development updates and release timeline
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 AbstractFlow Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,26 @@
1
+ # Include important files in the distribution
2
+ include README.md
3
+ include LICENSE
4
+ include CHANGELOG.md
5
+ include pyproject.toml
6
+ include setup.py
7
+
8
+ # Include package data
9
+ recursive-include abstractflow *.py
10
+ recursive-include abstractflow *.typed
11
+ recursive-include abstractflow *.json
12
+ recursive-include abstractflow *.yaml
13
+ recursive-include abstractflow *.yml
14
+
15
+ # Exclude development and build files
16
+ exclude .gitignore
17
+ exclude .pre-commit-config.yaml
18
+ recursive-exclude * __pycache__
19
+ recursive-exclude * *.py[co]
20
+ recursive-exclude * *.so
21
+ recursive-exclude * .DS_Store
22
+ exclude .coverage
23
+ exclude .pytest_cache
24
+ exclude build
25
+ exclude dist
26
+ exclude *.egg-info
@@ -0,0 +1,238 @@
1
+ Metadata-Version: 2.4
2
+ Name: abstractflow
3
+ Version: 0.1.0
4
+ Summary: Diagram-based AI workflow generation built on AbstractCore
5
+ Author-email: AbstractFlow Team <contact@abstractflow.ai>
6
+ Maintainer-email: AbstractFlow Team <contact@abstractflow.ai>
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://github.com/lpalbou/AbstractFlow
9
+ Project-URL: Documentation, https://abstractflow.readthedocs.io
10
+ Project-URL: Repository, https://github.com/lpalbou/AbstractFlow
11
+ Project-URL: Bug Tracker, https://github.com/lpalbou/AbstractFlow/issues
12
+ Project-URL: Changelog, https://github.com/lpalbou/AbstractFlow/blob/main/CHANGELOG.md
13
+ Keywords: ai,workflow,diagram,llm,automation,visual-programming,abstractcore,machine-learning
14
+ Classifier: Development Status :: 2 - Pre-Alpha
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Intended Audience :: Science/Research
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.8
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
25
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
+ Classifier: Topic :: System :: Distributed Computing
27
+ Requires-Python: >=3.8
28
+ Description-Content-Type: text/markdown
29
+ License-File: LICENSE
30
+ Requires-Dist: abstractcore>=2.0.0
31
+ Requires-Dist: pydantic>=2.0.0
32
+ Requires-Dist: typing-extensions>=4.0.0
33
+ Provides-Extra: dev
34
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
35
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
36
+ Requires-Dist: black>=23.0.0; extra == "dev"
37
+ Requires-Dist: isort>=5.12.0; extra == "dev"
38
+ Requires-Dist: flake8>=6.0.0; extra == "dev"
39
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
40
+ Requires-Dist: pre-commit>=3.0.0; extra == "dev"
41
+ Provides-Extra: server
42
+ Requires-Dist: fastapi>=0.100.0; extra == "server"
43
+ Requires-Dist: uvicorn[standard]>=0.23.0; extra == "server"
44
+ Requires-Dist: websockets>=11.0.0; extra == "server"
45
+ Provides-Extra: ui
46
+ Requires-Dist: streamlit>=1.28.0; extra == "ui"
47
+ Requires-Dist: plotly>=5.15.0; extra == "ui"
48
+ Requires-Dist: networkx>=3.1.0; extra == "ui"
49
+ Provides-Extra: all
50
+ Requires-Dist: abstractflow[dev,server,ui]; extra == "all"
51
+ Dynamic: license-file
52
+
53
+ # AbstractFlow
54
+
55
+ **Diagram-Based AI Workflow Generation**
56
+
57
+ > 🚧 **Coming Soon** - This project is currently in early development. We're reserving the PyPI name for the upcoming release.
58
+
59
+ AbstractFlow is an innovative Python library that enables visual, diagram-based creation and execution of AI workflows. Built on top of [AbstractCore](https://github.com/lpalbou/AbstractCore), it provides an intuitive interface for designing complex AI pipelines through interactive diagrams.
60
+
61
+ ## 🎯 Vision
62
+
63
+ AbstractFlow aims to democratize AI workflow creation by providing:
64
+
65
+ - **Visual Workflow Design**: Create AI workflows using intuitive drag-and-drop diagrams
66
+ - **Multi-Provider Support**: Leverage any LLM provider through AbstractCore's unified interface
67
+ - **Real-time Execution**: Watch your workflows execute in real-time with live feedback
68
+ - **Collaborative Development**: Share and collaborate on workflow designs
69
+ - **Production Ready**: Deploy workflows to production with built-in monitoring and scaling
70
+
71
+ ## 🚀 Planned Features
72
+
73
+ ### Core Capabilities
74
+ - **Diagram Editor**: Web-based visual editor for workflow creation
75
+ - **Node Library**: Pre-built nodes for common AI operations (text generation, analysis, transformation)
76
+ - **Custom Nodes**: Create custom nodes with your own logic and AI models
77
+ - **Flow Control**: Conditional branching, loops, and parallel execution
78
+ - **Data Transformation**: Built-in data processing and transformation capabilities
79
+
80
+ ### AI Integration
81
+ - **Universal LLM Support**: Works with OpenAI, Anthropic, Ollama, and all AbstractCore providers
82
+ - **Tool Calling**: Seamless integration with external APIs and services
83
+ - **Structured Output**: Type-safe data flow between workflow nodes
84
+ - **Streaming Support**: Real-time processing for interactive applications
85
+
86
+ ### Deployment & Monitoring
87
+ - **Cloud Deployment**: One-click deployment to major cloud platforms
88
+ - **Monitoring Dashboard**: Real-time workflow execution monitoring
89
+ - **Version Control**: Git-based workflow versioning and collaboration
90
+ - **API Generation**: Automatic REST API generation from workflows
91
+
92
+ ## 🏗️ Architecture
93
+
94
+ AbstractFlow is built on a robust foundation:
95
+
96
+ ```
97
+ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
98
+ │ Diagram UI │ │ Workflow Engine │ │ AbstractCore │
99
+ │ │────│ │────│ │
100
+ │ Visual Editor │ │ Execution Logic │ │ LLM Providers │
101
+ └─────────────────┘ └─────────────────┘ └─────────────────┘
102
+ ```
103
+
104
+ - **Frontend**: React-based diagram editor with real-time collaboration
105
+ - **Backend**: Python workflow execution engine with FastAPI
106
+ - **AI Layer**: AbstractCore for unified LLM provider access
107
+ - **Storage**: Workflow definitions, execution history, and metadata
108
+
109
+ ## 🎨 Use Cases
110
+
111
+ ### Business Process Automation
112
+ - Customer support ticket routing and response generation
113
+ - Document analysis and summarization pipelines
114
+ - Content creation and review workflows
115
+
116
+ ### Data Processing
117
+ - Multi-step data analysis with AI insights
118
+ - Automated report generation from raw data
119
+ - Real-time data enrichment and validation
120
+
121
+ ### Creative Workflows
122
+ - Multi-stage content creation (research → draft → review → publish)
123
+ - Interactive storytelling and narrative generation
124
+ - Collaborative writing and editing processes
125
+
126
+ ### Research & Development
127
+ - Hypothesis generation and testing workflows
128
+ - Literature review and synthesis automation
129
+ - Experimental design and analysis pipelines
130
+
131
+ ## 🛠️ Technology Stack
132
+
133
+ - **Core**: Python 3.8+ with AsyncIO support
134
+ - **AI Integration**: [AbstractCore](https://github.com/lpalbou/AbstractCore) for LLM provider abstraction
135
+ - **Web Framework**: FastAPI for high-performance API server
136
+ - **Frontend**: React with TypeScript for the diagram editor
137
+ - **Database**: PostgreSQL for workflow storage, Redis for caching
138
+ - **Deployment**: Docker containers with Kubernetes support
139
+
140
+ ## 📦 Installation (Coming Soon)
141
+
142
+ ```bash
143
+ # Install AbstractFlow
144
+ pip install abstractflow
145
+
146
+ # Or with all optional dependencies
147
+ pip install abstractflow[all]
148
+
149
+ # Development installation
150
+ pip install abstractflow[dev]
151
+ ```
152
+
153
+ ## 🚀 Quick Start (Preview)
154
+
155
+ ```python
156
+ from abstractflow import WorkflowBuilder, TextNode, LLMNode
157
+
158
+ # Create a simple workflow
159
+ workflow = WorkflowBuilder()
160
+
161
+ # Add nodes
162
+ input_node = workflow.add_node(TextNode("user_input"))
163
+ llm_node = workflow.add_node(LLMNode(
164
+ provider="openai",
165
+ model="gpt-4o-mini",
166
+ prompt="Analyze this text: {user_input}"
167
+ ))
168
+ output_node = workflow.add_node(TextNode("analysis_result"))
169
+
170
+ # Connect nodes
171
+ workflow.connect(input_node, llm_node)
172
+ workflow.connect(llm_node, output_node)
173
+
174
+ # Execute workflow
175
+ result = await workflow.execute({
176
+ "user_input": "The future of AI is bright and full of possibilities."
177
+ })
178
+
179
+ print(result["analysis_result"])
180
+ ```
181
+
182
+ ## 🎯 Roadmap
183
+
184
+ ### Phase 1: Foundation (Q1 2025)
185
+ - [ ] Core workflow engine
186
+ - [ ] Basic node types (LLM, Transform, Condition)
187
+ - [ ] CLI interface for workflow execution
188
+ - [ ] AbstractCore integration
189
+
190
+ ### Phase 2: Visual Editor (Q2 2025)
191
+ - [ ] Web-based diagram editor
192
+ - [ ] Real-time collaboration features
193
+ - [ ] Workflow templates and examples
194
+ - [ ] Import/export functionality
195
+
196
+ ### Phase 3: Advanced Features (Q3 2025)
197
+ - [ ] Custom node development SDK
198
+ - [ ] Advanced flow control (loops, parallel execution)
199
+ - [ ] Monitoring and analytics dashboard
200
+ - [ ] Cloud deployment integration
201
+
202
+ ### Phase 4: Enterprise (Q4 2025)
203
+ - [ ] Enterprise security features
204
+ - [ ] Advanced monitoring and alerting
205
+ - [ ] Multi-tenant support
206
+ - [ ] Professional services and support
207
+
208
+ ## 🤝 Contributing
209
+
210
+ We welcome contributions from the community! Once development begins, you'll be able to:
211
+
212
+ - Report bugs and request features
213
+ - Submit pull requests for improvements
214
+ - Create and share workflow templates
215
+ - Contribute to documentation
216
+
217
+ ## 📄 License
218
+
219
+ AbstractFlow will be released under the MIT License, ensuring it remains free and open-source for all users.
220
+
221
+ ## 🔗 Related Projects
222
+
223
+ - **[AbstractCore](https://github.com/lpalbou/AbstractCore)**: The unified LLM interface powering AbstractFlow
224
+ - **[AbstractCore Documentation](http://www.abstractcore.ai/)**: Comprehensive guides and API reference
225
+
226
+ ## 📞 Contact
227
+
228
+ For early access, partnerships, or questions about AbstractFlow:
229
+
230
+ - **GitHub**: [Issues and Discussions](https://github.com/lpalbou/AbstractFlow) (coming soon)
231
+ - **Email**: Contact through AbstractCore channels
232
+ - **Website**: [www.abstractflow.ai](http://www.abstractflow.ai) (coming soon)
233
+
234
+ ---
235
+
236
+ **AbstractFlow** - Visualize, Create, Execute. The future of AI workflow development is here.
237
+
238
+ > Built with ❤️ on top of [AbstractCore](https://github.com/lpalbou/AbstractCore)
@@ -0,0 +1,186 @@
1
+ # AbstractFlow
2
+
3
+ **Diagram-Based AI Workflow Generation**
4
+
5
+ > 🚧 **Coming Soon** - This project is currently in early development. We're reserving the PyPI name for the upcoming release.
6
+
7
+ AbstractFlow is an innovative Python library that enables visual, diagram-based creation and execution of AI workflows. Built on top of [AbstractCore](https://github.com/lpalbou/AbstractCore), it provides an intuitive interface for designing complex AI pipelines through interactive diagrams.
8
+
9
+ ## 🎯 Vision
10
+
11
+ AbstractFlow aims to democratize AI workflow creation by providing:
12
+
13
+ - **Visual Workflow Design**: Create AI workflows using intuitive drag-and-drop diagrams
14
+ - **Multi-Provider Support**: Leverage any LLM provider through AbstractCore's unified interface
15
+ - **Real-time Execution**: Watch your workflows execute in real-time with live feedback
16
+ - **Collaborative Development**: Share and collaborate on workflow designs
17
+ - **Production Ready**: Deploy workflows to production with built-in monitoring and scaling
18
+
19
+ ## 🚀 Planned Features
20
+
21
+ ### Core Capabilities
22
+ - **Diagram Editor**: Web-based visual editor for workflow creation
23
+ - **Node Library**: Pre-built nodes for common AI operations (text generation, analysis, transformation)
24
+ - **Custom Nodes**: Create custom nodes with your own logic and AI models
25
+ - **Flow Control**: Conditional branching, loops, and parallel execution
26
+ - **Data Transformation**: Built-in data processing and transformation capabilities
27
+
28
+ ### AI Integration
29
+ - **Universal LLM Support**: Works with OpenAI, Anthropic, Ollama, and all AbstractCore providers
30
+ - **Tool Calling**: Seamless integration with external APIs and services
31
+ - **Structured Output**: Type-safe data flow between workflow nodes
32
+ - **Streaming Support**: Real-time processing for interactive applications
33
+
34
+ ### Deployment & Monitoring
35
+ - **Cloud Deployment**: One-click deployment to major cloud platforms
36
+ - **Monitoring Dashboard**: Real-time workflow execution monitoring
37
+ - **Version Control**: Git-based workflow versioning and collaboration
38
+ - **API Generation**: Automatic REST API generation from workflows
39
+
40
+ ## 🏗️ Architecture
41
+
42
+ AbstractFlow is built on a robust foundation:
43
+
44
+ ```
45
+ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
46
+ │ Diagram UI │ │ Workflow Engine │ │ AbstractCore │
47
+ │ │────│ │────│ │
48
+ │ Visual Editor │ │ Execution Logic │ │ LLM Providers │
49
+ └─────────────────┘ └─────────────────┘ └─────────────────┘
50
+ ```
51
+
52
+ - **Frontend**: React-based diagram editor with real-time collaboration
53
+ - **Backend**: Python workflow execution engine with FastAPI
54
+ - **AI Layer**: AbstractCore for unified LLM provider access
55
+ - **Storage**: Workflow definitions, execution history, and metadata
56
+
57
+ ## 🎨 Use Cases
58
+
59
+ ### Business Process Automation
60
+ - Customer support ticket routing and response generation
61
+ - Document analysis and summarization pipelines
62
+ - Content creation and review workflows
63
+
64
+ ### Data Processing
65
+ - Multi-step data analysis with AI insights
66
+ - Automated report generation from raw data
67
+ - Real-time data enrichment and validation
68
+
69
+ ### Creative Workflows
70
+ - Multi-stage content creation (research → draft → review → publish)
71
+ - Interactive storytelling and narrative generation
72
+ - Collaborative writing and editing processes
73
+
74
+ ### Research & Development
75
+ - Hypothesis generation and testing workflows
76
+ - Literature review and synthesis automation
77
+ - Experimental design and analysis pipelines
78
+
79
+ ## 🛠️ Technology Stack
80
+
81
+ - **Core**: Python 3.8+ with AsyncIO support
82
+ - **AI Integration**: [AbstractCore](https://github.com/lpalbou/AbstractCore) for LLM provider abstraction
83
+ - **Web Framework**: FastAPI for high-performance API server
84
+ - **Frontend**: React with TypeScript for the diagram editor
85
+ - **Database**: PostgreSQL for workflow storage, Redis for caching
86
+ - **Deployment**: Docker containers with Kubernetes support
87
+
88
+ ## 📦 Installation (Coming Soon)
89
+
90
+ ```bash
91
+ # Install AbstractFlow
92
+ pip install abstractflow
93
+
94
+ # Or with all optional dependencies
95
+ pip install abstractflow[all]
96
+
97
+ # Development installation
98
+ pip install abstractflow[dev]
99
+ ```
100
+
101
+ ## 🚀 Quick Start (Preview)
102
+
103
+ ```python
104
+ from abstractflow import WorkflowBuilder, TextNode, LLMNode
105
+
106
+ # Create a simple workflow
107
+ workflow = WorkflowBuilder()
108
+
109
+ # Add nodes
110
+ input_node = workflow.add_node(TextNode("user_input"))
111
+ llm_node = workflow.add_node(LLMNode(
112
+ provider="openai",
113
+ model="gpt-4o-mini",
114
+ prompt="Analyze this text: {user_input}"
115
+ ))
116
+ output_node = workflow.add_node(TextNode("analysis_result"))
117
+
118
+ # Connect nodes
119
+ workflow.connect(input_node, llm_node)
120
+ workflow.connect(llm_node, output_node)
121
+
122
+ # Execute workflow
123
+ result = await workflow.execute({
124
+ "user_input": "The future of AI is bright and full of possibilities."
125
+ })
126
+
127
+ print(result["analysis_result"])
128
+ ```
129
+
130
+ ## 🎯 Roadmap
131
+
132
+ ### Phase 1: Foundation (Q1 2025)
133
+ - [ ] Core workflow engine
134
+ - [ ] Basic node types (LLM, Transform, Condition)
135
+ - [ ] CLI interface for workflow execution
136
+ - [ ] AbstractCore integration
137
+
138
+ ### Phase 2: Visual Editor (Q2 2025)
139
+ - [ ] Web-based diagram editor
140
+ - [ ] Real-time collaboration features
141
+ - [ ] Workflow templates and examples
142
+ - [ ] Import/export functionality
143
+
144
+ ### Phase 3: Advanced Features (Q3 2025)
145
+ - [ ] Custom node development SDK
146
+ - [ ] Advanced flow control (loops, parallel execution)
147
+ - [ ] Monitoring and analytics dashboard
148
+ - [ ] Cloud deployment integration
149
+
150
+ ### Phase 4: Enterprise (Q4 2025)
151
+ - [ ] Enterprise security features
152
+ - [ ] Advanced monitoring and alerting
153
+ - [ ] Multi-tenant support
154
+ - [ ] Professional services and support
155
+
156
+ ## 🤝 Contributing
157
+
158
+ We welcome contributions from the community! Once development begins, you'll be able to:
159
+
160
+ - Report bugs and request features
161
+ - Submit pull requests for improvements
162
+ - Create and share workflow templates
163
+ - Contribute to documentation
164
+
165
+ ## 📄 License
166
+
167
+ AbstractFlow will be released under the MIT License, ensuring it remains free and open-source for all users.
168
+
169
+ ## 🔗 Related Projects
170
+
171
+ - **[AbstractCore](https://github.com/lpalbou/AbstractCore)**: The unified LLM interface powering AbstractFlow
172
+ - **[AbstractCore Documentation](http://www.abstractcore.ai/)**: Comprehensive guides and API reference
173
+
174
+ ## 📞 Contact
175
+
176
+ For early access, partnerships, or questions about AbstractFlow:
177
+
178
+ - **GitHub**: [Issues and Discussions](https://github.com/lpalbou/AbstractFlow) (coming soon)
179
+ - **Email**: Contact through AbstractCore channels
180
+ - **Website**: [www.abstractflow.ai](http://www.abstractflow.ai) (coming soon)
181
+
182
+ ---
183
+
184
+ **AbstractFlow** - Visualize, Create, Execute. The future of AI workflow development is here.
185
+
186
+ > Built with ❤️ on top of [AbstractCore](https://github.com/lpalbou/AbstractCore)
@@ -0,0 +1,111 @@
1
+ """
2
+ AbstractFlow - Diagram-based AI workflow generation.
3
+
4
+ Built on top of AbstractCore for unified LLM provider access.
5
+ """
6
+
7
+ __version__ = "0.1.0"
8
+ __author__ = "AbstractFlow Team"
9
+ __email__ = "contact@abstractflow.ai"
10
+ __license__ = "MIT"
11
+
12
+ # Core imports that will be available when the package is fully implemented
13
+ __all__ = [
14
+ "__version__",
15
+ "WorkflowBuilder",
16
+ "Node",
17
+ "LLMNode",
18
+ "TextNode",
19
+ "ConditionalNode",
20
+ "TransformNode",
21
+ ]
22
+
23
+ # Placeholder implementations - these will be replaced with actual implementations
24
+ class WorkflowBuilder:
25
+ """
26
+ Visual workflow builder for creating AI-powered diagrams.
27
+
28
+ This is a placeholder implementation. The full version will provide:
29
+ - Drag-and-drop workflow creation
30
+ - Real-time execution monitoring
31
+ - Multi-provider LLM support via AbstractCore
32
+ - Export to various formats
33
+ """
34
+
35
+ def __init__(self):
36
+ """Initialize a new workflow builder."""
37
+ raise NotImplementedError(
38
+ "AbstractFlow is currently in development. "
39
+ "This placeholder package reserves the PyPI name. "
40
+ "Follow https://github.com/lpalbou/AbstractFlow for updates."
41
+ )
42
+
43
+
44
+ class Node:
45
+ """Base class for all workflow nodes."""
46
+
47
+ def __init__(self, node_id: str):
48
+ """Initialize a workflow node."""
49
+ raise NotImplementedError(
50
+ "AbstractFlow is currently in development. "
51
+ "This placeholder package reserves the PyPI name. "
52
+ "Follow https://github.com/lpalbou/AbstractFlow for updates."
53
+ )
54
+
55
+
56
+ class LLMNode(Node):
57
+ """Node for LLM-based text generation and processing."""
58
+
59
+ def __init__(self, provider: str, model: str, **kwargs):
60
+ """Initialize an LLM node with AbstractCore provider."""
61
+ raise NotImplementedError(
62
+ "AbstractFlow is currently in development. "
63
+ "This placeholder package reserves the PyPI name. "
64
+ "Follow https://github.com/lpalbou/AbstractFlow for updates."
65
+ )
66
+
67
+
68
+ class TextNode(Node):
69
+ """Node for text input/output operations."""
70
+
71
+ def __init__(self, text_id: str):
72
+ """Initialize a text node."""
73
+ raise NotImplementedError(
74
+ "AbstractFlow is currently in development. "
75
+ "This placeholder package reserves the PyPI name. "
76
+ "Follow https://github.com/lpalbou/AbstractFlow for updates."
77
+ )
78
+
79
+
80
+ class ConditionalNode(Node):
81
+ """Node for conditional branching in workflows."""
82
+
83
+ def __init__(self, condition: str):
84
+ """Initialize a conditional node."""
85
+ raise NotImplementedError(
86
+ "AbstractFlow is currently in development. "
87
+ "This placeholder package reserves the PyPI name. "
88
+ "Follow https://github.com/lpalbou/AbstractFlow for updates."
89
+ )
90
+
91
+
92
+ class TransformNode(Node):
93
+ """Node for data transformation operations."""
94
+
95
+ def __init__(self, transform_func: str):
96
+ """Initialize a transform node."""
97
+ raise NotImplementedError(
98
+ "AbstractFlow is currently in development. "
99
+ "This placeholder package reserves the PyPI name. "
100
+ "Follow https://github.com/lpalbou/AbstractFlow for updates."
101
+ )
102
+
103
+
104
+ def get_version() -> str:
105
+ """Get the current version of AbstractFlow."""
106
+ return __version__
107
+
108
+
109
+ def is_development_version() -> bool:
110
+ """Check if this is a development/placeholder version."""
111
+ return True # This will be False in the actual implementation
@@ -0,0 +1,10 @@
1
+ """
2
+ Main entry point for AbstractFlow when run as a module.
3
+
4
+ Usage: python -m abstractflow [args...]
5
+ """
6
+
7
+ from .cli import main
8
+
9
+ if __name__ == "__main__":
10
+ exit(main())
@@ -0,0 +1,42 @@
1
+ """
2
+ Command-line interface for AbstractFlow.
3
+
4
+ This is a placeholder CLI that will be expanded in future versions.
5
+ """
6
+
7
+ import sys
8
+ from typing import List, Optional
9
+
10
+
11
+ def main(args: Optional[List[str]] = None) -> int:
12
+ """
13
+ Main entry point for the AbstractFlow CLI.
14
+
15
+ Args:
16
+ args: Command-line arguments (defaults to sys.argv[1:])
17
+
18
+ Returns:
19
+ Exit code (0 for success, non-zero for error)
20
+ """
21
+ if args is None:
22
+ args = sys.argv[1:]
23
+
24
+ print("🚧 AbstractFlow CLI - Coming Soon!")
25
+ print()
26
+ print("AbstractFlow is currently in development.")
27
+ print("This placeholder package reserves the PyPI name.")
28
+ print()
29
+ print("Planned CLI features:")
30
+ print(" • abstractflow create <workflow> - Create new workflow")
31
+ print(" • abstractflow run <workflow> - Execute workflow")
32
+ print(" • abstractflow validate <workflow> - Validate workflow")
33
+ print(" • abstractflow export <workflow> - Export workflow")
34
+ print(" • abstractflow serve - Start workflow server")
35
+ print()
36
+ print("Follow https://github.com/lpalbou/AbstractFlow for updates!")
37
+
38
+ return 0
39
+
40
+
41
+ if __name__ == "__main__":
42
+ sys.exit(main())
@@ -0,0 +1 @@
1
+ # Marker file for PEP 561 - indicates this package supports type checking
@@ -0,0 +1,238 @@
1
+ Metadata-Version: 2.4
2
+ Name: abstractflow
3
+ Version: 0.1.0
4
+ Summary: Diagram-based AI workflow generation built on AbstractCore
5
+ Author-email: AbstractFlow Team <contact@abstractflow.ai>
6
+ Maintainer-email: AbstractFlow Team <contact@abstractflow.ai>
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://github.com/lpalbou/AbstractFlow
9
+ Project-URL: Documentation, https://abstractflow.readthedocs.io
10
+ Project-URL: Repository, https://github.com/lpalbou/AbstractFlow
11
+ Project-URL: Bug Tracker, https://github.com/lpalbou/AbstractFlow/issues
12
+ Project-URL: Changelog, https://github.com/lpalbou/AbstractFlow/blob/main/CHANGELOG.md
13
+ Keywords: ai,workflow,diagram,llm,automation,visual-programming,abstractcore,machine-learning
14
+ Classifier: Development Status :: 2 - Pre-Alpha
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Intended Audience :: Science/Research
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.8
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
25
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
+ Classifier: Topic :: System :: Distributed Computing
27
+ Requires-Python: >=3.8
28
+ Description-Content-Type: text/markdown
29
+ License-File: LICENSE
30
+ Requires-Dist: abstractcore>=2.0.0
31
+ Requires-Dist: pydantic>=2.0.0
32
+ Requires-Dist: typing-extensions>=4.0.0
33
+ Provides-Extra: dev
34
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
35
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
36
+ Requires-Dist: black>=23.0.0; extra == "dev"
37
+ Requires-Dist: isort>=5.12.0; extra == "dev"
38
+ Requires-Dist: flake8>=6.0.0; extra == "dev"
39
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
40
+ Requires-Dist: pre-commit>=3.0.0; extra == "dev"
41
+ Provides-Extra: server
42
+ Requires-Dist: fastapi>=0.100.0; extra == "server"
43
+ Requires-Dist: uvicorn[standard]>=0.23.0; extra == "server"
44
+ Requires-Dist: websockets>=11.0.0; extra == "server"
45
+ Provides-Extra: ui
46
+ Requires-Dist: streamlit>=1.28.0; extra == "ui"
47
+ Requires-Dist: plotly>=5.15.0; extra == "ui"
48
+ Requires-Dist: networkx>=3.1.0; extra == "ui"
49
+ Provides-Extra: all
50
+ Requires-Dist: abstractflow[dev,server,ui]; extra == "all"
51
+ Dynamic: license-file
52
+
53
+ # AbstractFlow
54
+
55
+ **Diagram-Based AI Workflow Generation**
56
+
57
+ > 🚧 **Coming Soon** - This project is currently in early development. We're reserving the PyPI name for the upcoming release.
58
+
59
+ AbstractFlow is an innovative Python library that enables visual, diagram-based creation and execution of AI workflows. Built on top of [AbstractCore](https://github.com/lpalbou/AbstractCore), it provides an intuitive interface for designing complex AI pipelines through interactive diagrams.
60
+
61
+ ## 🎯 Vision
62
+
63
+ AbstractFlow aims to democratize AI workflow creation by providing:
64
+
65
+ - **Visual Workflow Design**: Create AI workflows using intuitive drag-and-drop diagrams
66
+ - **Multi-Provider Support**: Leverage any LLM provider through AbstractCore's unified interface
67
+ - **Real-time Execution**: Watch your workflows execute in real-time with live feedback
68
+ - **Collaborative Development**: Share and collaborate on workflow designs
69
+ - **Production Ready**: Deploy workflows to production with built-in monitoring and scaling
70
+
71
+ ## 🚀 Planned Features
72
+
73
+ ### Core Capabilities
74
+ - **Diagram Editor**: Web-based visual editor for workflow creation
75
+ - **Node Library**: Pre-built nodes for common AI operations (text generation, analysis, transformation)
76
+ - **Custom Nodes**: Create custom nodes with your own logic and AI models
77
+ - **Flow Control**: Conditional branching, loops, and parallel execution
78
+ - **Data Transformation**: Built-in data processing and transformation capabilities
79
+
80
+ ### AI Integration
81
+ - **Universal LLM Support**: Works with OpenAI, Anthropic, Ollama, and all AbstractCore providers
82
+ - **Tool Calling**: Seamless integration with external APIs and services
83
+ - **Structured Output**: Type-safe data flow between workflow nodes
84
+ - **Streaming Support**: Real-time processing for interactive applications
85
+
86
+ ### Deployment & Monitoring
87
+ - **Cloud Deployment**: One-click deployment to major cloud platforms
88
+ - **Monitoring Dashboard**: Real-time workflow execution monitoring
89
+ - **Version Control**: Git-based workflow versioning and collaboration
90
+ - **API Generation**: Automatic REST API generation from workflows
91
+
92
+ ## 🏗️ Architecture
93
+
94
+ AbstractFlow is built on a robust foundation:
95
+
96
+ ```
97
+ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
98
+ │ Diagram UI │ │ Workflow Engine │ │ AbstractCore │
99
+ │ │────│ │────│ │
100
+ │ Visual Editor │ │ Execution Logic │ │ LLM Providers │
101
+ └─────────────────┘ └─────────────────┘ └─────────────────┘
102
+ ```
103
+
104
+ - **Frontend**: React-based diagram editor with real-time collaboration
105
+ - **Backend**: Python workflow execution engine with FastAPI
106
+ - **AI Layer**: AbstractCore for unified LLM provider access
107
+ - **Storage**: Workflow definitions, execution history, and metadata
108
+
109
+ ## 🎨 Use Cases
110
+
111
+ ### Business Process Automation
112
+ - Customer support ticket routing and response generation
113
+ - Document analysis and summarization pipelines
114
+ - Content creation and review workflows
115
+
116
+ ### Data Processing
117
+ - Multi-step data analysis with AI insights
118
+ - Automated report generation from raw data
119
+ - Real-time data enrichment and validation
120
+
121
+ ### Creative Workflows
122
+ - Multi-stage content creation (research → draft → review → publish)
123
+ - Interactive storytelling and narrative generation
124
+ - Collaborative writing and editing processes
125
+
126
+ ### Research & Development
127
+ - Hypothesis generation and testing workflows
128
+ - Literature review and synthesis automation
129
+ - Experimental design and analysis pipelines
130
+
131
+ ## 🛠️ Technology Stack
132
+
133
+ - **Core**: Python 3.8+ with AsyncIO support
134
+ - **AI Integration**: [AbstractCore](https://github.com/lpalbou/AbstractCore) for LLM provider abstraction
135
+ - **Web Framework**: FastAPI for high-performance API server
136
+ - **Frontend**: React with TypeScript for the diagram editor
137
+ - **Database**: PostgreSQL for workflow storage, Redis for caching
138
+ - **Deployment**: Docker containers with Kubernetes support
139
+
140
+ ## 📦 Installation (Coming Soon)
141
+
142
+ ```bash
143
+ # Install AbstractFlow
144
+ pip install abstractflow
145
+
146
+ # Or with all optional dependencies
147
+ pip install abstractflow[all]
148
+
149
+ # Development installation
150
+ pip install abstractflow[dev]
151
+ ```
152
+
153
+ ## 🚀 Quick Start (Preview)
154
+
155
+ ```python
156
+ from abstractflow import WorkflowBuilder, TextNode, LLMNode
157
+
158
+ # Create a simple workflow
159
+ workflow = WorkflowBuilder()
160
+
161
+ # Add nodes
162
+ input_node = workflow.add_node(TextNode("user_input"))
163
+ llm_node = workflow.add_node(LLMNode(
164
+ provider="openai",
165
+ model="gpt-4o-mini",
166
+ prompt="Analyze this text: {user_input}"
167
+ ))
168
+ output_node = workflow.add_node(TextNode("analysis_result"))
169
+
170
+ # Connect nodes
171
+ workflow.connect(input_node, llm_node)
172
+ workflow.connect(llm_node, output_node)
173
+
174
+ # Execute workflow
175
+ result = await workflow.execute({
176
+ "user_input": "The future of AI is bright and full of possibilities."
177
+ })
178
+
179
+ print(result["analysis_result"])
180
+ ```
181
+
182
+ ## 🎯 Roadmap
183
+
184
+ ### Phase 1: Foundation (Q1 2025)
185
+ - [ ] Core workflow engine
186
+ - [ ] Basic node types (LLM, Transform, Condition)
187
+ - [ ] CLI interface for workflow execution
188
+ - [ ] AbstractCore integration
189
+
190
+ ### Phase 2: Visual Editor (Q2 2025)
191
+ - [ ] Web-based diagram editor
192
+ - [ ] Real-time collaboration features
193
+ - [ ] Workflow templates and examples
194
+ - [ ] Import/export functionality
195
+
196
+ ### Phase 3: Advanced Features (Q3 2025)
197
+ - [ ] Custom node development SDK
198
+ - [ ] Advanced flow control (loops, parallel execution)
199
+ - [ ] Monitoring and analytics dashboard
200
+ - [ ] Cloud deployment integration
201
+
202
+ ### Phase 4: Enterprise (Q4 2025)
203
+ - [ ] Enterprise security features
204
+ - [ ] Advanced monitoring and alerting
205
+ - [ ] Multi-tenant support
206
+ - [ ] Professional services and support
207
+
208
+ ## 🤝 Contributing
209
+
210
+ We welcome contributions from the community! Once development begins, you'll be able to:
211
+
212
+ - Report bugs and request features
213
+ - Submit pull requests for improvements
214
+ - Create and share workflow templates
215
+ - Contribute to documentation
216
+
217
+ ## 📄 License
218
+
219
+ AbstractFlow will be released under the MIT License, ensuring it remains free and open-source for all users.
220
+
221
+ ## 🔗 Related Projects
222
+
223
+ - **[AbstractCore](https://github.com/lpalbou/AbstractCore)**: The unified LLM interface powering AbstractFlow
224
+ - **[AbstractCore Documentation](http://www.abstractcore.ai/)**: Comprehensive guides and API reference
225
+
226
+ ## 📞 Contact
227
+
228
+ For early access, partnerships, or questions about AbstractFlow:
229
+
230
+ - **GitHub**: [Issues and Discussions](https://github.com/lpalbou/AbstractFlow) (coming soon)
231
+ - **Email**: Contact through AbstractCore channels
232
+ - **Website**: [www.abstractflow.ai](http://www.abstractflow.ai) (coming soon)
233
+
234
+ ---
235
+
236
+ **AbstractFlow** - Visualize, Create, Execute. The future of AI workflow development is here.
237
+
238
+ > Built with ❤️ on top of [AbstractCore](https://github.com/lpalbou/AbstractCore)
@@ -0,0 +1,16 @@
1
+ CHANGELOG.md
2
+ LICENSE
3
+ MANIFEST.in
4
+ README.md
5
+ pyproject.toml
6
+ setup.py
7
+ abstractflow/__init__.py
8
+ abstractflow/__main__.py
9
+ abstractflow/cli.py
10
+ abstractflow/py.typed
11
+ abstractflow.egg-info/PKG-INFO
12
+ abstractflow.egg-info/SOURCES.txt
13
+ abstractflow.egg-info/dependency_links.txt
14
+ abstractflow.egg-info/entry_points.txt
15
+ abstractflow.egg-info/requires.txt
16
+ abstractflow.egg-info/top_level.txt
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ abstractflow = abstractflow.cli:main
@@ -0,0 +1,25 @@
1
+ abstractcore>=2.0.0
2
+ pydantic>=2.0.0
3
+ typing-extensions>=4.0.0
4
+
5
+ [all]
6
+ abstractflow[dev,server,ui]
7
+
8
+ [dev]
9
+ pytest>=7.0.0
10
+ pytest-asyncio>=0.21.0
11
+ black>=23.0.0
12
+ isort>=5.12.0
13
+ flake8>=6.0.0
14
+ mypy>=1.0.0
15
+ pre-commit>=3.0.0
16
+
17
+ [server]
18
+ fastapi>=0.100.0
19
+ uvicorn[standard]>=0.23.0
20
+ websockets>=11.0.0
21
+
22
+ [ui]
23
+ streamlit>=1.28.0
24
+ plotly>=5.15.0
25
+ networkx>=3.1.0
@@ -0,0 +1 @@
1
+ abstractflow
@@ -0,0 +1,142 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "abstractflow"
7
+ version = "0.1.0"
8
+ description = "Diagram-based AI workflow generation built on AbstractCore"
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ authors = [
12
+ {name = "AbstractFlow Team", email = "contact@abstractflow.ai"}
13
+ ]
14
+ maintainers = [
15
+ {name = "AbstractFlow Team", email = "contact@abstractflow.ai"}
16
+ ]
17
+ keywords = [
18
+ "ai", "workflow", "diagram", "llm", "automation",
19
+ "visual-programming", "abstractcore", "machine-learning"
20
+ ]
21
+ classifiers = [
22
+ "Development Status :: 2 - Pre-Alpha",
23
+ "Intended Audience :: Developers",
24
+ "Intended Audience :: Science/Research",
25
+ "Operating System :: OS Independent",
26
+ "Programming Language :: Python :: 3",
27
+ "Programming Language :: Python :: 3.8",
28
+ "Programming Language :: Python :: 3.9",
29
+ "Programming Language :: Python :: 3.10",
30
+ "Programming Language :: Python :: 3.11",
31
+ "Programming Language :: Python :: 3.12",
32
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
33
+ "Topic :: Software Development :: Libraries :: Python Modules",
34
+ "Topic :: System :: Distributed Computing",
35
+ ]
36
+ requires-python = ">=3.8"
37
+ dependencies = [
38
+ "abstractcore>=2.0.0",
39
+ "pydantic>=2.0.0",
40
+ "typing-extensions>=4.0.0",
41
+ ]
42
+
43
+ [project.optional-dependencies]
44
+ dev = [
45
+ "pytest>=7.0.0",
46
+ "pytest-asyncio>=0.21.0",
47
+ "black>=23.0.0",
48
+ "isort>=5.12.0",
49
+ "flake8>=6.0.0",
50
+ "mypy>=1.0.0",
51
+ "pre-commit>=3.0.0",
52
+ ]
53
+ server = [
54
+ "fastapi>=0.100.0",
55
+ "uvicorn[standard]>=0.23.0",
56
+ "websockets>=11.0.0",
57
+ ]
58
+ ui = [
59
+ "streamlit>=1.28.0",
60
+ "plotly>=5.15.0",
61
+ "networkx>=3.1.0",
62
+ ]
63
+ all = [
64
+ "abstractflow[dev,server,ui]"
65
+ ]
66
+
67
+ [project.urls]
68
+ Homepage = "https://github.com/lpalbou/AbstractFlow"
69
+ Documentation = "https://abstractflow.readthedocs.io"
70
+ Repository = "https://github.com/lpalbou/AbstractFlow"
71
+ "Bug Tracker" = "https://github.com/lpalbou/AbstractFlow/issues"
72
+ Changelog = "https://github.com/lpalbou/AbstractFlow/blob/main/CHANGELOG.md"
73
+
74
+ [project.scripts]
75
+ abstractflow = "abstractflow.cli:main"
76
+
77
+ [tool.setuptools.packages.find]
78
+ where = ["."]
79
+ include = ["abstractflow*"]
80
+ exclude = ["tests*", "docs*", "examples*"]
81
+
82
+ [tool.setuptools.package-data]
83
+ abstractflow = ["py.typed", "*.json", "*.yaml", "*.yml"]
84
+
85
+ [tool.black]
86
+ line-length = 88
87
+ target-version = ['py38']
88
+ include = '\.pyi?$'
89
+ extend-exclude = '''
90
+ /(
91
+ # directories
92
+ \.eggs
93
+ | \.git
94
+ | \.hg
95
+ | \.mypy_cache
96
+ | \.tox
97
+ | \.venv
98
+ | build
99
+ | dist
100
+ )/
101
+ '''
102
+
103
+ [tool.isort]
104
+ profile = "black"
105
+ multi_line_output = 3
106
+ line_length = 88
107
+ known_first_party = ["abstractflow"]
108
+
109
+ [tool.mypy]
110
+ python_version = "3.8"
111
+ warn_return_any = true
112
+ warn_unused_configs = true
113
+ disallow_untyped_defs = true
114
+ disallow_incomplete_defs = true
115
+ check_untyped_defs = true
116
+ disallow_untyped_decorators = true
117
+ no_implicit_optional = true
118
+ warn_redundant_casts = true
119
+ warn_unused_ignores = true
120
+ warn_no_return = true
121
+ warn_unreachable = true
122
+ strict_equality = true
123
+
124
+ [[tool.mypy.overrides]]
125
+ module = "tests.*"
126
+ disallow_untyped_defs = false
127
+
128
+ [tool.pytest.ini_options]
129
+ testpaths = ["tests"]
130
+ python_files = ["test_*.py", "*_test.py"]
131
+ python_classes = ["Test*"]
132
+ python_functions = ["test_*"]
133
+ addopts = [
134
+ "--strict-markers",
135
+ "--strict-config",
136
+ "--verbose",
137
+ ]
138
+ markers = [
139
+ "slow: marks tests as slow (deselect with '-m \"not slow\"')",
140
+ "integration: marks tests as integration tests",
141
+ "unit: marks tests as unit tests",
142
+ ]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,11 @@
1
+ """
2
+ Setup script for AbstractFlow.
3
+
4
+ This file is kept for compatibility with older tools that don't support pyproject.toml.
5
+ The actual configuration is in pyproject.toml.
6
+ """
7
+
8
+ from setuptools import setup
9
+
10
+ if __name__ == "__main__":
11
+ setup()