Giter VIP home page Giter VIP logo

agentflow's Introduction

Agentflow: Complex LLM Workflows from Simple JSON

Python lint and test

Agentflow is a powerful yet user-friendly tool to run workflows powered by LLMs. You can:

  • Write workflows in plain English in human-readable JSON files.
  • Use variables for dynamic outputs that change based on user input.
  • Build and execute custom functions to go beyond text generation.

Why Agentflow?

Agentflow fills the gap between chat and autonomous interfaces:

  • Chat (e.g. ChatGPT) can't run workflows because they're conversational.
  • Autonomous (e.g. Auto-GPT) run them unreliably because they have too much freedom.

Agentflow offers a balanced solution: Workflows that LLMs follow step-by-step.

Install and Use

Agentflow is currently in development. To try it:

  1. Sign up for the OpenAI API and get an API key
  2. Clone or download this repository.
  3. Create a .env file from example.env and add your OpenAI API key.
  4. Run pip install -r requirements.txt to install dependencies.

Now you can run flows from the command line, like this:

python -m run --flow=example

Optional Arguments

Use variables to pass variables to your flow

python -m run --flow=example_with_variables --variables 'market=college students' 'price_point=$50'

Use v (verbose) to see task completion in real-time

python -m run --flow=example -v

Create New Flows

Copy example.json or example_with_variables.json or create a flow from scratch in this format:

{
    "system_message": "An optional message that guides the model's behavior.",
    "tasks": [
        {
            "action": "Instruct the LLM here!"
        },
        {
            "action": "Actions can have settings, including function calls and temperature, like so:",
            "settings": {
                "function_call": "save_file",
                "temperature": 0.5
            }
        },
        {
            "action": "..."
        }
    ]
}

Create New Functions

Copy save_file.py and modify it, or follow these instructions (replace "function_name" with your function name):

  1. Create function_name.py in the functions folder.
  2. Create a class within called FunctionName that inherits from BaseFunction.
  3. Add get_definition() and execute() in the class. See descriptions of these in BaseFunction.

That's it! You can now use your function in function_call as shown above. However, you should probably:

  1. Add tests in tests! Then you'll know if workflows are failing because of your function.

License

Agentflow is licensed under the MIT License.

agentflow's People

Contributors

simonmesmith avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.