Giter Site home page Giter Site logo

hughlv / flowgen Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tiwater/flowgen

0.0 0.0 0.0 22.53 MB

AutoGen Visualized - Visual Tools for Multi-Agent Development.

Home Page: http://flowgen.app/

License: Other

Shell 0.12% JavaScript 0.86% Python 10.27% TypeScript 81.83% CSS 1.62% Dockerfile 1.58% Jinja 3.71%

flowgen's Introduction

Important

This project is still under heavy development and functions might not work well yet. Please don't hestitate to open new issues.

FlowGen - AutoGen Visualized

License GitHub star chart

flow-1

๐Ÿค– What is FlowGen

FlowGen is a tool built for AutoGen, a great agent framework from Microsoft Research.

AutoGen streamlines the process of creating multi-agent applications with its clear and user-friendly approach. FlowGen takes this accessibility a step further by offering visual tools that simplify the building and management of agent workflows with AutoGen.

Visual Flow Editing

flow-0

flow-1

Chat

chat-0

chat-1

Gallery

gallery-0

๐Ÿ’ก Quickstart

To quickly explore what FlowGen has to offer, simply visit it https://flowgen.app.

Each new commit to the main branch triggers an automatic deployment on Railway.app, ensuring you experience the latest version of the service.

Warning

Changes to Pocketbase project will cause the rebuild and redeployment of all instances, which will swipe all the data.

Please do not use it for production purpose, and make sure you export flows in time.

๐Ÿณ Run on Local (with Docker)

The project contains Frontend (Built with Next.js) and Backend service (Built with Flask in Python), and have been fully dockerized.

The easiest way to run on local is using docker-compose:

docker-compose up -d

You can also build and run the frontend and backend services separately with docker:

docker build -t flowgen-svc ./backend
docker run -d -p 5004:5004 flowgen-svc

docker build -t flowgen-ui ./frontend
docker run -d -p 2855:2855 flowgen-ui

docker build -t flowgen-db ./pocketbase
docker run -d -p 7676:7676 flowgen-db

(The default port number 2855 is the address of our first office.)

๐Ÿš€ Deployment

Deploy on Railway

Railway.app supports the deployment of applications in Dockers. By clicking the "Deploy on Railway" button, you'll streamline the setup and deployment of your application on Railway platform:

  1. Click the "Deploy on Railway" button to start the process on Railway.app.
  2. Log in to Railway and set the following environment variables:
    • PORT: Please set for each services as 2855, 5004, 7676 respectively.
  3. Confirm the settings and deploy.
  4. After deployment, visit the provided URL to access your deployed application.

๐Ÿ› ๏ธ Run on Local (Without Docker)

If you're interested in contributing to the development of this project or wish to run it from the source code, you have the option to run the frontend and backend services independently. Here's how you can do that:

  1. Frontend Service:

    • Navigate to the frontend service directory.
    • Rename .env.sample to .env.local and set the value of variables correctly.
    • Install the necessary dependencies using the appropriate package manager command (e.g., pnpm install or yarn).
    • Run the frontend service using the start-up script provided (e.g., pnpm dev or yarn dev).
  2. Backend Service:

    • Switch to the backend service directory cd backend.
    • Create virtual environment: python3 -m venv venv.
    • Activate virtual environment: source venv/bin/activate.
    • Install all required dependencies: pip install -r requirements.txt.
    • Launch the backend service using command uvicorn app.main:app --reload --port 5004.

REPLICATE_API_TOKEN is needed for LLaVa agent. If you need to use this agent, make sure to include this token in environment variables, such as the Environment Variables on Railway.app.

  1. PocketBase:

    • Switch to the PocketBase directory cd pocketbase.
    • Build the container: docker build -t flowgen-db .
    • Run the container: docker run -it --rm -p 7676:7676 flowgen-db

Once you've started both the frontend and backend services by following the steps previously outlined, you can access the application by opening your web browser and navigating to:

If your services are started successfully and running on the expected ports, you should see the user interface or receive responses from the backend via this URL.

Migration of Official Examples

Please check the original notebooks with the same name in AutoGen.

๐Ÿ”ฒ Planned โœ… Completed ๐Ÿ†˜ With Issues โญ• Out of Scope

Example Status Comments
auto_feedback_from_code_execution โœ… Feedback from Code Execution
auto_build ๐Ÿ”ฒ
chess ๐Ÿ”ฒ
compression ๐Ÿ”ฒ
dalle_and_gpt4v ๐Ÿ”ฒ This requires the import of custom Agent class
function_call_async โœ…
function_call โœ…
graph_modelling_language โญ• This is out of project scope. Open an issue if necessary
group_chat_RAG โœ… This notebook does not work
groupchat_research โœ…
groupchat_vis โœ…
groupchat โœ…
hierarchy_flow_using_select_speaker ๐Ÿ”ฒ
human_feedback ๐Ÿ”ฒ
inception_function ๐Ÿ”ฒ
langchain โญ• No plan to support
lmm_gpt-4v โœ…
lmm_llava โœ… Depends on Replicate
MathChat ๐Ÿ”ฒ
oai_assistant_function_call โœ…
oai_assistant_groupchat ๐Ÿ†˜ Very slow and not work well, sometimes not returning.
oai_assistant_retrieval ๐Ÿ”ฒ
oai_assistant_twoagents_basic โœ…
oai_code_interpreter โœ…
planning ๐Ÿ”ฒ
qdrant_RetrieveChat ๐Ÿ”ฒ
RetrieveChat ๐Ÿ”ฒ
stream ๐Ÿ”ฒ
teachability ๐Ÿ”ฒ
teaching ๐Ÿ”ฒ
two_users โœ… The response will be very long and should set a large max_tokens.
video_transcript_translate_with_whisper โœ… brew install ffmpeg and export IMAGEIO_FFMPEG_EXE
web_info โœ…
cq_math โญ• This example is quite irrelevant to autogen, why not just use OpenAI API?
Async_human_input ๐Ÿ”ฒ
oai_chatgpt_gpt4 โญ• Fine-tuning, out of project scope
oai_client_cost โญ• This is a utility tool, not related to flow.
oai_completion โญ• Fine-tuning, out of project scope
oai_openai_utils ๐Ÿ”ฒ

๐Ÿ‘จโ€๐Ÿ’ป Contributing

This project welcomes contributions and suggestions. Please read our Contributing Guide first.

If you are new to GitHub here is a detailed help source on getting involved with development on GitHub.

Contributors Wall

๐Ÿ“ License

The project is licensed under Apache 2.0 with additional terms and conditions.

flowgen's People

Contributors

hughlv avatar dependabot[bot] 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.