import gradio as gr from composio_llamaindex import ComposioToolSet, App, Action from llama_index.core.agent import FunctionCallingAgentWorker from llama_index.core.llms import ChatMessage from llama_index.llms.openai import OpenAI from dotenv import load_dotenv load_dotenv() # Initialize Composio ToolSet and OpenAI model composio_toolset = ComposioToolSet() tools = composio_toolset.get_tools(apps=[App.EXA, App.BROWSERBASE_TOOL, App.GOOGLESHEETS]) llm = OpenAI(model="gpt-4o") # Set up prefix messages for the agent prefix_messages = [ ChatMessage( role="system", content=( "You are a domain name suggestion agent. Based on the latest news of business mergers and acquisitions, suggest creative domain names." "Use the information available to you. Provide at least 10 relevant domain name suggestions based on the merger or acquisition." "Include the following elements in your suggestions:" """ Suggested Domain Names: 1. Domain Name 2. Availability Status 3. Related Keywords 4. Industry Relevance """ "Once the suggestions have been generated, present them in a clear format." ), ) ] # Define the function that interacts with the agent def generate_domain_suggestions(industry, reason): # Initialize the agent worker agent = FunctionCallingAgentWorker( tools=tools, llm=llm, prefix_messages=prefix_messages, max_function_calls=10, allow_parallel_tool_calls=False, verbose=True, ).as_agent() user_input = f"Based on the Industry {industry} look for latest merger and business deals and then suggest domain names that can be bought for these mergers and deals." response = agent.chat(user_input) return response.response # Create Gradio Interface with two input fields and Markdown output iface = gr.Interface( fn=generate_domain_suggestions, inputs=[ #gr.HTML("