Spaces:
Sleeping
Sleeping
| 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.Textbox(label="Industry Name", placeholder="Enter the name of the industry"), | |
| ], | |
| outputs=[ | |
| gr.Textbox(placeholder="Output will be displayed here"), | |
| ], | |
| title="Domain Name Suggestion Tool for Mergers and Acquisitions", | |
| description="Built with [Composio](https://www.github.com/composiohq/composio) Use this tool to generate domain name suggestions based on the latest business mergers and acquisitions.", | |
| theme=gr.themes.Default(), # Ensure to set a theme if needed | |
| ) | |
| # Launch the interface | |
| iface.launch() | |