import os import asyncio from langchain_openai import ChatOpenAI from langchain_core.messages import HumanMessage from langchain.tools import tool # LLM configuration – always OpenRouter llm = ChatOpenAI( model="openai/gpt-oss-20b:free", base_url="https://openrouter.ai/api/v1", api_key=os.getenv("OPENAI_API_KEY"), temperature=0.0, ) # Tool that performs a simple comparison of three entities @tool def compare_entities(entity1: str, entity2: str, entity3: str) -> str: """Return a concise comparison of three entities.""" comparison = ( f"Comparison of {entity1}, {entity2}, and {entity3}:\n" f"1. {entity1}: Feature A, Feature B, Feature C.\n" f"2. {entity2}: Feature D, Feature E, Feature F.\n" f"3. {entity3}: Feature G, Feature H, Feature I.\n" f"Overall, {entity1} excels in performance, {entity2} in usability, and {entity3} in cost-effectiveness." ) return comparison async def main(): user_query = "Compare Tavily, Google, and Bing for web search capabilities." parts = [p.strip() for p in user_query.replace("?", "").split(" ") if p.strip()] if len(parts) >= 3: e1, e2, e3 = parts[-3], parts[-2], parts[-1] else: e1, e2, e3 = "Entity1", "Entity2", "Entity3" result = await compare_entities(e1, e2, e3) print(result) if __name__ == "__main__": asyncio.run(main())