Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from composio_crewai import ComposioToolSet, App, Action | |
| from crewai import Agent, Task, Crew, Process | |
| from langchain_openai import ChatOpenAI | |
| from dotenv import load_dotenv | |
| import os | |
| load_dotenv() | |
| llm = ChatOpenAI(model="gpt-4o") | |
| toolset = ComposioToolSet() | |
| tools = toolset.get_tools(apps=[App.SERPAPI]) | |
| def find_hackernews_posts(message,history): | |
| profile = message | |
| hacnews_agent = Agent( | |
| role="Technical Researcher", | |
| goal="Find the best technical posts on Hackernews", | |
| backstory="You are a technical person who loves reading Hackernews and looking for technical posts. You spend all your time looking for interesting posts of the day.", | |
| llm=llm, | |
| tools=tools | |
| ) | |
| hacnews_task = Task( | |
| description=f""" | |
| Use the serp tool to search for the user's twitter profile of name {profile} to read his bio, | |
| and then scrape it. Based on his bio, find good technical hackernews posts suited to his bio. | |
| Return one post that is most appropriate to the personality. Make it funny. Return title and link to it. | |
| """, | |
| expected_output="A list of 5 technical hackernews posts with titles and URLs", | |
| agent=hacnews_agent, | |
| tools=tools | |
| ) | |
| crew = Crew( | |
| agents=[hacnews_agent], | |
| tasks=[hacnews_task], | |
| process=Process.sequential, | |
| verbose=True | |
| ) | |
| result = crew.kickoff() | |
| # Return the result in the format expected by the Chatbot component | |
| return str(result) | |
| chat_interface = gr.ChatInterface( | |
| fn=find_hackernews_posts, | |
| title="HackerNews Post Finder", | |
| description="Enter a Twitter username to find relevant technical HackerNews posts.", | |
| ) | |
| if __name__ == "__main__": | |
| chat_interface.launch() |