Spaces:
Sleeping
Sleeping
| import yaml | |
| import os | |
| import base64 | |
| from smolagents import GradioUI, CodeAgent, OpenAIModel | |
| from opentelemetry.sdk.trace import TracerProvider | |
| from openinference.instrumentation.smolagents import SmolagentsInstrumentor | |
| from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter | |
| from opentelemetry.sdk.trace.export import SimpleSpanProcessor | |
| # Get current directory path | |
| CURRENT_DIR = os.path.dirname(os.path.abspath(__file__)) | |
| from tools.web_search import WebSearchTool as WebSearch | |
| from tools.visit_webpage import VisitWebpageTool as VisitWebpage | |
| from tools.suggest_menu import SimpleTool as SuggestMenu | |
| from tools.catering_service_tool import SimpleTool as CateringServiceTool | |
| from tools.superhero_party_theme_generator import SuperheroPartyThemeTool as SuperheroPartyThemeGenerator | |
| from tools.final_answer import FinalAnswerTool as FinalAnswer | |
| model = OpenAIModel( | |
| model_id='gemini-2.5-flash-lite', | |
| api_base="https://generativelanguage.googleapis.com/v1beta/openai/", | |
| api_key=os.getenv("GEMINI_API_KEY"), | |
| ) | |
| web_search = WebSearch() | |
| visit_webpage = VisitWebpage() | |
| suggest_menu = SuggestMenu() | |
| catering_service_tool = CateringServiceTool() | |
| superhero_party_theme_generator = SuperheroPartyThemeGenerator() | |
| final_answer = FinalAnswer() | |
| with open(os.path.join(CURRENT_DIR, "prompts.yaml"), 'r') as stream: | |
| prompt_templates = yaml.safe_load(stream) | |
| # Langfuse tracing setup | |
| LANGFUSE_PUBLIC_KEY=os.environ["LANGFUSE_PUBLIC_KEY"] | |
| LANGFUSE_SECRET_KEY=os.environ["LANGFUSE_SECRET_KEY"] | |
| LANGFUSE_AUTH=base64.b64encode(f"{LANGFUSE_PUBLIC_KEY}:{LANGFUSE_SECRET_KEY}".encode()).decode() | |
| os.environ["OTEL_EXPORTER_OTLP_ENDPOINT"] = "https://cloud.langfuse.com/api/public/otel" # EU data region | |
| # os.environ["OTEL_EXPORTER_OTLP_ENDPOINT"] = "https://us.cloud.langfuse.com/api/public/otel" # US data region | |
| os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = f"Authorization=Basic {LANGFUSE_AUTH}" | |
| trace_provider = TracerProvider() | |
| trace_provider.add_span_processor(SimpleSpanProcessor(OTLPSpanExporter())) | |
| SmolagentsInstrumentor().instrument(tracer_provider=trace_provider) | |
| agent = CodeAgent( | |
| model=model, | |
| tools=[web_search, visit_webpage, suggest_menu, catering_service_tool, superhero_party_theme_generator], | |
| managed_agents=[], | |
| max_steps=10, | |
| verbosity_level=2, | |
| planning_interval=None, | |
| name=None, | |
| description=None, | |
| executor_type='local', | |
| executor_kwargs={}, | |
| max_print_outputs_length=None, | |
| prompt_templates=prompt_templates | |
| ) | |
| if __name__ == "__main__": | |
| GradioUI(agent).launch() | |