## 🦙 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/b4/69/8abc810dd10dd9d16a58a10254408ccd13ac2d62295c3a3be89ecc6bebe4/composio_llamaindex-0.6.5.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.6.5",
"project_urls": {
"Homepage": "https://github.com/ComposioHQ/composio"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "eda1be0880af355a3cd323e8e0715287cfbef2e147a1d266ceea7ed2b2025bd6",
"md5": "e0a04c450e8ff6e09affdc16e7641f2d",
"sha256": "5d4a3cd6f7ee61fd269a6eb8d97842feca9d80682e17c85c7c2415724da3a542"
},
"downloads": -1,
"filename": "composio_llamaindex-0.6.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e0a04c450e8ff6e09affdc16e7641f2d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.9",
"size": 4434,
"upload_time": "2024-12-20T10:47:15",
"upload_time_iso_8601": "2024-12-20T10:47:15.078999Z",
"url": "https://files.pythonhosted.org/packages/ed/a1/be0880af355a3cd323e8e0715287cfbef2e147a1d266ceea7ed2b2025bd6/composio_llamaindex-0.6.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b4698abc810dd10dd9d16a58a10254408ccd13ac2d62295c3a3be89ecc6bebe4",
"md5": "af3bec3a71b5da3b941ed2d27254ee5c",
"sha256": "858960b6b0ac0416d795236e29b939db64065bca17a11127fa9f15858987ecd8"
},
"downloads": -1,
"filename": "composio_llamaindex-0.6.5.tar.gz",
"has_sig": false,
"md5_digest": "af3bec3a71b5da3b941ed2d27254ee5c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.9",
"size": 3984,
"upload_time": "2024-12-20T10:47:16",
"upload_time_iso_8601": "2024-12-20T10:47:16.047682Z",
"url": "https://files.pythonhosted.org/packages/b4/69/8abc810dd10dd9d16a58a10254408ccd13ac2d62295c3a3be89ecc6bebe4/composio_llamaindex-0.6.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-20 10:47:16",
"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"
}