Skip to main content

OpenInference BeeAI Instrumentation

Project description

OpenInference Instrumentation for BeeAI

This module provides automatic instrumentation for BeeAI framework. It integrates seamlessly with the @opentelemetry/sdk-trace-node to collect and export telemetry data.

Installation

pip install openinference-instrumentation-beeai

Quickstart

This quickstart shows you how to instrument your guardrailed LLM application

Install required packages.

pip install beeai-framework arize-phoenix opentelemetry-sdk opentelemetry-exporter-otlp

Start Phoenix in the background as a collector. By default, it listens on http://localhost:6006. You can visit the app via a browser at the same address. (Phoenix does not send data over the internet. It only operates locally on your machine.)

python -m phoenix.server.main serve

Set up BeeAIInstrumentor to trace your crew and send the traces to Phoenix at the endpoint defined below. The openinference_setup.py file.

import logging

from opentelemetry import trace as trace_api
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk import trace as trace_sdk
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor

from openinference.instrumentation.beeai import BeeAIInstrumentor

logging.basicConfig(level=logging.DEBUG)


def setup_observability(endpoint: str = "http://localhost:6006/v1/traces") -> None:
    """
    Sets up OpenTelemetry with OTLP HTTP exporter and instruments the beeai framework.
    """
    resource = Resource(attributes={})
    tracer_provider = trace_sdk.TracerProvider(resource=resource)
    tracer_provider.add_span_processor(SimpleSpanProcessor(OTLPSpanExporter(endpoint)))
    tracer_provider.add_span_processor(SimpleSpanProcessor(ConsoleSpanExporter()))
    trace_api.set_tracer_provider(tracer_provider)

    BeeAIInstrumentor().instrument()

Set up a simple ReActAgent to get the current weather in Las Vegas.

import asyncio
import sys
import traceback

from beeai_framework.agents.react import ReActAgent
from beeai_framework.agents.types import AgentExecutionConfig
from beeai_framework.backend.chat import ChatModel
from beeai_framework.backend.types import ChatModelParameters
from beeai_framework.errors import FrameworkError
from beeai_framework.memory import TokenMemory
from beeai_framework.tools.search import DuckDuckGoSearchTool, WikipediaTool
from beeai_framework.tools.tool import AnyTool
from beeai_framework.tools.weather.openmeteo import OpenMeteoTool
from openinference_setup import setup_observability

setup_observability()

llm = ChatModel.from_name(
    "ollama:granite3.1-dense:8b",
    ChatModelParameters(temperature=0),
)

tools: list[AnyTool] = [
    WikipediaTool(),
    OpenMeteoTool(),
    DuckDuckGoSearchTool(),
]

agent = ReActAgent(llm=llm, tools=tools, memory=TokenMemory(llm))

prompt = "What's the current weather in Las Vegas?"


async def main() -> None:
    response = await agent.run(
        prompt=prompt,
        execution=AgentExecutionConfig(
            max_retries_per_step=3, total_max_retries=10, max_iterations=20
        ),
    )

    print("Agent 🤖 : ", response.result.text)


if __name__ == "__main__":
    try:
        asyncio.run(main())
    except FrameworkError as e:
        traceback.print_exc()
        sys.exit(e.explain())

More Info

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openinference_instrumentation_beeai-0.1.4.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file openinference_instrumentation_beeai-0.1.4.tar.gz.

File metadata

File hashes

Hashes for openinference_instrumentation_beeai-0.1.4.tar.gz
Algorithm Hash digest
SHA256 b41b0ba67c6224b02cc72ef95e8a8d2181a151b024caedd0d210d3c4657b26a0
MD5 7b7f39bc17f803a087af1895debca7c9
BLAKE2b-256 58927078f32be456d85457c8a8e3ae8638dc17a824d07e978a57ca2163589e47

See more details on using hashes here.

File details

Details for the file openinference_instrumentation_beeai-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for openinference_instrumentation_beeai-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f917a83f8fa53d64be11a27c468bb234ec5e0eaab75e2729e697edbb0feff150
MD5 7c98ce024177c51bb510a58f6fa71f35
BLAKE2b-256 ed8479170718156b527ae1441a199211dfffbbb8f39c541b5b119b6af05889ce

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page