Skip to content

Commit

Permalink
feat: added handling for openai assistant tool calls
Browse files Browse the repository at this point in the history
  • Loading branch information
sohamganatra committed Mar 25, 2024
1 parent dcf981f commit ecb7745
Show file tree
Hide file tree
Showing 11 changed files with 47 additions and 15 deletions.
2 changes: 1 addition & 1 deletion autogen/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[project]
dynamic = ["classifiers", "version", "readme", "authors", "requires-python", "description"]
dependencies = [
"composio_core===0.1.43",
"composio_core===0.1.44",
"pyautogen===0.2.19"
]
name = "composio_autogen"
Expand Down
2 changes: 1 addition & 1 deletion autogen/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def resolve_paths(*paths):

setup(
name="composio_autogen",
version="0.1.43",
version="0.1.44",
author="Sawradip",
author_email="[email protected]",
description="Use Composio to get an array of tools with your Autogen agent.",
Expand Down
34 changes: 33 additions & 1 deletion core/composio/sdk/sdk.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from enum import Enum
from json import tool
import time
from typing import Optional, Union, Tuple
from numpy import append
Expand All @@ -9,6 +10,7 @@

from .enums import Action, App, TestIntegration
from openai.types.chat.chat_completion import ChatCompletion
from openai.types.beta.threads import run
import json


Expand Down Expand Up @@ -304,7 +306,9 @@ def get_connection(self, tool_name: str) -> ConnectedAccount:
if tool_name == account.appUniqueId:
return account

def handle_tools_calls(self, tool_calls: ChatCompletion) -> list[any]:
def handle_tools_calls(
self, tool_calls: ChatCompletion, verbose: bool = false
) -> list[any]:
output = []
try:
if tool_calls.choices:
Expand All @@ -324,3 +328,31 @@ def handle_tools_calls(self, tool_calls: ChatCompletion) -> list[any]:
return output

return output

def handle_run_tool_calls(self, run_object: run, verbose: bool = false):
outputs = []
require_action = run_object.required_action.submit_tool_outputs
try:
for tool_call in require_action.tool_calls:
if tool_call.type == "function":
action_name_to_execute = tool_call.function.name
action = self.client.get_action_enum_without_tool(
action_name=action_name_to_execute
)
arguments = json.loads(tool_call.function.arguments)
account = self.get_connection(tool_name=action.service)
if verbose:
print("Executing Function: ", action)
print("Arguments: ", arguments)
response = account.execute_action(action, arguments)
if verbose:
print("Output", response)
output = {
"tool_call_id": tool_call.id,
"output": json.dumps(response.get("response_data", {})),
}
outputs.append(output)
except Exception as e:
print(e)

return outputs
2 changes: 1 addition & 1 deletion core/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def run(self):

setup(
name="composio_core",
version="0.1.43",
version="0.1.44",
author="Utkarsh",
author_email="[email protected]",
description="Core package to act as a bridge between composio platform and other services.",
Expand Down
2 changes: 1 addition & 1 deletion crew_ai/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[project]
dynamic = ["classifiers", "version", "readme", "authors", "requires-python", "description"]
dependencies = [
"composio_langchain===0.1.43",
"composio_langchain===0.1.44",
]
name = "composio_crewai"

Expand Down
2 changes: 1 addition & 1 deletion crew_ai/requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
composio_langchain===0.1.43
composio_langchain===0.1.44
2 changes: 1 addition & 1 deletion crew_ai/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def resolve_paths(*paths):

setup(
name="composio_crewai",
version="0.1.43",
version="0.1.44",
author="Himanshu",
author_email="[email protected]",
description="Use Composio to get an array of tools with your CrewAI agent.",
Expand Down
10 changes: 5 additions & 5 deletions langchain/composio_langchain/composio_tool_spec.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"output_type": "stream",
"text": [
"Requirement already satisfied: langchain-openai in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (0.0.8)\n",
"Requirement already satisfied: langchain-core<0.2.0,>=0.1.27 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langchain-openai) (0.1.43)\n",
"Requirement already satisfied: langchain-core<0.2.0,>=0.1.27 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langchain-openai) (0.1.44)\n",
"Requirement already satisfied: openai<2.0.0,>=1.10.0 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langchain-openai) (1.12.0)\n",
"Requirement already satisfied: tiktoken<1,>=0.5.2 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langchain-openai) (0.6.0)\n",
"Requirement already satisfied: PyYAML>=5.3 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langchain-core<0.2.0,>=0.1.27->langchain-openai) (6.0.1)\n",
Expand Down Expand Up @@ -63,7 +63,7 @@
"Requirement already satisfied: jsonpatch<2.0,>=1.33 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langchain) (1.33)\n",
"Collecting langchain-community<0.1,>=0.0.28 (from langchain)\n",
" Using cached langchain_community-0.0.28-py3-none-any.whl.metadata (8.3 kB)\n",
"Requirement already satisfied: langchain-core<0.2.0,>=0.1.43 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langchain) (0.1.43)\n",
"Requirement already satisfied: langchain-core<0.2.0,>=0.1.44 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langchain) (0.1.44)\n",
"Collecting langchain-text-splitters<0.1,>=0.0.1 (from langchain)\n",
" Using cached langchain_text_splitters-0.0.1-py3-none-any.whl.metadata (2.0 kB)\n",
"Requirement already satisfied: langsmith<0.2.0,>=0.1.17 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langchain) (0.1.27)\n",
Expand All @@ -79,8 +79,8 @@
"Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from dataclasses-json<0.7,>=0.5.7->langchain) (3.20.2)\n",
"Requirement already satisfied: typing-inspect<1,>=0.4.0 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from dataclasses-json<0.7,>=0.5.7->langchain) (0.9.0)\n",
"Requirement already satisfied: jsonpointer>=1.9 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from jsonpatch<2.0,>=1.33->langchain) (2.4)\n",
"Requirement already satisfied: anyio<5,>=3 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langchain-core<0.2.0,>=0.1.43->langchain) (4.3.0)\n",
"Requirement already satisfied: packaging<24.0,>=23.2 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langchain-core<0.2.0,>=0.1.43->langchain) (23.2)\n",
"Requirement already satisfied: anyio<5,>=3 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langchain-core<0.2.0,>=0.1.44->langchain) (4.3.0)\n",
"Requirement already satisfied: packaging<24.0,>=23.2 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langchain-core<0.2.0,>=0.1.44->langchain) (23.2)\n",
"Requirement already satisfied: orjson<4.0.0,>=3.9.14 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from langsmith<0.2.0,>=0.1.17->langchain) (3.9.14)\n",
"Requirement already satisfied: annotated-types>=0.4.0 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from pydantic<3,>=1->langchain) (0.6.0)\n",
"Requirement already satisfied: pydantic-core==2.16.2 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from pydantic<3,>=1->langchain) (2.16.2)\n",
Expand All @@ -89,7 +89,7 @@
"Requirement already satisfied: idna<4,>=2.5 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from requests<3,>=2->langchain) (3.6)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from requests<3,>=2->langchain) (2.2.1)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from requests<3,>=2->langchain) (2024.2.2)\n",
"Requirement already satisfied: sniffio>=1.1 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from anyio<5,>=3->langchain-core<0.2.0,>=0.1.43->langchain) (1.3.0)\n",
"Requirement already satisfied: sniffio>=1.1 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from anyio<5,>=3->langchain-core<0.2.0,>=0.1.44->langchain) (1.3.0)\n",
"Requirement already satisfied: mypy-extensions>=0.3.0 in /Users/karanvaidya/codes/composio_sdk/venv/lib/python3.11/site-packages (from typing-inspect<1,>=0.4.0->dataclasses-json<0.7,>=0.5.7->langchain) (1.0.0)\n",
"Using cached langchain-0.1.12-py3-none-any.whl (809 kB)\n",
"Using cached langchain_community-0.0.28-py3-none-any.whl (1.8 MB)\n",
Expand Down
2 changes: 1 addition & 1 deletion langchain/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ dependencies = [
"langchain-openai===0.0.2.post1",
"langchainhub==0.1.15",
"pydantic===2.6.4",
"composio_core===0.1.43"
"composio_core===0.1.44"
]
name = "composio_langchain"

Expand Down
2 changes: 1 addition & 1 deletion langchain/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ langchain===0.1.0
langchain-openai===0.0.2.post1
pydantic===2.6.4
langchainhub==0.1.15
composio_core===0.1.43
composio_core===0.1.44
2 changes: 1 addition & 1 deletion langchain/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def resolve_paths(*paths):

setup(
name="composio_langchain",
version="0.1.43",
version="0.1.44",
author="Karan",
author_email="[email protected]",
description="Use Composio to get an array of tools with your LangChain agent.",
Expand Down

0 comments on commit ecb7745

Please sign in to comment.