Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
aiFlows implements the abstraction of Flows proposed in "Flows: Building Blocks of Reasoning and Collaborating AI" and greatly simplifies the design and implementation of complex (work)Flows involving humans, AI systems, and tools.
📢 Major update: We’re excited to announce the release of version 1.1.0 of our project! This release introduces significant enhancements to aiFlows, highlighted by the introduction of the Flows engine. This engine empowers concurrent execution and peer-to-peer distributed collaboration, revolutionizing the way you interact with your projects.
We are still polishing some aspects of the developer experience, so share your feedback on Discord!
🤖🌊 aiFlows embodies the Flows abstraction and greatly simplifies the design and implementation of complex (work)Flows involving humans, AI systems, and tools. In collaboration with CoLink, it enables:
The library is compatible with Python 3.10+.
pip install aiflows
git clone git@github.com:epfl-dlab/aiflows.git
cd aiflows
pip install -e .
The framework is centered around Flows and messages. Flows are independent, self-contained, goal-driven computational building blocks that can complete semantically meaningful units of work. To exchange information, Flows communicate via a standardized message-based interface. Messages can be of any type the recipient Flow can process.
The Flows framework exemplified. The first column depicts examples of tools. Notably, in the Flows framework, AI systems correspond to tools. The second column depicts Atomic Flows, effectively minimal wrappers around tools constructed from the example tools. The third column depicts examples of Composite Flows defining structured interaction between Atomic or Composite Flows. The fourth column illustrates a specific Composite competitive coding Flow as those used in the experiments in the paper. The fifth column outlines the structure of a hypothetical Flow, defining a meta-reasoning process that could support autonomous behavior.
The FlowVerse is a repository of Flows (powered by the 🤗 HuggingFace hub) created and shared by our community for everyone to use! With aiFlows, Flows can be readily downloaded, used, extended, or composed into novel, more complex Flows. For instance, sharing a Flow that uses only API-based tools (tools subsume models in the Flows abstraction) is as simple as sharing a config file (e.g., here is the AutoGPT Flow on FlowVerse). For the ones using ChatGPT, you could think of them as completely customizable open-source GPTs(++).
The FlowVerse is continuously growing. To explore the currently available Flows, check out the 🤲│flow-sharing Forum on the Discord server. Additionally, the Tutorials and Detailed Examples in the Getting Started sections cover some of the Flows we provide in more detail (e.g., the ChatAtomicFlow and QA, VisionAtomicFlow and VisualQA, ReAct and ReAct with human feedback, AutoGPT, etc.).
AI is set to revolutionize the way we work. Our mission is to support AI researchers and to allow them to seamlessly share advancements with practitioners. This will establish a feedback loop, guiding progress toward beneficial directions while ensuring that everyone can freely access and benefit from the next-generation AI tools.
To develop the next-generation AI tools, we will need a principled abstraction that supports concurrent execution and peer-to-peer remote collaboration. At the same time, to maximize their benefits, developers and researchers will need to have complete control over their workflows. aiFlows strives to empower you to make each Flow your own! See the contribute section for more information.
Here, you'll see how you can run inference with your first question-answering Flow, and you can trivially change between vastly different question-answering Flows thanks to the modular abstraction and FlowVerse!
In this tutorial, we introduce you to the library's features through a walkthrough of how to build useful Flows of gradually increasing complexity.
We are constantly optimizing our Flow development workflow (pun intended:). In this short guide, we share our best tips so that you don't have to learn the hard way.
Many of the recently proposed prompting and collaboration strategies involving tools, humans, and AI models are, in essence, specific Flows (see the figure below). In the links above, you'll find a detailed walkthrough of how to build some representative workflows.
Check out the examples folder for more examples of how to build and use aiFlows.
As mentioned above, our goal is to make Flows a community-driven project that will benefit researchers and developers alike (see the Why should I use aiFlows? section), and to achieve this goal, we need your help.
You can become a part of the project in a few ways:
We have tried to find a way for anyone to benefit by contributing to the project. The Contribution Guide describes our envisioned workflows in more detail (we would love to hear your feedback on this -- the Discord server already has a channel for it :)).
In a nutshell, this is just the beginning, and we have a long way to go. Stay tuned, and let's work on a great (open-source) AI future together!
If you found this work useful, please cite it as:
@misc{josifoski2023flows,
title={Flows: Building Blocks of Reasoning and Collaborating AI},
author={Martin Josifoski and Lars Klein and Maxime Peyrard and Baldwin Nicolas and Yifei Li and Saibo Geng and Julian Paul Schnitzler and Yuxing Yao and Jiheng Wei and Debjit Paul and Robert West},
year={2023},
eprint={2308.01285},
archivePrefix={arXiv},
primaryClass={cs.AI}
}
FAQs
aiFlows implements the abstraction of Flows proposed in "Flows: Building Blocks of Reasoning and Collaborating AI" and greatly simplifies the design and implementation of complex (work)Flows involving humans, AI systems, and tools.
We found that aiflows demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.