From 00d596a2d18064b754276aa8f95a0b98b9c100c2 Mon Sep 17 00:00:00 2001 From: Leon van Bokhorst Date: Sun, 27 Oct 2024 08:35:01 +0100 Subject: [PATCH 1/3] This README provides a comprehensive overview of the Narrative Field System project, its features, technical stack, and instructions for getting started. --- README.md | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..8241c2c --- /dev/null +++ b/README.md @@ -0,0 +1,99 @@ +# Friction Flow + +## Project Overview + +Friction Flow is an advanced Python-based research project aimed at developing a framework for analyzing and simulating complex human behavior and group dynamics based on Narrative Field Dynamics. This project leverages AI and machine learning techniques, with a focus on integrating Large Language Models (LLMs) for natural language-based decision making and interactions. + +## Key Features + +1. **Multi-Agent Systems**: Simulates emergent behavior in complex social systems. +2. **Psychological Modeling**: Incorporates advanced models of individual and group psychology. +3. **LLM Integration**: Utilizes state-of-the-art language models for natural language processing and generation. +4. **Distributed Computing**: Employs event-driven architectures for scalable simulations. +5. **Machine Learning Components**: Includes neural networks and other ML techniques for behavior prediction and analysis. + +## Technical Stack + +- **Python**: Core programming language (version 3.12.6 recommended) +- **PyTorch**: For neural network components and tensor operations +- **Transformers**: For integration with pre-trained language models +- **Ray**: For distributed computing +- **FastAPI**: For service endpoints +- **Redis**: For state management +- **Ollama**: For local LLM integration +- **ChromaDB**: For vector storage and similarity search + +## Getting Started + +1. Clone the repository: + + ```bash + git clone https://github.com/your-organization/friction-flow.git + cd friction-flow + ``` + +2. Install dependencies: + + ```bash + pip install -r requirements.txt + ``` + +3. Set up the environment: + - Ensure you have the necessary language models and embeddings set up as specified in `src/config.py`. + +4. Run the simulation: + + ```bash + python src/nfs_simple_lab_scenario.py + ``` + +## Project Structure + +- `src/`: Contains the core source code + - `nfs_story_waves.py`: Simulation components for narrative field dynamics + - `nfs_simple_lab_scenario.py`: Example scenario implementation + - `language_models.py`: Interfaces for various language models + - `config.py`: Configuration settings +- `tests/`: Unit and integration tests +- `pocs/`: Proof of concept implementations +- `.github/`: Issue templates and CI/CD workflows + +## Development Guidelines + +- Follow PEP 8 style guide and use Black for code formatting. +- Implement type hints as per PEP 484. +- Maintain a minimum of 80% test coverage. +- Adhere to SOLID principles and maintain clear separation of concerns. +- Use meaningful commit messages following the conventional commits format. + +## Testing + +Run the test suite using pytest: + +```bash +pytest tests/ +``` + +## CI/CD + +The project uses GitHub Actions for continuous integration. The workflow includes: +- Setting up Python 3.12.6 +- Installing dependencies +- Running tests + +## Contributing + +We welcome contributions to the Friction Flow project. Please read our contributing guidelines before submitting pull requests. Key points: + +- No commented-out code in the main branch +- No TODOs in the main branch +- Clear variable and function naming +- Adherence to DRY and SOLID principles + +## License + +This project is licensed under the Apache License 2.0. See the LICENSE file for details. + +## Acknowledgments + +This project builds upon research in cognitive science, complex systems theory, social network analysis, and organizational behavior. We acknowledge the contributions of the open-source community and the developers of the libraries and tools used in this project. From 83a5e85d7e421f0950fcff73f7732e525930fc21 Mon Sep 17 00:00:00 2001 From: Leon van Bokhorst Date: Sun, 27 Oct 2024 08:37:24 +0100 Subject: [PATCH 2/3] Update README.md Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8241c2c..4993948 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Friction Flow is an advanced Python-based research project aimed at developing a ## Technical Stack -- **Python**: Core programming language (version 3.12.6 recommended) + **Python**: Core programming language (version >= 3.12 recommended) - **PyTorch**: For neural network components and tensor operations - **Transformers**: For integration with pre-trained language models - **Ray**: For distributed computing From e0aa210f90b501cee3e1c51e1e5f0557f3fe6a72 Mon Sep 17 00:00:00 2001 From: Leon van Bokhorst Date: Sun, 27 Oct 2024 08:40:46 +0100 Subject: [PATCH 3/3] This README provides a comprehensive overview of the Friction Flow project, its features, technical stack, and instructions for getting started --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4993948..14b15f6 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Friction Flow is an advanced Python-based research project aimed at developing a 1. Clone the repository: ```bash - git clone https://github.com/your-organization/friction-flow.git + git clone https://github.com/leonvanbokhorst/friction-flow cd friction-flow ```