composio-llamaindex


Namecomposio-llamaindex JSON
Version 0.5.34 PyPI version JSON
download
home_pagehttps://github.com/ComposioHQ/composio
SummaryUse Composio to get an array of tools with your LlamaIndex agent.
upload_time2024-10-17 15:51:23
maintainerNone
docs_urlNone
authorSawradip
requires_python<4,>=3.9
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## 🦙 Using Composio With LlamaIndex

Integrate Composio with llamaindex agents to allow them to interact seamlessly with external apps & data sources, enhancing their functionality and reach.

### Goal

- **Star a repository on GitHub** using natural language commands through a llamaindex Agent.

### Installation and Setup

Ensure you have the necessary packages installed and connect your GitHub account to allow your agents to utilize GitHub functionalities.

```bash
# Install Composio llamaindex package
pip install composio-llamaindex

# Connect your GitHub account
composio-cli add github

# View available applications you can connect with
composio-cli show-apps
```

### Usage Steps

#### 1. Import Base Packages

Prepare your environment by initializing necessary imports from llamaindex and setting up your agent.

```python
from llama_index.llms.openai import OpenAI
from llama_index.core.llms import ChatMessage
from llama_index.core.agent import FunctionCallingAgentWorker

import dotenv
from llama_index.core.tools import FunctionTool

# Load environment variables from .env
dotenv.load_dotenv()

llm = OpenAI(model="gpt-4-turbo")
```

#### 2. Fetch GitHub llamaindex Tools via Composio

Access GitHub tools provided by Composio for llamaindex.

```python
from composio_llamaindex import App, Action, ComposioToolSet

# Get All the tools
composio_toolset = ComposioToolSet()
tools = composio_toolset.get_actions(
    actions=[Action.GITHUB_STAR_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER]
)
print(tools)
```

#### 3. Prepare the Agent

Configure the agent to perform tasks such as starring a repository on GitHub.

```python

prefix_messages = [
    ChatMessage(
        role="system",
        content=(
            "You are now a integration agent, and what  ever you are requested, you will try to execute utilizing your toools."
        ),
    )
]

agent = FunctionCallingAgentWorker(
    tools=tools,
    llm=llm,
    prefix_messages=prefix_messages,
    max_function_calls=10,
    allow_parallel_tool_calls=False,
    verbose=True,
).as_agent()
```

#### 4. Check Response

Validate the execution and response from the agent to ensure the task was completed successfully.

```bash
response = agent.chat("Hello! I would like to star a repo composiohq/composio on GitHub")
print("Response:", response)
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ComposioHQ/composio",
    "name": "composio-llamaindex",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "Sawradip",
    "author_email": "sawradip@composio.dev",
    "download_url": "https://files.pythonhosted.org/packages/82/c5/bffa23425d2fd06743fa1c8785ed9bda42fdbed127ae76ec51f2e777b16c/composio_llamaindex-0.5.34.tar.gz",
    "platform": null,
    "description": "## \ud83e\udd99 Using Composio With LlamaIndex\n\nIntegrate Composio with llamaindex agents to allow them to interact seamlessly with external apps & data sources, enhancing their functionality and reach.\n\n### Goal\n\n- **Star a repository on GitHub** using natural language commands through a llamaindex Agent.\n\n### Installation and Setup\n\nEnsure you have the necessary packages installed and connect your GitHub account to allow your agents to utilize GitHub functionalities.\n\n```bash\n# Install Composio llamaindex package\npip install composio-llamaindex\n\n# Connect your GitHub account\ncomposio-cli add github\n\n# View available applications you can connect with\ncomposio-cli show-apps\n```\n\n### Usage Steps\n\n#### 1. Import Base Packages\n\nPrepare your environment by initializing necessary imports from llamaindex and setting up your agent.\n\n```python\nfrom llama_index.llms.openai import OpenAI\nfrom llama_index.core.llms import ChatMessage\nfrom llama_index.core.agent import FunctionCallingAgentWorker\n\nimport dotenv\nfrom llama_index.core.tools import FunctionTool\n\n# Load environment variables from .env\ndotenv.load_dotenv()\n\nllm = OpenAI(model=\"gpt-4-turbo\")\n```\n\n#### 2. Fetch GitHub llamaindex Tools via Composio\n\nAccess GitHub tools provided by Composio for llamaindex.\n\n```python\nfrom composio_llamaindex import App, Action, ComposioToolSet\n\n# Get All the tools\ncomposio_toolset = ComposioToolSet()\ntools = composio_toolset.get_actions(\n    actions=[Action.GITHUB_STAR_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER]\n)\nprint(tools)\n```\n\n#### 3. Prepare the Agent\n\nConfigure the agent to perform tasks such as starring a repository on GitHub.\n\n```python\n\nprefix_messages = [\n    ChatMessage(\n        role=\"system\",\n        content=(\n            \"You are now a integration agent, and what  ever you are requested, you will try to execute utilizing your toools.\"\n        ),\n    )\n]\n\nagent = FunctionCallingAgentWorker(\n    tools=tools,\n    llm=llm,\n    prefix_messages=prefix_messages,\n    max_function_calls=10,\n    allow_parallel_tool_calls=False,\n    verbose=True,\n).as_agent()\n```\n\n#### 4. Check Response\n\nValidate the execution and response from the agent to ensure the task was completed successfully.\n\n```bash\nresponse = agent.chat(\"Hello! I would like to star a repo composiohq/composio on GitHub\")\nprint(\"Response:\", response)\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Use Composio to get an array of tools with your LlamaIndex agent.",
    "version": "0.5.34",
    "project_urls": {
        "Homepage": "https://github.com/ComposioHQ/composio"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5a465d8664c2904cd1c5f12d241dade392a2b62dffe5e1b497fa9ab7e3d1b64c",
                "md5": "8cce2c3deb79f95cf6596f1d0773e114",
                "sha256": "f835a45064985a8090d3e1309b05062b2380840245bb966992774ca5f672c4bf"
            },
            "downloads": -1,
            "filename": "composio_llamaindex-0.5.34-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8cce2c3deb79f95cf6596f1d0773e114",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.9",
            "size": 4341,
            "upload_time": "2024-10-17T15:51:21",
            "upload_time_iso_8601": "2024-10-17T15:51:21.743500Z",
            "url": "https://files.pythonhosted.org/packages/5a/46/5d8664c2904cd1c5f12d241dade392a2b62dffe5e1b497fa9ab7e3d1b64c/composio_llamaindex-0.5.34-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "82c5bffa23425d2fd06743fa1c8785ed9bda42fdbed127ae76ec51f2e777b16c",
                "md5": "acc79a37fb9a80a2dc68d21007ca7f29",
                "sha256": "d16ec2b32095403bf15a936f03985a701d2010aae62130a20c382023a749653b"
            },
            "downloads": -1,
            "filename": "composio_llamaindex-0.5.34.tar.gz",
            "has_sig": false,
            "md5_digest": "acc79a37fb9a80a2dc68d21007ca7f29",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.9",
            "size": 3896,
            "upload_time": "2024-10-17T15:51:23",
            "upload_time_iso_8601": "2024-10-17T15:51:23.351239Z",
            "url": "https://files.pythonhosted.org/packages/82/c5/bffa23425d2fd06743fa1c8785ed9bda42fdbed127ae76ec51f2e777b16c/composio_llamaindex-0.5.34.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-17 15:51:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ComposioHQ",
    "github_project": "composio",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "composio-llamaindex"
}
        
Elapsed time: 1.02217s