Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interactive UI for Swarms Framework #727

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

harshalmore31
Copy link

@harshalmore31 harshalmore31 commented Jan 7, 2025

Interactive UI for Swarms Framework: Swarm-Specific Parsing, Agent Management, and LLM Integration with Hugging Face Deployment & Local Deployment

Description:

  • Developed a robust and feature-rich UI for the Swarms framework using Gradio, focused on enhancing usability, modularity, and interactive capabilities. Key additions include:
    • Swarm-Specific Parsing:
      • Implemented parsers for all swarm types, including SequentialWorkflow, ConcurrentWorkflow, AgentRearrange, MixtureOfAgents, SpreadSheetSwarm, and auto.
      • Ensures consistent formatting of output data and detailed feedback for each workflow type.
    • Dynamic Prompt Loading:
      • Integrated functionality to load agent prompts dynamically from a JSON file.
      • Default prompts are used if the file is absent or improperly formatted.
    • Agent Management in UI:
      • Enabled creation of new agent prompts directly via the UI.
      • Supports editing and validation of custom prompts with seamless integration into the workflow configuration.
    • UI Framework Enhancements:
      • Introduced a dedicated UI class for streamlined Gradio component management, improving scalability and readability of the codebase.
      • Added modular components like dropdowns, sliders, and conditional inputs for an intuitive user experience.
    • LLM Integration:
      • Using LiteLLM, integrated the following models and providers:
        • OpenAI
        • Anthropic
        • Cohere
        • Gemini
        • Mistral
        • Groq
        • Perplexity

Key Features:

  • Interactive Swarm Configuration: Supports flexible configuration for workflows, including custom execution flows for AgentRearrange and advanced features like agent flow validation.
  • Agent-Centric Design: Facilitates agent selection, prompt management, and dynamic updates for added flexibility.
  • User Feedback and Debugging: Incorporates detailed logging, error handling, and status displays for enhanced user experience.

Issue:

  • Not linked to any specific issue. This PR focuses on establishing a functional and scalable UI layer for the Swarms framework.

Dependencies:

  • Gradio: Core framework for building the modular UI.
  • dotenv: Securely manages API keys and configurations.
  • litellm: Enables seamless integration with multiple language model providers and their respective models.

Deployment:

Tag Maintainer:

@kyegomez

Twitter Handle:

@harshalmore31


Additional Changes:

  • spreadsheet_swarm.py is modified accordingly for the working of UI


📚 Documentation preview 📚: https://swarms--727.org.readthedocs.build/en/727/

@evelynmitchell
Copy link
Contributor

Thanks Harshal!

In the HuggingFace space, the contrast in the UI is very low (grey on grey).

There is also no visual indicator that 'Select Provider' is a pulldow menu, and the text in it is even lighter than in the text box.

Screenshot from 2025-01-07 12-03-56

Can you increase the contrast a bit?

As a feature improvement, tags to filter the Agents on would be helpful (role, business department, frequently used with, last updated, ...) A long pulldown menu gets unusable quickly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants