genpilot


Namegenpilot JSON
Version 0.0.9 PyPI version JSON
download
home_pagehttps://github.com/yanmxa/genpilot
SummaryGenPilot streamlines the prototype for single/multi-agent systems powered by Generative AI through an intuitive, user-friendly interface.
upload_time2025-02-27 05:27:32
maintainerNone
docs_urlNone
authormyan
requires_python<4.0,>=3.10
licenseMIT
keywords agent mcp chat ai ui
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <img src="./asset/zen-agent.png" width="260", height="240" />
</p>

---

# GenPilot

**GenPilot** streamlines the creation and management of multi-agent systems powered by Generative AI through an intuitive, user-friendly interface. It allows both developers and end-users to efficiently transform concepts and prototypes into fully realized solutions.

## Installation

Require Python **3.10** or later.

```bash
pip install genpilot
```

## Usage

The client is initialized using `litellm`. Please refer to [the guide for details on different providers](https://docs.litellm.ai/docs/providers).

```python
import genpilot as gp
import asyncio

# 1. User Interface: Also supports Streamlit UI, allowing all agents to share the same chat interface.
terminal = gp.TerminalChat(model_options={"temperature": 0.2, "stream": True})

# 2. Define a Tool to search and summarize information
def search_and_summarize(query):
    """Search for information on the internet and return a summary."""
    return f"Here's the summary for '{query}': [Summarized info]."

# 3. Define an Agent for summarizing search results
info_explorer = gp.Agent(
    name="Information Explorer",
    model_name="groq:llama-3.3-70b-versatile",
    chat=terminal,
    tools=[search_and_summarize],
    system=(
        "Your role is to search the internet and summarize relevant information for a given query. "
        "Use the search tool to find and condense information for the user, ensuring clarity and relevance."
    ),
)

# 4. Run the Agent with a query
response = asyncio.run(info_explorer("What's the latest news about AI advancements?"))
print(response)
```

## Why GenPilot?

- **User-Friendly Interface**: GenPilot offers an intuitive interface for prototyping and quick implementation, whether through a web UI(streamlit, chainlit) or terminal. Get started quickly and seamlessly with minimal effort.

- **MCP Integration**: Leverage the servers provided by MCP to enhance the ecosystem and empower agents with advanced capabilities.

- **Enhanced Autonomy**: GenPilot can internally register and invoke tools, reducing reliance on external agents and minimizing unnecessary interactions.

- **Governed Actions**

  ![governed action](./asset/action.png)

  GenPilot's actions are governed by three permission levels:

  - **`auto`**: Permission requested only for system/environment-modifying actions.
  - **`always`**: Permission requested for all actions.  
  - **`none`**: No permission requests. 

- **Multi-Agent System**: Seamlessly scale from single-agent tasks to complex multi-agent workflows, inspired by [Routines and Handoffs](https://cookbook.openai.com/examples/orchestrating_agents#executing-routines).

- **Memory** [PROCESSING]: GenPilot enhances accuracy with customizable memory:

  1. `ChatBufferMemory` A short-term memory solution designed to retrieve the most recent message along with the current session context.

  2. `ChatVectorMemory` A long-term memory implementation based on LlamaIndex [vector memory](https://docs.llamaindex.ai/en/stable/examples/agent/memory/vector_memory/).

  > [MemGPT: Towards LLMs as Operating Systems](https://arxiv.org/pdf/2310.08560)
  > [CLIN: A CONTINUALLY LEARNING LANGUAGE AGENT FOR RAPID TASK ADAPTATION AND GENERALIZATION](https://arxiv.org/pdf/2310.10134)

  3. `ChatPgMemory` ...

- **RAG Support**: GenPilot integrates a retrieval agent that allows local resource or knowledge integration into the multi-agent system. The default implementation leverages LlamaIndex's [ChatEngine](https://docs.llamaindex.ai/en/stable/examples/chat_engine/chat_engine_best/).

- **Typed Prompt and Auto Optimizer**

  - https://github.com/stanfordnlp/dspy

  - https://github.com/zou-group/textgrad

### Samples

<details>
<summary>This demo provides advice on what to wear when traveling to a city</summary>

[![Watch the demo](https://asciinema.org/a/686709.svg)](https://asciinema.org/a/686709)

</details>

<details>

<summary>This demo uses multi-agent troubleshooting for issues in RedHat ACM</summary>

#### Cluster Unknown

[![Watch the demo](https://asciinema.org/a/687993.svg)](https://asciinema.org/a/687993)

#### Addons Aren't Created

[![Watch the demo](https://asciinema.org/a/689439.svg)](https://asciinema.org/a/689439)

</details>
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/yanmxa/genpilot",
    "name": "genpilot",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "agent, MCP, chat, ai, UI",
    "author": "myan",
    "author_email": "myan@redhat.com",
    "download_url": "https://files.pythonhosted.org/packages/ab/c0/4fd6c30e161e8aecbf2be1bd5c3cefbdf086c188931290aee38d5b45e8b4/genpilot-0.0.9.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n  <img src=\"./asset/zen-agent.png\" width=\"260\", height=\"240\" />\n</p>\n\n---\n\n# GenPilot\n\n**GenPilot** streamlines the creation and management of multi-agent systems powered by Generative AI through an intuitive, user-friendly interface. It allows both developers and end-users to efficiently transform concepts and prototypes into fully realized solutions.\n\n## Installation\n\nRequire Python **3.10** or later.\n\n```bash\npip install genpilot\n```\n\n## Usage\n\nThe client is initialized using `litellm`. Please refer to [the guide for details on different providers](https://docs.litellm.ai/docs/providers).\n\n```python\nimport genpilot as gp\nimport asyncio\n\n# 1. User Interface: Also supports Streamlit UI, allowing all agents to share the same chat interface.\nterminal = gp.TerminalChat(model_options={\"temperature\": 0.2, \"stream\": True})\n\n# 2. Define a Tool to search and summarize information\ndef search_and_summarize(query):\n    \"\"\"Search for information on the internet and return a summary.\"\"\"\n    return f\"Here's the summary for '{query}': [Summarized info].\"\n\n# 3. Define an Agent for summarizing search results\ninfo_explorer = gp.Agent(\n    name=\"Information Explorer\",\n    model_name=\"groq:llama-3.3-70b-versatile\",\n    chat=terminal,\n    tools=[search_and_summarize],\n    system=(\n        \"Your role is to search the internet and summarize relevant information for a given query. \"\n        \"Use the search tool to find and condense information for the user, ensuring clarity and relevance.\"\n    ),\n)\n\n# 4. Run the Agent with a query\nresponse = asyncio.run(info_explorer(\"What's the latest news about AI advancements?\"))\nprint(response)\n```\n\n## Why GenPilot?\n\n- **User-Friendly Interface**: GenPilot offers an intuitive interface for prototyping and quick implementation, whether through a web UI(streamlit, chainlit) or terminal. Get started quickly and seamlessly with minimal effort.\n\n- **MCP Integration**: Leverage the servers provided by MCP to enhance the ecosystem and empower agents with advanced capabilities.\n\n- **Enhanced Autonomy**: GenPilot can internally register and invoke tools, reducing reliance on external agents and minimizing unnecessary interactions.\n\n- **Governed Actions**\n\n  ![governed action](./asset/action.png)\n\n  GenPilot's actions are governed by three permission levels:\n\n  - **`auto`**: Permission requested only for system/environment-modifying actions.\n  - **`always`**: Permission requested for all actions.  \n  - **`none`**: No permission requests. \n\n- **Multi-Agent System**: Seamlessly scale from single-agent tasks to complex multi-agent workflows, inspired by [Routines and Handoffs](https://cookbook.openai.com/examples/orchestrating_agents#executing-routines).\n\n- **Memory** [PROCESSING]: GenPilot enhances accuracy with customizable memory:\n\n  1. `ChatBufferMemory` A short-term memory solution designed to retrieve the most recent message along with the current session context.\n\n  2. `ChatVectorMemory` A long-term memory implementation based on LlamaIndex [vector memory](https://docs.llamaindex.ai/en/stable/examples/agent/memory/vector_memory/).\n\n  > [MemGPT: Towards LLMs as Operating Systems](https://arxiv.org/pdf/2310.08560)\n  > [CLIN: A CONTINUALLY LEARNING LANGUAGE AGENT FOR RAPID TASK ADAPTATION AND GENERALIZATION](https://arxiv.org/pdf/2310.10134)\n\n  3. `ChatPgMemory` ...\n\n- **RAG Support**: GenPilot integrates a retrieval agent that allows local resource or knowledge integration into the multi-agent system. The default implementation leverages LlamaIndex's [ChatEngine](https://docs.llamaindex.ai/en/stable/examples/chat_engine/chat_engine_best/).\n\n- **Typed Prompt and Auto Optimizer**\n\n  - https://github.com/stanfordnlp/dspy\n\n  - https://github.com/zou-group/textgrad\n\n### Samples\n\n<details>\n<summary>This demo provides advice on what to wear when traveling to a city</summary>\n\n[![Watch the demo](https://asciinema.org/a/686709.svg)](https://asciinema.org/a/686709)\n\n</details>\n\n<details>\n\n<summary>This demo uses multi-agent troubleshooting for issues in RedHat ACM</summary>\n\n#### Cluster Unknown\n\n[![Watch the demo](https://asciinema.org/a/687993.svg)](https://asciinema.org/a/687993)\n\n#### Addons Aren't Created\n\n[![Watch the demo](https://asciinema.org/a/689439.svg)](https://asciinema.org/a/689439)\n\n</details>",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "GenPilot streamlines the prototype for single/multi-agent systems powered by Generative AI through an intuitive, user-friendly interface.",
    "version": "0.0.9",
    "project_urls": {
        "Homepage": "https://github.com/yanmxa/genpilot",
        "Repository": "https://github.com/yanmxa/genpilot"
    },
    "split_keywords": [
        "agent",
        " mcp",
        " chat",
        " ai",
        " ui"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7cb9a2422f7dded95624a866e428eb7cbb5376e8409f0cf3b9fd856174d36228",
                "md5": "af5a1d3257b135dbcf6bba00bb6852b5",
                "sha256": "a5483f5325895dd54073ac0445888a1b4a62cb65bea57baa1c4bbb46904830af"
            },
            "downloads": -1,
            "filename": "genpilot-0.0.9-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "af5a1d3257b135dbcf6bba00bb6852b5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 21147,
            "upload_time": "2025-02-27T05:27:30",
            "upload_time_iso_8601": "2025-02-27T05:27:30.510537Z",
            "url": "https://files.pythonhosted.org/packages/7c/b9/a2422f7dded95624a866e428eb7cbb5376e8409f0cf3b9fd856174d36228/genpilot-0.0.9-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "abc04fd6c30e161e8aecbf2be1bd5c3cefbdf086c188931290aee38d5b45e8b4",
                "md5": "2edc9b05909871ed1f5e48053efbab5b",
                "sha256": "50ea164376fb485d0881b2a9a09fa8d2027e41b993d4e41573b629361df4bc4f"
            },
            "downloads": -1,
            "filename": "genpilot-0.0.9.tar.gz",
            "has_sig": false,
            "md5_digest": "2edc9b05909871ed1f5e48053efbab5b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 15730,
            "upload_time": "2025-02-27T05:27:32",
            "upload_time_iso_8601": "2025-02-27T05:27:32.929220Z",
            "url": "https://files.pythonhosted.org/packages/ab/c0/4fd6c30e161e8aecbf2be1bd5c3cefbdf086c188931290aee38d5b45e8b4/genpilot-0.0.9.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-27 05:27:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yanmxa",
    "github_project": "genpilot",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "genpilot"
}
        
Elapsed time: 1.73824s