abstractframework 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.
- abstractframework-0.1.0/CHANGELOG.md +38 -0
- abstractframework-0.1.0/LICENSE +21 -0
- abstractframework-0.1.0/MANIFEST.in +6 -0
- abstractframework-0.1.0/PKG-INFO +240 -0
- abstractframework-0.1.0/README.md +162 -0
- abstractframework-0.1.0/__init__.py +201 -0
- abstractframework-0.1.0/abstractframework.egg-info/PKG-INFO +240 -0
- abstractframework-0.1.0/abstractframework.egg-info/SOURCES.txt +12 -0
- abstractframework-0.1.0/abstractframework.egg-info/dependency_links.txt +1 -0
- abstractframework-0.1.0/abstractframework.egg-info/requires.txt +32 -0
- abstractframework-0.1.0/abstractframework.egg-info/top_level.txt +1 -0
- abstractframework-0.1.0/pyproject.toml +155 -0
- abstractframework-0.1.0/setup.cfg +4 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to AbstractFramework 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
|
+
## [0.1.0] - 2025-10-18
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Initial placeholder release for AbstractFramework
|
|
14
|
+
- Comprehensive README.md with project vision and component descriptions
|
|
15
|
+
- Package structure with `__init__.py` containing:
|
|
16
|
+
- Component availability detection
|
|
17
|
+
- Placeholder functions for future unified API
|
|
18
|
+
- Version information utilities
|
|
19
|
+
- Status reporting functionality
|
|
20
|
+
- PyPI publishing configuration in `pyproject.toml`
|
|
21
|
+
- MIT License matching AbstractCore
|
|
22
|
+
- Standard Python `.gitignore`
|
|
23
|
+
- Project documentation structure
|
|
24
|
+
|
|
25
|
+
### Components Status
|
|
26
|
+
- ✅ **AbstractCore**: Available (v2.4.1) - Unified LLM provider interface
|
|
27
|
+
- 🚧 **AbstractMemory**: In development - Advanced memory systems
|
|
28
|
+
- 🚧 **AbstractAgent**: Planned - Intelligent agent framework
|
|
29
|
+
- 🚧 **AbstractSwarm**: Planned - Multi-agent coordination
|
|
30
|
+
|
|
31
|
+
### Notes
|
|
32
|
+
- This is a placeholder release to reserve the PyPI name "abstractframework"
|
|
33
|
+
- Currently only provides project structure and documentation
|
|
34
|
+
- AbstractCore is fully functional and can be installed separately
|
|
35
|
+
- Future releases will add actual functionality as components become available
|
|
36
|
+
|
|
37
|
+
[Unreleased]: https://github.com/lpalbou/AbstractFramework/compare/v0.1.0...HEAD
|
|
38
|
+
[0.1.0]: https://github.com/lpalbou/AbstractFramework/releases/tag/v0.1.0
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Laurent-Philippe Albou
|
|
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,240 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: abstractframework
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A unified ecosystem for AI-powered applications and intelligent systems
|
|
5
|
+
Author-email: Laurent-Philippe Albou <contact@abstractcore.ai>
|
|
6
|
+
Maintainer-email: Laurent-Philippe Albou <contact@abstractcore.ai>
|
|
7
|
+
License: MIT License
|
|
8
|
+
|
|
9
|
+
Copyright (c) 2025 Laurent-Philippe Albou
|
|
10
|
+
|
|
11
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
13
|
+
in the Software without restriction, including without limitation the rights
|
|
14
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
16
|
+
furnished to do so, subject to the following conditions:
|
|
17
|
+
|
|
18
|
+
The above copyright notice and this permission notice shall be included in all
|
|
19
|
+
copies or substantial portions of the Software.
|
|
20
|
+
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
+
SOFTWARE.
|
|
28
|
+
|
|
29
|
+
Project-URL: Homepage, https://github.com/lpalbou/AbstractFramework
|
|
30
|
+
Project-URL: Documentation, https://github.com/lpalbou/AbstractFramework
|
|
31
|
+
Project-URL: Repository, https://github.com/lpalbou/AbstractFramework
|
|
32
|
+
Project-URL: Bug Tracker, https://github.com/lpalbou/AbstractFramework/issues
|
|
33
|
+
Project-URL: Changelog, https://github.com/lpalbou/AbstractFramework/blob/main/CHANGELOG.md
|
|
34
|
+
Project-URL: AbstractCore, https://github.com/lpalbou/AbstractCore
|
|
35
|
+
Keywords: ai,llm,agents,memory,swarm,artificial-intelligence,machine-learning,nlp,chatbot,framework,ecosystem
|
|
36
|
+
Classifier: Development Status :: 3 - Alpha
|
|
37
|
+
Classifier: Intended Audience :: Developers
|
|
38
|
+
Classifier: Intended Audience :: Science/Research
|
|
39
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
40
|
+
Classifier: Operating System :: OS Independent
|
|
41
|
+
Classifier: Programming Language :: Python :: 3
|
|
42
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
43
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
44
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
45
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
46
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
47
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
48
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
49
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
50
|
+
Requires-Python: >=3.8
|
|
51
|
+
Description-Content-Type: text/markdown
|
|
52
|
+
License-File: LICENSE
|
|
53
|
+
Provides-Extra: core
|
|
54
|
+
Requires-Dist: abstractcore[all]>=2.4.0; extra == "core"
|
|
55
|
+
Provides-Extra: memory
|
|
56
|
+
Requires-Dist: abstractmemory>=0.1.0; extra == "memory"
|
|
57
|
+
Provides-Extra: agent
|
|
58
|
+
Requires-Dist: abstractagent>=0.1.0; extra == "agent"
|
|
59
|
+
Provides-Extra: swarm
|
|
60
|
+
Requires-Dist: abstractswarm>=0.1.0; extra == "swarm"
|
|
61
|
+
Provides-Extra: available
|
|
62
|
+
Requires-Dist: abstractcore[all]>=2.4.0; extra == "available"
|
|
63
|
+
Provides-Extra: all
|
|
64
|
+
Requires-Dist: abstractcore[all]>=2.4.0; extra == "all"
|
|
65
|
+
Provides-Extra: dev
|
|
66
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
67
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
68
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
69
|
+
Requires-Dist: isort>=5.12.0; extra == "dev"
|
|
70
|
+
Requires-Dist: flake8>=6.0.0; extra == "dev"
|
|
71
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
72
|
+
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
73
|
+
Provides-Extra: docs
|
|
74
|
+
Requires-Dist: mkdocs>=1.5.0; extra == "docs"
|
|
75
|
+
Requires-Dist: mkdocs-material>=9.0.0; extra == "docs"
|
|
76
|
+
Requires-Dist: mkdocstrings[python]>=0.20.0; extra == "docs"
|
|
77
|
+
Dynamic: license-file
|
|
78
|
+
|
|
79
|
+
# AbstractFramework
|
|
80
|
+
|
|
81
|
+
**A unified ecosystem for AI-powered applications and intelligent systems.**
|
|
82
|
+
|
|
83
|
+
AbstractFramework is an umbrella project that brings together a comprehensive suite of tools and libraries for building sophisticated AI applications. Each component is designed to work seamlessly together while maintaining independence and modularity.
|
|
84
|
+
|
|
85
|
+
## 🏗️ Framework Components
|
|
86
|
+
|
|
87
|
+
### 📚 [AbstractCore](https://github.com/lpalbou/AbstractCore) ✅ **Available**
|
|
88
|
+
*Unified Python library for interaction with multiple Large Language Model (LLM) providers.*
|
|
89
|
+
|
|
90
|
+
**Write once, run everywhere.**
|
|
91
|
+
|
|
92
|
+
- **Provider Agnostic**: Works with OpenAI, Anthropic, Ollama, and more
|
|
93
|
+
- **Tool Calling**: Universal function calling across providers
|
|
94
|
+
- **Structured Output**: Type-safe Pydantic integration
|
|
95
|
+
- **Embeddings & RAG**: Built-in vector embeddings for semantic search
|
|
96
|
+
- **Session Management**: Persistent conversations and analytics
|
|
97
|
+
- **Server Mode**: Optional OpenAI-compatible API server
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
from abstractcore import create_llm
|
|
101
|
+
|
|
102
|
+
# Works with any provider
|
|
103
|
+
llm = create_llm("anthropic", model="claude-3-5-haiku-latest")
|
|
104
|
+
response = llm.generate("What is the capital of France?")
|
|
105
|
+
print(response.content)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 🧠 AbstractMemory 🚧 **Coming Soon**
|
|
109
|
+
*Advanced memory systems for AI agents and applications.*
|
|
110
|
+
|
|
111
|
+
- **Persistent Memory**: Long-term storage and retrieval
|
|
112
|
+
- **Contextual Memory**: Semantic understanding and associations
|
|
113
|
+
- **Memory Hierarchies**: Short-term, working, and long-term memory
|
|
114
|
+
- **Memory Compression**: Efficient storage of large contexts
|
|
115
|
+
- **Cross-Session Continuity**: Maintain context across interactions
|
|
116
|
+
|
|
117
|
+
### 🤖 AbstractAgent 🚧 **Coming Soon**
|
|
118
|
+
*Intelligent agent framework with reasoning and tool use capabilities.*
|
|
119
|
+
|
|
120
|
+
- **Autonomous Reasoning**: Multi-step problem solving
|
|
121
|
+
- **Tool Integration**: Seamless integration with external tools
|
|
122
|
+
- **Goal-Oriented Behavior**: Task planning and execution
|
|
123
|
+
- **Learning Capabilities**: Adaptive behavior from experience
|
|
124
|
+
- **Safety Mechanisms**: Built-in guardrails and monitoring
|
|
125
|
+
|
|
126
|
+
### 🐝 AbstractSwarm 🚧 **Coming Soon**
|
|
127
|
+
*Multi-agent coordination and swarm intelligence systems.*
|
|
128
|
+
|
|
129
|
+
- **Agent Orchestration**: Coordinate multiple specialized agents
|
|
130
|
+
- **Distributed Processing**: Scale across multiple nodes
|
|
131
|
+
- **Emergent Behavior**: Complex behaviors from simple interactions
|
|
132
|
+
- **Communication Protocols**: Inter-agent messaging and coordination
|
|
133
|
+
- **Collective Intelligence**: Leverage swarm problem-solving
|
|
134
|
+
|
|
135
|
+
## 🚀 Quick Start
|
|
136
|
+
|
|
137
|
+
### Installation
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Install the full framework (when all components are available)
|
|
141
|
+
pip install abstractframework[all]
|
|
142
|
+
|
|
143
|
+
# Or install individual components
|
|
144
|
+
pip install abstractcore[all] # Available now
|
|
145
|
+
pip install abstractmemory # Coming soon
|
|
146
|
+
pip install abstractagent # Coming soon
|
|
147
|
+
pip install abstractswarm # Coming soon
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Basic Usage
|
|
151
|
+
|
|
152
|
+
```python
|
|
153
|
+
import abstractframework as af
|
|
154
|
+
|
|
155
|
+
# Create an intelligent agent with memory and LLM capabilities
|
|
156
|
+
agent = af.create_agent(
|
|
157
|
+
llm_provider="openai",
|
|
158
|
+
model="gpt-4o-mini",
|
|
159
|
+
memory_type="persistent",
|
|
160
|
+
tools=["web_search", "calculator", "file_system"]
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
# Have a conversation with persistent memory
|
|
164
|
+
response = agent.chat("Remember that I prefer Python over JavaScript")
|
|
165
|
+
print(response)
|
|
166
|
+
|
|
167
|
+
# The agent remembers across sessions
|
|
168
|
+
response = agent.chat("What programming language do I prefer?")
|
|
169
|
+
print(response) # "You prefer Python over JavaScript"
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## 🎯 Use Cases
|
|
173
|
+
|
|
174
|
+
### 1. **Intelligent Applications**
|
|
175
|
+
Build AI-powered applications with persistent memory, reasoning capabilities, and multi-provider LLM support.
|
|
176
|
+
|
|
177
|
+
### 2. **Research & Development**
|
|
178
|
+
Experiment with different AI architectures, memory systems, and agent behaviors in a unified framework.
|
|
179
|
+
|
|
180
|
+
### 3. **Enterprise AI Systems**
|
|
181
|
+
Deploy scalable AI solutions with swarm intelligence, distributed processing, and robust memory management.
|
|
182
|
+
|
|
183
|
+
### 4. **Educational Projects**
|
|
184
|
+
Learn AI concepts through hands-on experimentation with agents, memory systems, and LLM interactions.
|
|
185
|
+
|
|
186
|
+
## 🏛️ Architecture Philosophy
|
|
187
|
+
|
|
188
|
+
AbstractFramework follows key design principles:
|
|
189
|
+
|
|
190
|
+
- **🔧 Modularity**: Each component works independently and together
|
|
191
|
+
- **🔄 Interoperability**: Seamless integration between components
|
|
192
|
+
- **📈 Scalability**: From single agents to distributed swarms
|
|
193
|
+
- **🛡️ Robustness**: Production-ready with comprehensive error handling
|
|
194
|
+
- **🎨 Flexibility**: Adapt to diverse use cases and requirements
|
|
195
|
+
- **📚 Simplicity**: Clean APIs that hide complexity without limiting power
|
|
196
|
+
|
|
197
|
+
## 📊 Project Status
|
|
198
|
+
|
|
199
|
+
| Component | Status | Version | Documentation |
|
|
200
|
+
|-----------|--------|---------|---------------|
|
|
201
|
+
| AbstractCore | ✅ **Available** | 2.4.1 | [Complete](https://github.com/lpalbou/AbstractCore) |
|
|
202
|
+
| AbstractMemory | 🚧 **In Development** | - | Coming Soon |
|
|
203
|
+
| AbstractAgent | 🚧 **Planned** | - | Coming Soon |
|
|
204
|
+
| AbstractSwarm | 🚧 **Planned** | - | Coming Soon |
|
|
205
|
+
|
|
206
|
+
## 🤝 Contributing
|
|
207
|
+
|
|
208
|
+
We welcome contributions to any component of the AbstractFramework ecosystem!
|
|
209
|
+
|
|
210
|
+
- **AbstractCore**: [Contributing Guide](https://github.com/lpalbou/AbstractCore/blob/main/CONTRIBUTING.md)
|
|
211
|
+
- **Other Components**: Contributing guides will be available as components are released
|
|
212
|
+
|
|
213
|
+
## 📄 License
|
|
214
|
+
|
|
215
|
+
MIT License - see LICENSE file for details.
|
|
216
|
+
|
|
217
|
+
All components of AbstractFramework are released under the MIT License to ensure maximum compatibility and adoption.
|
|
218
|
+
|
|
219
|
+
## 🔗 Links
|
|
220
|
+
|
|
221
|
+
- **AbstractCore Repository**: https://github.com/lpalbou/AbstractCore
|
|
222
|
+
- **Documentation**: Coming soon
|
|
223
|
+
- **Community Discussions**: Coming soon
|
|
224
|
+
- **Issue Tracker**: Coming soon
|
|
225
|
+
|
|
226
|
+
## 🌟 Vision
|
|
227
|
+
|
|
228
|
+
AbstractFramework aims to democratize AI development by providing:
|
|
229
|
+
|
|
230
|
+
1. **Unified Interfaces**: Consistent APIs across all AI capabilities
|
|
231
|
+
2. **Production Ready**: Enterprise-grade reliability and performance
|
|
232
|
+
3. **Research Friendly**: Easy experimentation and prototyping
|
|
233
|
+
4. **Community Driven**: Open source with active community involvement
|
|
234
|
+
5. **Future Proof**: Designed to evolve with AI advancements
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
**AbstractFramework** - *Building the future of AI applications, one component at a time.*
|
|
239
|
+
|
|
240
|
+
> **Note**: This is currently a placeholder project. AbstractCore is fully functional and available. Other components are in various stages of development. Star this repository to stay updated on releases!
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# AbstractFramework
|
|
2
|
+
|
|
3
|
+
**A unified ecosystem for AI-powered applications and intelligent systems.**
|
|
4
|
+
|
|
5
|
+
AbstractFramework is an umbrella project that brings together a comprehensive suite of tools and libraries for building sophisticated AI applications. Each component is designed to work seamlessly together while maintaining independence and modularity.
|
|
6
|
+
|
|
7
|
+
## 🏗️ Framework Components
|
|
8
|
+
|
|
9
|
+
### 📚 [AbstractCore](https://github.com/lpalbou/AbstractCore) ✅ **Available**
|
|
10
|
+
*Unified Python library for interaction with multiple Large Language Model (LLM) providers.*
|
|
11
|
+
|
|
12
|
+
**Write once, run everywhere.**
|
|
13
|
+
|
|
14
|
+
- **Provider Agnostic**: Works with OpenAI, Anthropic, Ollama, and more
|
|
15
|
+
- **Tool Calling**: Universal function calling across providers
|
|
16
|
+
- **Structured Output**: Type-safe Pydantic integration
|
|
17
|
+
- **Embeddings & RAG**: Built-in vector embeddings for semantic search
|
|
18
|
+
- **Session Management**: Persistent conversations and analytics
|
|
19
|
+
- **Server Mode**: Optional OpenAI-compatible API server
|
|
20
|
+
|
|
21
|
+
```python
|
|
22
|
+
from abstractcore import create_llm
|
|
23
|
+
|
|
24
|
+
# Works with any provider
|
|
25
|
+
llm = create_llm("anthropic", model="claude-3-5-haiku-latest")
|
|
26
|
+
response = llm.generate("What is the capital of France?")
|
|
27
|
+
print(response.content)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 🧠 AbstractMemory 🚧 **Coming Soon**
|
|
31
|
+
*Advanced memory systems for AI agents and applications.*
|
|
32
|
+
|
|
33
|
+
- **Persistent Memory**: Long-term storage and retrieval
|
|
34
|
+
- **Contextual Memory**: Semantic understanding and associations
|
|
35
|
+
- **Memory Hierarchies**: Short-term, working, and long-term memory
|
|
36
|
+
- **Memory Compression**: Efficient storage of large contexts
|
|
37
|
+
- **Cross-Session Continuity**: Maintain context across interactions
|
|
38
|
+
|
|
39
|
+
### 🤖 AbstractAgent 🚧 **Coming Soon**
|
|
40
|
+
*Intelligent agent framework with reasoning and tool use capabilities.*
|
|
41
|
+
|
|
42
|
+
- **Autonomous Reasoning**: Multi-step problem solving
|
|
43
|
+
- **Tool Integration**: Seamless integration with external tools
|
|
44
|
+
- **Goal-Oriented Behavior**: Task planning and execution
|
|
45
|
+
- **Learning Capabilities**: Adaptive behavior from experience
|
|
46
|
+
- **Safety Mechanisms**: Built-in guardrails and monitoring
|
|
47
|
+
|
|
48
|
+
### 🐝 AbstractSwarm 🚧 **Coming Soon**
|
|
49
|
+
*Multi-agent coordination and swarm intelligence systems.*
|
|
50
|
+
|
|
51
|
+
- **Agent Orchestration**: Coordinate multiple specialized agents
|
|
52
|
+
- **Distributed Processing**: Scale across multiple nodes
|
|
53
|
+
- **Emergent Behavior**: Complex behaviors from simple interactions
|
|
54
|
+
- **Communication Protocols**: Inter-agent messaging and coordination
|
|
55
|
+
- **Collective Intelligence**: Leverage swarm problem-solving
|
|
56
|
+
|
|
57
|
+
## 🚀 Quick Start
|
|
58
|
+
|
|
59
|
+
### Installation
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Install the full framework (when all components are available)
|
|
63
|
+
pip install abstractframework[all]
|
|
64
|
+
|
|
65
|
+
# Or install individual components
|
|
66
|
+
pip install abstractcore[all] # Available now
|
|
67
|
+
pip install abstractmemory # Coming soon
|
|
68
|
+
pip install abstractagent # Coming soon
|
|
69
|
+
pip install abstractswarm # Coming soon
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Basic Usage
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
import abstractframework as af
|
|
76
|
+
|
|
77
|
+
# Create an intelligent agent with memory and LLM capabilities
|
|
78
|
+
agent = af.create_agent(
|
|
79
|
+
llm_provider="openai",
|
|
80
|
+
model="gpt-4o-mini",
|
|
81
|
+
memory_type="persistent",
|
|
82
|
+
tools=["web_search", "calculator", "file_system"]
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
# Have a conversation with persistent memory
|
|
86
|
+
response = agent.chat("Remember that I prefer Python over JavaScript")
|
|
87
|
+
print(response)
|
|
88
|
+
|
|
89
|
+
# The agent remembers across sessions
|
|
90
|
+
response = agent.chat("What programming language do I prefer?")
|
|
91
|
+
print(response) # "You prefer Python over JavaScript"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## 🎯 Use Cases
|
|
95
|
+
|
|
96
|
+
### 1. **Intelligent Applications**
|
|
97
|
+
Build AI-powered applications with persistent memory, reasoning capabilities, and multi-provider LLM support.
|
|
98
|
+
|
|
99
|
+
### 2. **Research & Development**
|
|
100
|
+
Experiment with different AI architectures, memory systems, and agent behaviors in a unified framework.
|
|
101
|
+
|
|
102
|
+
### 3. **Enterprise AI Systems**
|
|
103
|
+
Deploy scalable AI solutions with swarm intelligence, distributed processing, and robust memory management.
|
|
104
|
+
|
|
105
|
+
### 4. **Educational Projects**
|
|
106
|
+
Learn AI concepts through hands-on experimentation with agents, memory systems, and LLM interactions.
|
|
107
|
+
|
|
108
|
+
## 🏛️ Architecture Philosophy
|
|
109
|
+
|
|
110
|
+
AbstractFramework follows key design principles:
|
|
111
|
+
|
|
112
|
+
- **🔧 Modularity**: Each component works independently and together
|
|
113
|
+
- **🔄 Interoperability**: Seamless integration between components
|
|
114
|
+
- **📈 Scalability**: From single agents to distributed swarms
|
|
115
|
+
- **🛡️ Robustness**: Production-ready with comprehensive error handling
|
|
116
|
+
- **🎨 Flexibility**: Adapt to diverse use cases and requirements
|
|
117
|
+
- **📚 Simplicity**: Clean APIs that hide complexity without limiting power
|
|
118
|
+
|
|
119
|
+
## 📊 Project Status
|
|
120
|
+
|
|
121
|
+
| Component | Status | Version | Documentation |
|
|
122
|
+
|-----------|--------|---------|---------------|
|
|
123
|
+
| AbstractCore | ✅ **Available** | 2.4.1 | [Complete](https://github.com/lpalbou/AbstractCore) |
|
|
124
|
+
| AbstractMemory | 🚧 **In Development** | - | Coming Soon |
|
|
125
|
+
| AbstractAgent | 🚧 **Planned** | - | Coming Soon |
|
|
126
|
+
| AbstractSwarm | 🚧 **Planned** | - | Coming Soon |
|
|
127
|
+
|
|
128
|
+
## 🤝 Contributing
|
|
129
|
+
|
|
130
|
+
We welcome contributions to any component of the AbstractFramework ecosystem!
|
|
131
|
+
|
|
132
|
+
- **AbstractCore**: [Contributing Guide](https://github.com/lpalbou/AbstractCore/blob/main/CONTRIBUTING.md)
|
|
133
|
+
- **Other Components**: Contributing guides will be available as components are released
|
|
134
|
+
|
|
135
|
+
## 📄 License
|
|
136
|
+
|
|
137
|
+
MIT License - see LICENSE file for details.
|
|
138
|
+
|
|
139
|
+
All components of AbstractFramework are released under the MIT License to ensure maximum compatibility and adoption.
|
|
140
|
+
|
|
141
|
+
## 🔗 Links
|
|
142
|
+
|
|
143
|
+
- **AbstractCore Repository**: https://github.com/lpalbou/AbstractCore
|
|
144
|
+
- **Documentation**: Coming soon
|
|
145
|
+
- **Community Discussions**: Coming soon
|
|
146
|
+
- **Issue Tracker**: Coming soon
|
|
147
|
+
|
|
148
|
+
## 🌟 Vision
|
|
149
|
+
|
|
150
|
+
AbstractFramework aims to democratize AI development by providing:
|
|
151
|
+
|
|
152
|
+
1. **Unified Interfaces**: Consistent APIs across all AI capabilities
|
|
153
|
+
2. **Production Ready**: Enterprise-grade reliability and performance
|
|
154
|
+
3. **Research Friendly**: Easy experimentation and prototyping
|
|
155
|
+
4. **Community Driven**: Open source with active community involvement
|
|
156
|
+
5. **Future Proof**: Designed to evolve with AI advancements
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
**AbstractFramework** - *Building the future of AI applications, one component at a time.*
|
|
161
|
+
|
|
162
|
+
> **Note**: This is currently a placeholder project. AbstractCore is fully functional and available. Other components are in various stages of development. Star this repository to stay updated on releases!
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"""
|
|
2
|
+
AbstractFramework - A unified ecosystem for AI-powered applications and intelligent systems.
|
|
3
|
+
|
|
4
|
+
This is the main entry point for the AbstractFramework ecosystem, which includes:
|
|
5
|
+
- AbstractCore: Unified LLM provider interface
|
|
6
|
+
- AbstractMemory: Advanced memory systems (coming soon)
|
|
7
|
+
- AbstractAgent: Intelligent agent framework (coming soon)
|
|
8
|
+
- AbstractSwarm: Multi-agent coordination (coming soon)
|
|
9
|
+
|
|
10
|
+
Example:
|
|
11
|
+
>>> import abstractframework as af
|
|
12
|
+
>>> # When all components are available:
|
|
13
|
+
>>> agent = af.create_agent(llm_provider="openai", model="gpt-4o-mini")
|
|
14
|
+
>>> response = agent.chat("Hello, world!")
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
__version__ = "0.1.0"
|
|
18
|
+
__author__ = "Laurent-Philippe Albou"
|
|
19
|
+
__email__ = "lpalbou@gmail.com"
|
|
20
|
+
__description__ = "A unified ecosystem for AI-powered applications and intelligent systems"
|
|
21
|
+
__url__ = "https://github.com/lpalbou/AbstractFramework"
|
|
22
|
+
|
|
23
|
+
# Component availability flags
|
|
24
|
+
ABSTRACTCORE_AVAILABLE = False
|
|
25
|
+
ABSTRACTMEMORY_AVAILABLE = False
|
|
26
|
+
ABSTRACTAGENT_AVAILABLE = False
|
|
27
|
+
ABSTRACTSWARM_AVAILABLE = False
|
|
28
|
+
|
|
29
|
+
# Try to import available components
|
|
30
|
+
try:
|
|
31
|
+
import abstractcore
|
|
32
|
+
ABSTRACTCORE_AVAILABLE = True
|
|
33
|
+
__all__ = ["abstractcore"]
|
|
34
|
+
except ImportError:
|
|
35
|
+
__all__ = []
|
|
36
|
+
|
|
37
|
+
try:
|
|
38
|
+
import abstractmemory
|
|
39
|
+
ABSTRACTMEMORY_AVAILABLE = True
|
|
40
|
+
__all__.append("abstractmemory")
|
|
41
|
+
except ImportError:
|
|
42
|
+
pass
|
|
43
|
+
|
|
44
|
+
try:
|
|
45
|
+
import abstractagent
|
|
46
|
+
ABSTRACTAGENT_AVAILABLE = True
|
|
47
|
+
__all__.append("abstractagent")
|
|
48
|
+
except ImportError:
|
|
49
|
+
pass
|
|
50
|
+
|
|
51
|
+
try:
|
|
52
|
+
import abstractswarm
|
|
53
|
+
ABSTRACTSWARM_AVAILABLE = True
|
|
54
|
+
__all__.append("abstractswarm")
|
|
55
|
+
except ImportError:
|
|
56
|
+
pass
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def get_available_components():
|
|
60
|
+
"""
|
|
61
|
+
Get a list of currently available AbstractFramework components.
|
|
62
|
+
|
|
63
|
+
Returns:
|
|
64
|
+
dict: Dictionary mapping component names to their availability status
|
|
65
|
+
"""
|
|
66
|
+
return {
|
|
67
|
+
"abstractcore": ABSTRACTCORE_AVAILABLE,
|
|
68
|
+
"abstractmemory": ABSTRACTMEMORY_AVAILABLE,
|
|
69
|
+
"abstractagent": ABSTRACTAGENT_AVAILABLE,
|
|
70
|
+
"abstractswarm": ABSTRACTSWARM_AVAILABLE,
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def get_version_info():
|
|
75
|
+
"""
|
|
76
|
+
Get version information for AbstractFramework and its components.
|
|
77
|
+
|
|
78
|
+
Returns:
|
|
79
|
+
dict: Dictionary with version information for each component
|
|
80
|
+
"""
|
|
81
|
+
versions = {"abstractframework": __version__}
|
|
82
|
+
|
|
83
|
+
if ABSTRACTCORE_AVAILABLE:
|
|
84
|
+
try:
|
|
85
|
+
versions["abstractcore"] = abstractcore.__version__
|
|
86
|
+
except AttributeError:
|
|
87
|
+
versions["abstractcore"] = "unknown"
|
|
88
|
+
|
|
89
|
+
if ABSTRACTMEMORY_AVAILABLE:
|
|
90
|
+
try:
|
|
91
|
+
versions["abstractmemory"] = abstractmemory.__version__
|
|
92
|
+
except AttributeError:
|
|
93
|
+
versions["abstractmemory"] = "unknown"
|
|
94
|
+
|
|
95
|
+
if ABSTRACTAGENT_AVAILABLE:
|
|
96
|
+
try:
|
|
97
|
+
versions["abstractagent"] = abstractagent.__version__
|
|
98
|
+
except AttributeError:
|
|
99
|
+
versions["abstractagent"] = "unknown"
|
|
100
|
+
|
|
101
|
+
if ABSTRACTSWARM_AVAILABLE:
|
|
102
|
+
try:
|
|
103
|
+
versions["abstractswarm"] = abstractswarm.__version__
|
|
104
|
+
except AttributeError:
|
|
105
|
+
versions["abstractswarm"] = "unknown"
|
|
106
|
+
|
|
107
|
+
return versions
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
# Placeholder functions for future unified API
|
|
111
|
+
def create_agent(*args, **kwargs):
|
|
112
|
+
"""
|
|
113
|
+
Create an intelligent agent (placeholder - requires AbstractAgent).
|
|
114
|
+
|
|
115
|
+
This function will be available when AbstractAgent is released.
|
|
116
|
+
Currently raises NotImplementedError.
|
|
117
|
+
|
|
118
|
+
Raises:
|
|
119
|
+
NotImplementedError: AbstractAgent is not yet available
|
|
120
|
+
"""
|
|
121
|
+
if not ABSTRACTAGENT_AVAILABLE:
|
|
122
|
+
raise NotImplementedError(
|
|
123
|
+
"AbstractAgent is not yet available. "
|
|
124
|
+
"This function will be implemented when AbstractAgent is released. "
|
|
125
|
+
"For now, use AbstractCore directly: pip install abstractcore[all]"
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
# Future implementation will delegate to AbstractAgent
|
|
129
|
+
return abstractagent.create_agent(*args, **kwargs)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def create_swarm(*args, **kwargs):
|
|
133
|
+
"""
|
|
134
|
+
Create a multi-agent swarm (placeholder - requires AbstractSwarm).
|
|
135
|
+
|
|
136
|
+
This function will be available when AbstractSwarm is released.
|
|
137
|
+
Currently raises NotImplementedError.
|
|
138
|
+
|
|
139
|
+
Raises:
|
|
140
|
+
NotImplementedError: AbstractSwarm is not yet available
|
|
141
|
+
"""
|
|
142
|
+
if not ABSTRACTSWARM_AVAILABLE:
|
|
143
|
+
raise NotImplementedError(
|
|
144
|
+
"AbstractSwarm is not yet available. "
|
|
145
|
+
"This function will be implemented when AbstractSwarm is released."
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
# Future implementation will delegate to AbstractSwarm
|
|
149
|
+
return abstractswarm.create_swarm(*args, **kwargs)
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def create_memory(*args, **kwargs):
|
|
153
|
+
"""
|
|
154
|
+
Create a memory system (placeholder - requires AbstractMemory).
|
|
155
|
+
|
|
156
|
+
This function will be available when AbstractMemory is released.
|
|
157
|
+
Currently raises NotImplementedError.
|
|
158
|
+
|
|
159
|
+
Raises:
|
|
160
|
+
NotImplementedError: AbstractMemory is not yet available
|
|
161
|
+
"""
|
|
162
|
+
if not ABSTRACTMEMORY_AVAILABLE:
|
|
163
|
+
raise NotImplementedError(
|
|
164
|
+
"AbstractMemory is not yet available. "
|
|
165
|
+
"This function will be implemented when AbstractMemory is released."
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
# Future implementation will delegate to AbstractMemory
|
|
169
|
+
return abstractmemory.create_memory(*args, **kwargs)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
# Convenience function to check framework status
|
|
173
|
+
def status():
|
|
174
|
+
"""
|
|
175
|
+
Print the current status of AbstractFramework components.
|
|
176
|
+
"""
|
|
177
|
+
print("AbstractFramework Status:")
|
|
178
|
+
print(f" Version: {__version__}")
|
|
179
|
+
print("\nComponent Availability:")
|
|
180
|
+
|
|
181
|
+
components = get_available_components()
|
|
182
|
+
for component, available in components.items():
|
|
183
|
+
status_icon = "✅" if available else "❌"
|
|
184
|
+
status_text = "Available" if available else "Not Available"
|
|
185
|
+
print(f" {status_icon} {component}: {status_text}")
|
|
186
|
+
|
|
187
|
+
if ABSTRACTCORE_AVAILABLE:
|
|
188
|
+
print(f"\nTo get started with AbstractCore:")
|
|
189
|
+
print(f" from abstractcore import create_llm")
|
|
190
|
+
print(f" llm = create_llm('openai', model='gpt-4o-mini')")
|
|
191
|
+
print(f" response = llm.generate('Hello, world!')")
|
|
192
|
+
else:
|
|
193
|
+
print(f"\nTo install AbstractCore:")
|
|
194
|
+
print(f" pip install abstractcore[all]")
|
|
195
|
+
|
|
196
|
+
print(f"\nFor more information: {__url__}")
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
# Make status available at package level
|
|
200
|
+
__all__.extend(["get_available_components", "get_version_info", "status",
|
|
201
|
+
"create_agent", "create_swarm", "create_memory"])
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: abstractframework
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A unified ecosystem for AI-powered applications and intelligent systems
|
|
5
|
+
Author-email: Laurent-Philippe Albou <contact@abstractcore.ai>
|
|
6
|
+
Maintainer-email: Laurent-Philippe Albou <contact@abstractcore.ai>
|
|
7
|
+
License: MIT License
|
|
8
|
+
|
|
9
|
+
Copyright (c) 2025 Laurent-Philippe Albou
|
|
10
|
+
|
|
11
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
13
|
+
in the Software without restriction, including without limitation the rights
|
|
14
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
16
|
+
furnished to do so, subject to the following conditions:
|
|
17
|
+
|
|
18
|
+
The above copyright notice and this permission notice shall be included in all
|
|
19
|
+
copies or substantial portions of the Software.
|
|
20
|
+
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
+
SOFTWARE.
|
|
28
|
+
|
|
29
|
+
Project-URL: Homepage, https://github.com/lpalbou/AbstractFramework
|
|
30
|
+
Project-URL: Documentation, https://github.com/lpalbou/AbstractFramework
|
|
31
|
+
Project-URL: Repository, https://github.com/lpalbou/AbstractFramework
|
|
32
|
+
Project-URL: Bug Tracker, https://github.com/lpalbou/AbstractFramework/issues
|
|
33
|
+
Project-URL: Changelog, https://github.com/lpalbou/AbstractFramework/blob/main/CHANGELOG.md
|
|
34
|
+
Project-URL: AbstractCore, https://github.com/lpalbou/AbstractCore
|
|
35
|
+
Keywords: ai,llm,agents,memory,swarm,artificial-intelligence,machine-learning,nlp,chatbot,framework,ecosystem
|
|
36
|
+
Classifier: Development Status :: 3 - Alpha
|
|
37
|
+
Classifier: Intended Audience :: Developers
|
|
38
|
+
Classifier: Intended Audience :: Science/Research
|
|
39
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
40
|
+
Classifier: Operating System :: OS Independent
|
|
41
|
+
Classifier: Programming Language :: Python :: 3
|
|
42
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
43
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
44
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
45
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
46
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
47
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
48
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
49
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
50
|
+
Requires-Python: >=3.8
|
|
51
|
+
Description-Content-Type: text/markdown
|
|
52
|
+
License-File: LICENSE
|
|
53
|
+
Provides-Extra: core
|
|
54
|
+
Requires-Dist: abstractcore[all]>=2.4.0; extra == "core"
|
|
55
|
+
Provides-Extra: memory
|
|
56
|
+
Requires-Dist: abstractmemory>=0.1.0; extra == "memory"
|
|
57
|
+
Provides-Extra: agent
|
|
58
|
+
Requires-Dist: abstractagent>=0.1.0; extra == "agent"
|
|
59
|
+
Provides-Extra: swarm
|
|
60
|
+
Requires-Dist: abstractswarm>=0.1.0; extra == "swarm"
|
|
61
|
+
Provides-Extra: available
|
|
62
|
+
Requires-Dist: abstractcore[all]>=2.4.0; extra == "available"
|
|
63
|
+
Provides-Extra: all
|
|
64
|
+
Requires-Dist: abstractcore[all]>=2.4.0; extra == "all"
|
|
65
|
+
Provides-Extra: dev
|
|
66
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
67
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
68
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
69
|
+
Requires-Dist: isort>=5.12.0; extra == "dev"
|
|
70
|
+
Requires-Dist: flake8>=6.0.0; extra == "dev"
|
|
71
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
72
|
+
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
73
|
+
Provides-Extra: docs
|
|
74
|
+
Requires-Dist: mkdocs>=1.5.0; extra == "docs"
|
|
75
|
+
Requires-Dist: mkdocs-material>=9.0.0; extra == "docs"
|
|
76
|
+
Requires-Dist: mkdocstrings[python]>=0.20.0; extra == "docs"
|
|
77
|
+
Dynamic: license-file
|
|
78
|
+
|
|
79
|
+
# AbstractFramework
|
|
80
|
+
|
|
81
|
+
**A unified ecosystem for AI-powered applications and intelligent systems.**
|
|
82
|
+
|
|
83
|
+
AbstractFramework is an umbrella project that brings together a comprehensive suite of tools and libraries for building sophisticated AI applications. Each component is designed to work seamlessly together while maintaining independence and modularity.
|
|
84
|
+
|
|
85
|
+
## 🏗️ Framework Components
|
|
86
|
+
|
|
87
|
+
### 📚 [AbstractCore](https://github.com/lpalbou/AbstractCore) ✅ **Available**
|
|
88
|
+
*Unified Python library for interaction with multiple Large Language Model (LLM) providers.*
|
|
89
|
+
|
|
90
|
+
**Write once, run everywhere.**
|
|
91
|
+
|
|
92
|
+
- **Provider Agnostic**: Works with OpenAI, Anthropic, Ollama, and more
|
|
93
|
+
- **Tool Calling**: Universal function calling across providers
|
|
94
|
+
- **Structured Output**: Type-safe Pydantic integration
|
|
95
|
+
- **Embeddings & RAG**: Built-in vector embeddings for semantic search
|
|
96
|
+
- **Session Management**: Persistent conversations and analytics
|
|
97
|
+
- **Server Mode**: Optional OpenAI-compatible API server
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
from abstractcore import create_llm
|
|
101
|
+
|
|
102
|
+
# Works with any provider
|
|
103
|
+
llm = create_llm("anthropic", model="claude-3-5-haiku-latest")
|
|
104
|
+
response = llm.generate("What is the capital of France?")
|
|
105
|
+
print(response.content)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 🧠 AbstractMemory 🚧 **Coming Soon**
|
|
109
|
+
*Advanced memory systems for AI agents and applications.*
|
|
110
|
+
|
|
111
|
+
- **Persistent Memory**: Long-term storage and retrieval
|
|
112
|
+
- **Contextual Memory**: Semantic understanding and associations
|
|
113
|
+
- **Memory Hierarchies**: Short-term, working, and long-term memory
|
|
114
|
+
- **Memory Compression**: Efficient storage of large contexts
|
|
115
|
+
- **Cross-Session Continuity**: Maintain context across interactions
|
|
116
|
+
|
|
117
|
+
### 🤖 AbstractAgent 🚧 **Coming Soon**
|
|
118
|
+
*Intelligent agent framework with reasoning and tool use capabilities.*
|
|
119
|
+
|
|
120
|
+
- **Autonomous Reasoning**: Multi-step problem solving
|
|
121
|
+
- **Tool Integration**: Seamless integration with external tools
|
|
122
|
+
- **Goal-Oriented Behavior**: Task planning and execution
|
|
123
|
+
- **Learning Capabilities**: Adaptive behavior from experience
|
|
124
|
+
- **Safety Mechanisms**: Built-in guardrails and monitoring
|
|
125
|
+
|
|
126
|
+
### 🐝 AbstractSwarm 🚧 **Coming Soon**
|
|
127
|
+
*Multi-agent coordination and swarm intelligence systems.*
|
|
128
|
+
|
|
129
|
+
- **Agent Orchestration**: Coordinate multiple specialized agents
|
|
130
|
+
- **Distributed Processing**: Scale across multiple nodes
|
|
131
|
+
- **Emergent Behavior**: Complex behaviors from simple interactions
|
|
132
|
+
- **Communication Protocols**: Inter-agent messaging and coordination
|
|
133
|
+
- **Collective Intelligence**: Leverage swarm problem-solving
|
|
134
|
+
|
|
135
|
+
## 🚀 Quick Start
|
|
136
|
+
|
|
137
|
+
### Installation
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Install the full framework (when all components are available)
|
|
141
|
+
pip install abstractframework[all]
|
|
142
|
+
|
|
143
|
+
# Or install individual components
|
|
144
|
+
pip install abstractcore[all] # Available now
|
|
145
|
+
pip install abstractmemory # Coming soon
|
|
146
|
+
pip install abstractagent # Coming soon
|
|
147
|
+
pip install abstractswarm # Coming soon
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Basic Usage
|
|
151
|
+
|
|
152
|
+
```python
|
|
153
|
+
import abstractframework as af
|
|
154
|
+
|
|
155
|
+
# Create an intelligent agent with memory and LLM capabilities
|
|
156
|
+
agent = af.create_agent(
|
|
157
|
+
llm_provider="openai",
|
|
158
|
+
model="gpt-4o-mini",
|
|
159
|
+
memory_type="persistent",
|
|
160
|
+
tools=["web_search", "calculator", "file_system"]
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
# Have a conversation with persistent memory
|
|
164
|
+
response = agent.chat("Remember that I prefer Python over JavaScript")
|
|
165
|
+
print(response)
|
|
166
|
+
|
|
167
|
+
# The agent remembers across sessions
|
|
168
|
+
response = agent.chat("What programming language do I prefer?")
|
|
169
|
+
print(response) # "You prefer Python over JavaScript"
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## 🎯 Use Cases
|
|
173
|
+
|
|
174
|
+
### 1. **Intelligent Applications**
|
|
175
|
+
Build AI-powered applications with persistent memory, reasoning capabilities, and multi-provider LLM support.
|
|
176
|
+
|
|
177
|
+
### 2. **Research & Development**
|
|
178
|
+
Experiment with different AI architectures, memory systems, and agent behaviors in a unified framework.
|
|
179
|
+
|
|
180
|
+
### 3. **Enterprise AI Systems**
|
|
181
|
+
Deploy scalable AI solutions with swarm intelligence, distributed processing, and robust memory management.
|
|
182
|
+
|
|
183
|
+
### 4. **Educational Projects**
|
|
184
|
+
Learn AI concepts through hands-on experimentation with agents, memory systems, and LLM interactions.
|
|
185
|
+
|
|
186
|
+
## 🏛️ Architecture Philosophy
|
|
187
|
+
|
|
188
|
+
AbstractFramework follows key design principles:
|
|
189
|
+
|
|
190
|
+
- **🔧 Modularity**: Each component works independently and together
|
|
191
|
+
- **🔄 Interoperability**: Seamless integration between components
|
|
192
|
+
- **📈 Scalability**: From single agents to distributed swarms
|
|
193
|
+
- **🛡️ Robustness**: Production-ready with comprehensive error handling
|
|
194
|
+
- **🎨 Flexibility**: Adapt to diverse use cases and requirements
|
|
195
|
+
- **📚 Simplicity**: Clean APIs that hide complexity without limiting power
|
|
196
|
+
|
|
197
|
+
## 📊 Project Status
|
|
198
|
+
|
|
199
|
+
| Component | Status | Version | Documentation |
|
|
200
|
+
|-----------|--------|---------|---------------|
|
|
201
|
+
| AbstractCore | ✅ **Available** | 2.4.1 | [Complete](https://github.com/lpalbou/AbstractCore) |
|
|
202
|
+
| AbstractMemory | 🚧 **In Development** | - | Coming Soon |
|
|
203
|
+
| AbstractAgent | 🚧 **Planned** | - | Coming Soon |
|
|
204
|
+
| AbstractSwarm | 🚧 **Planned** | - | Coming Soon |
|
|
205
|
+
|
|
206
|
+
## 🤝 Contributing
|
|
207
|
+
|
|
208
|
+
We welcome contributions to any component of the AbstractFramework ecosystem!
|
|
209
|
+
|
|
210
|
+
- **AbstractCore**: [Contributing Guide](https://github.com/lpalbou/AbstractCore/blob/main/CONTRIBUTING.md)
|
|
211
|
+
- **Other Components**: Contributing guides will be available as components are released
|
|
212
|
+
|
|
213
|
+
## 📄 License
|
|
214
|
+
|
|
215
|
+
MIT License - see LICENSE file for details.
|
|
216
|
+
|
|
217
|
+
All components of AbstractFramework are released under the MIT License to ensure maximum compatibility and adoption.
|
|
218
|
+
|
|
219
|
+
## 🔗 Links
|
|
220
|
+
|
|
221
|
+
- **AbstractCore Repository**: https://github.com/lpalbou/AbstractCore
|
|
222
|
+
- **Documentation**: Coming soon
|
|
223
|
+
- **Community Discussions**: Coming soon
|
|
224
|
+
- **Issue Tracker**: Coming soon
|
|
225
|
+
|
|
226
|
+
## 🌟 Vision
|
|
227
|
+
|
|
228
|
+
AbstractFramework aims to democratize AI development by providing:
|
|
229
|
+
|
|
230
|
+
1. **Unified Interfaces**: Consistent APIs across all AI capabilities
|
|
231
|
+
2. **Production Ready**: Enterprise-grade reliability and performance
|
|
232
|
+
3. **Research Friendly**: Easy experimentation and prototyping
|
|
233
|
+
4. **Community Driven**: Open source with active community involvement
|
|
234
|
+
5. **Future Proof**: Designed to evolve with AI advancements
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
**AbstractFramework** - *Building the future of AI applications, one component at a time.*
|
|
239
|
+
|
|
240
|
+
> **Note**: This is currently a placeholder project. AbstractCore is fully functional and available. Other components are in various stages of development. Star this repository to stay updated on releases!
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
CHANGELOG.md
|
|
2
|
+
LICENSE
|
|
3
|
+
MANIFEST.in
|
|
4
|
+
README.md
|
|
5
|
+
__init__.py
|
|
6
|
+
pyproject.toml
|
|
7
|
+
./__init__.py
|
|
8
|
+
abstractframework.egg-info/PKG-INFO
|
|
9
|
+
abstractframework.egg-info/SOURCES.txt
|
|
10
|
+
abstractframework.egg-info/dependency_links.txt
|
|
11
|
+
abstractframework.egg-info/requires.txt
|
|
12
|
+
abstractframework.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
[agent]
|
|
3
|
+
abstractagent>=0.1.0
|
|
4
|
+
|
|
5
|
+
[all]
|
|
6
|
+
abstractcore[all]>=2.4.0
|
|
7
|
+
|
|
8
|
+
[available]
|
|
9
|
+
abstractcore[all]>=2.4.0
|
|
10
|
+
|
|
11
|
+
[core]
|
|
12
|
+
abstractcore[all]>=2.4.0
|
|
13
|
+
|
|
14
|
+
[dev]
|
|
15
|
+
pytest>=7.0.0
|
|
16
|
+
pytest-cov>=4.0.0
|
|
17
|
+
black>=23.0.0
|
|
18
|
+
isort>=5.12.0
|
|
19
|
+
flake8>=6.0.0
|
|
20
|
+
mypy>=1.0.0
|
|
21
|
+
pre-commit>=3.0.0
|
|
22
|
+
|
|
23
|
+
[docs]
|
|
24
|
+
mkdocs>=1.5.0
|
|
25
|
+
mkdocs-material>=9.0.0
|
|
26
|
+
mkdocstrings[python]>=0.20.0
|
|
27
|
+
|
|
28
|
+
[memory]
|
|
29
|
+
abstractmemory>=0.1.0
|
|
30
|
+
|
|
31
|
+
[swarm]
|
|
32
|
+
abstractswarm>=0.1.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
abstractframework
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "abstractframework"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "A unified ecosystem for AI-powered applications and intelligent systems"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = {file = "LICENSE"}
|
|
11
|
+
authors = [
|
|
12
|
+
{name = "Laurent-Philippe Albou", email = "contact@abstractcore.ai"}
|
|
13
|
+
]
|
|
14
|
+
maintainers = [
|
|
15
|
+
{name = "Laurent-Philippe Albou", email = "contact@abstractcore.ai"}
|
|
16
|
+
]
|
|
17
|
+
keywords = [
|
|
18
|
+
"ai", "llm", "agents", "memory", "swarm", "artificial-intelligence",
|
|
19
|
+
"machine-learning", "nlp", "chatbot", "framework", "ecosystem"
|
|
20
|
+
]
|
|
21
|
+
classifiers = [
|
|
22
|
+
"Development Status :: 3 - Alpha",
|
|
23
|
+
"Intended Audience :: Developers",
|
|
24
|
+
"Intended Audience :: Science/Research",
|
|
25
|
+
"License :: OSI Approved :: MIT License",
|
|
26
|
+
"Operating System :: OS Independent",
|
|
27
|
+
"Programming Language :: Python :: 3",
|
|
28
|
+
"Programming Language :: Python :: 3.8",
|
|
29
|
+
"Programming Language :: Python :: 3.9",
|
|
30
|
+
"Programming Language :: Python :: 3.10",
|
|
31
|
+
"Programming Language :: Python :: 3.11",
|
|
32
|
+
"Programming Language :: Python :: 3.12",
|
|
33
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
34
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
35
|
+
"Topic :: System :: Distributed Computing",
|
|
36
|
+
]
|
|
37
|
+
requires-python = ">=3.8"
|
|
38
|
+
dependencies = []
|
|
39
|
+
|
|
40
|
+
[project.optional-dependencies]
|
|
41
|
+
# Individual component dependencies
|
|
42
|
+
core = ["abstractcore[all]>=2.4.0"]
|
|
43
|
+
memory = ["abstractmemory>=0.1.0"] # When available
|
|
44
|
+
agent = ["abstractagent>=0.1.0"] # When available
|
|
45
|
+
swarm = ["abstractswarm>=0.1.0"] # When available
|
|
46
|
+
|
|
47
|
+
# Convenience bundles
|
|
48
|
+
available = ["abstractcore[all]>=2.4.0"] # Currently available components
|
|
49
|
+
all = [
|
|
50
|
+
"abstractcore[all]>=2.4.0",
|
|
51
|
+
# "abstractmemory>=0.1.0", # Uncomment when available
|
|
52
|
+
# "abstractagent>=0.1.0", # Uncomment when available
|
|
53
|
+
# "abstractswarm>=0.1.0", # Uncomment when available
|
|
54
|
+
]
|
|
55
|
+
|
|
56
|
+
# Development dependencies
|
|
57
|
+
dev = [
|
|
58
|
+
"pytest>=7.0.0",
|
|
59
|
+
"pytest-cov>=4.0.0",
|
|
60
|
+
"black>=23.0.0",
|
|
61
|
+
"isort>=5.12.0",
|
|
62
|
+
"flake8>=6.0.0",
|
|
63
|
+
"mypy>=1.0.0",
|
|
64
|
+
"pre-commit>=3.0.0",
|
|
65
|
+
]
|
|
66
|
+
|
|
67
|
+
# Documentation dependencies
|
|
68
|
+
docs = [
|
|
69
|
+
"mkdocs>=1.5.0",
|
|
70
|
+
"mkdocs-material>=9.0.0",
|
|
71
|
+
"mkdocstrings[python]>=0.20.0",
|
|
72
|
+
]
|
|
73
|
+
|
|
74
|
+
[project.urls]
|
|
75
|
+
Homepage = "https://github.com/lpalbou/AbstractFramework"
|
|
76
|
+
Documentation = "https://github.com/lpalbou/AbstractFramework"
|
|
77
|
+
Repository = "https://github.com/lpalbou/AbstractFramework"
|
|
78
|
+
"Bug Tracker" = "https://github.com/lpalbou/AbstractFramework/issues"
|
|
79
|
+
Changelog = "https://github.com/lpalbou/AbstractFramework/blob/main/CHANGELOG.md"
|
|
80
|
+
"AbstractCore" = "https://github.com/lpalbou/AbstractCore"
|
|
81
|
+
|
|
82
|
+
[tool.setuptools]
|
|
83
|
+
packages = ["abstractframework"]
|
|
84
|
+
|
|
85
|
+
[tool.setuptools.package-dir]
|
|
86
|
+
abstractframework = "."
|
|
87
|
+
|
|
88
|
+
[tool.black]
|
|
89
|
+
line-length = 88
|
|
90
|
+
target-version = ['py38', 'py39', 'py310', 'py311', 'py312']
|
|
91
|
+
include = '\.pyi?$'
|
|
92
|
+
extend-exclude = '''
|
|
93
|
+
/(
|
|
94
|
+
# directories
|
|
95
|
+
\.eggs
|
|
96
|
+
| \.git
|
|
97
|
+
| \.hg
|
|
98
|
+
| \.mypy_cache
|
|
99
|
+
| \.tox
|
|
100
|
+
| \.venv
|
|
101
|
+
| build
|
|
102
|
+
| dist
|
|
103
|
+
)/
|
|
104
|
+
'''
|
|
105
|
+
|
|
106
|
+
[tool.isort]
|
|
107
|
+
profile = "black"
|
|
108
|
+
multi_line_output = 3
|
|
109
|
+
line_length = 88
|
|
110
|
+
known_first_party = ["abstractframework"]
|
|
111
|
+
|
|
112
|
+
[tool.mypy]
|
|
113
|
+
python_version = "3.8"
|
|
114
|
+
warn_return_any = true
|
|
115
|
+
warn_unused_configs = true
|
|
116
|
+
disallow_untyped_defs = true
|
|
117
|
+
disallow_incomplete_defs = true
|
|
118
|
+
check_untyped_defs = true
|
|
119
|
+
disallow_untyped_decorators = true
|
|
120
|
+
no_implicit_optional = true
|
|
121
|
+
warn_redundant_casts = true
|
|
122
|
+
warn_unused_ignores = true
|
|
123
|
+
warn_no_return = true
|
|
124
|
+
warn_unreachable = true
|
|
125
|
+
strict_equality = true
|
|
126
|
+
|
|
127
|
+
[tool.pytest.ini_options]
|
|
128
|
+
minversion = "7.0"
|
|
129
|
+
addopts = "-ra -q --strict-markers --strict-config"
|
|
130
|
+
testpaths = ["tests"]
|
|
131
|
+
python_files = ["test_*.py", "*_test.py"]
|
|
132
|
+
python_classes = ["Test*"]
|
|
133
|
+
python_functions = ["test_*"]
|
|
134
|
+
|
|
135
|
+
[tool.coverage.run]
|
|
136
|
+
source = ["abstractframework"]
|
|
137
|
+
omit = [
|
|
138
|
+
"*/tests/*",
|
|
139
|
+
"*/test_*",
|
|
140
|
+
"setup.py",
|
|
141
|
+
]
|
|
142
|
+
|
|
143
|
+
[tool.coverage.report]
|
|
144
|
+
exclude_lines = [
|
|
145
|
+
"pragma: no cover",
|
|
146
|
+
"def __repr__",
|
|
147
|
+
"if self.debug:",
|
|
148
|
+
"if settings.DEBUG",
|
|
149
|
+
"raise AssertionError",
|
|
150
|
+
"raise NotImplementedError",
|
|
151
|
+
"if 0:",
|
|
152
|
+
"if __name__ == .__main__.:",
|
|
153
|
+
"class .*\\bProtocol\\):",
|
|
154
|
+
"@(abc\\.)?abstractmethod",
|
|
155
|
+
]
|