AgentOps ENG-525: Decouple CrewAI and AgentOps (#1033)

* Make AgentOps import optional upon AGENTOPS_API_KEY
    being set

Co-authored-by: João Moura <joaomdmoura@gmail.com>
This commit is contained in:
Vikram Guhan Subbiah
2024-08-10 05:47:13 -07:00
committed by GitHub
parent d1770b3749
commit c0005e112e
4 changed files with 42 additions and 20 deletions

View File

@@ -19,17 +19,24 @@ from crewai.utilities.constants import TRAINED_AGENTS_DATA_FILE, TRAINING_DATA_F
from crewai.utilities.token_counter_callback import TokenCalcHandler from crewai.utilities.token_counter_callback import TokenCalcHandler
from crewai.utilities.training_handler import CrewTrainingHandler from crewai.utilities.training_handler import CrewTrainingHandler
agentops = None def mock_agent_ops_provider():
try:
import agentops # type: ignore # Name "agentops" already defined on line 21
from agentops import track_agent
except ImportError:
def track_agent(): def track_agent():
def noop(f): def noop(f):
return f return f
return noop return noop
return track_agent
agentops = None
if os.environ.get("AGENTOPS_API_KEY"):
try:
import agentops # type: ignore # Name "agentops" already defined on line 21
from agentops import track_agent
except ImportError:
track_agent = mock_agent_ops_provider()
else:
track_agent = mock_agent_ops_provider()
@track_agent() @track_agent()

View File

@@ -3,6 +3,7 @@ import json
import uuid import uuid
from concurrent.futures import Future from concurrent.futures import Future
from hashlib import md5 from hashlib import md5
import os
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
from langchain_core.callbacks import BaseCallbackHandler from langchain_core.callbacks import BaseCallbackHandler
@@ -47,10 +48,13 @@ from crewai.utilities.planning_handler import CrewPlanner
from crewai.utilities.task_output_storage_handler import TaskOutputStorageHandler from crewai.utilities.task_output_storage_handler import TaskOutputStorageHandler
from crewai.utilities.training_handler import CrewTrainingHandler from crewai.utilities.training_handler import CrewTrainingHandler
agentops = None
if os.environ.get("AGENTOPS_API_KEY"):
try: try:
import agentops import agentops
except ImportError: except ImportError:
agentops = None pass
if TYPE_CHECKING: if TYPE_CHECKING:
from crewai.pipeline.pipeline import Pipeline from crewai.pipeline.pipeline import Pipeline

View File

@@ -1,5 +1,6 @@
import ast import ast
from difflib import SequenceMatcher from difflib import SequenceMatcher
import os
from textwrap import dedent from textwrap import dedent
from typing import Any, List, Union from typing import Any, List, Union
@@ -11,10 +12,12 @@ from crewai.telemetry import Telemetry
from crewai.tools.tool_calling import InstructorToolCalling, ToolCalling from crewai.tools.tool_calling import InstructorToolCalling, ToolCalling
from crewai.utilities import I18N, Converter, ConverterError, Printer from crewai.utilities import I18N, Converter, ConverterError, Printer
agentops = None
if os.environ.get("AGENTOPS_API_KEY"):
try: try:
import agentops import agentops
except ImportError: except ImportError:
agentops = None pass
OPENAI_BIGGER_MODELS = ["gpt-4o"] OPENAI_BIGGER_MODELS = ["gpt-4o"]

View File

@@ -1,3 +1,4 @@
import os
from typing import List from typing import List
from langchain_openai import ChatOpenAI from langchain_openai import ChatOpenAI
@@ -6,16 +7,23 @@ from pydantic import BaseModel, Field
from crewai.utilities import Converter from crewai.utilities import Converter
from crewai.utilities.pydantic_schema_parser import PydanticSchemaParser from crewai.utilities.pydantic_schema_parser import PydanticSchemaParser
agentops = None def mock_agent_ops_provider():
try: def track_agent():
from agentops import track_agent
except ImportError:
def track_agent(name):
def noop(f): def noop(f):
return f return f
return noop return noop
return track_agent
agentops = None
if os.environ.get("AGENTOPS_API_KEY"):
try:
from agentops import track_agent
except ImportError:
track_agent = mock_agent_ops_provider()
else:
track_agent = mock_agent_ops_provider()
class Entity(BaseModel): class Entity(BaseModel):