38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
|
|
from langsmith import traceable
|
|
from agent_workflows.crew_setup import create_crew
|
|
from shared_config import AgenticAIConfig, logger
|
|
from langsmith.integrations.otel import OtelSpanProcessor
|
|
from opentelemetry import trace
|
|
from opentelemetry.sdk.trace import TracerProvider
|
|
from opentelemetry.instrumentation.crewai import CrewAIInstrumentor
|
|
from opentelemetry.instrumentation.openai import OpenAIInstrumentor
|
|
|
|
# Initialize the trace provider
|
|
tracer_provider = TracerProvider()
|
|
#trace.set_tracer_provider(tracer_provider)
|
|
|
|
# Add the LangSmith OTel processor
|
|
tracer_provider.add_span_processor(OtelSpanProcessor())
|
|
|
|
# Instrument both CrewAI and OpenAI layers
|
|
CrewAIInstrumentor().instrument(tracer_provider=tracer_provider)
|
|
OpenAIInstrumentor().instrument(tracer_provider=tracer_provider)
|
|
|
|
@traceable(name="Capstone_GTM Strategy Simulation", run_type="chain")
|
|
def runAgenticWorkflow(config: AgenticAIConfig):
|
|
"""
|
|
Main Entry Point of Agentic AI Workflow
|
|
"""
|
|
logger.info("Agentic Workflow Started...")
|
|
|
|
crew = create_crew(config)
|
|
|
|
result = crew.kickoff(
|
|
inputs={
|
|
"query": config.user_query
|
|
}
|
|
)
|
|
|
|
config.response = str(result)
|
|
return config |