Ubik80's picture
Added langfuse
9d0f14d verified
raw
history blame
1.77 kB
import base64
import os
os.environ["HF_TOKEN"] = os.getenv("HF_TOKEN")
from smolagents import CodeAgent, HfApiModel
from faq_retriever import faq_tool
from tools import search_tool
import gradio as gr
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import SimpleSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry import trace
from openinference.instrumentation.smolagents import SmolagentsInstrumentor
model = HfApiModel()
faq_bot = CodeAgent(
tools=[faq_tool, search_tool],
model=model,
planning_interval=3
)
def ask_bot(question):
return faq_bot.run(question)
#LANGFUSE
LANGFUSE_PUBLIC_KEY = "pk-lf-c59ee623-3a51-4e53-b07c-1cbe0643b3f9"
LANGFUSE_SECRET_KEY = "sk-lf-4f3adebf-6428-473d-8599-71d030b390a6"
LANGFUSE_HOST = "https://cloud.langfuse.com"
os.environ["LANGFUSE_PUBLIC_KEY"] = LANGFUSE_PUBLIC_KEY
os.environ["LANGFUSE_SECRET_KEY"] = LANGFUSE_SECRET_KEY
os.environ["LANGFUSE_HOST"] = LANGFUSE_HOST
auth = base64.b64encode(f"{LANGFUSE_PUBLIC_KEY}:{LANGFUSE_SECRET_KEY}".encode()).decode()
os.environ["OTEL_EXPORTER_OTLP_ENDPOINT"] = f"{LANGFUSE_HOST}/api/public/otel"
os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = f"Authorization=Basic {auth}"
# Create the tracer provider
provider = TracerProvider()
processor = SimpleSpanProcessor(OTLPSpanExporter())
provider.add_span_processor(processor)
trace.set_tracer_provider(provider)
# Instrument Smolagents
SmolagentsInstrumentor().instrument(tracer_provider=provider)
#GRADIO
demo = gr.Interface(
fn=ask_bot,
inputs="text",
outputs="text",
title="πŸ“˜ Company FAQ Assistant",
description="Ask about APIs, onboarding, security, and operations."
)
demo.launch()