Spaces:
No application file
No application file
| import os | |
| import gradio as gr | |
| from crewai import Agent, Task, Crew, Process | |
| from crewai_tools import SerperDevTool | |
| from langchain_groq import ChatGroq | |
| # Set up environment variables | |
| os.environ["GROQ_API_KEY"] = "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" | |
| os.environ["SERPER_API_KEY"] = "206256c6acfbcd5a46195f3312aaa7e8ed38ae5f" | |
| # Initialize Groq LLM | |
| groq_llm = ChatGroq( | |
| model_name="mixtral-8x7b-32768", | |
| temperature=0.7, | |
| max_tokens=32768 | |
| ) | |
| # Initialize search tool | |
| search_tool = SerperDevTool() | |
| # Define agents | |
| researcher = Agent( | |
| role='Senior Research Analyst', | |
| goal='Uncover cutting-edge developments in AI and data science', | |
| backstory="""You work at a leading tech think tank. | |
| Your expertise lies in identifying emerging trends. | |
| You have a knack for dissecting complex data and presenting actionable insights.""", | |
| verbose=True, | |
| allow_delegation=False, | |
| llm=groq_llm, | |
| tools=[search_tool] | |
| ) | |
| writer = Agent( | |
| role='Tech Content Strategist', | |
| goal='Craft compelling content on tech advancements', | |
| backstory="""You are a renowned Content Strategist, known for your insightful and engaging articles. | |
| You transform complex concepts into compelling narratives.""", | |
| verbose=True, | |
| allow_delegation=True, | |
| llm=groq_llm | |
| ) | |
| # Create tasks | |
| def create_tasks(topic): | |
| task1 = Task( | |
| description=f"""Conduct a brief analysis of the latest advancements in {topic}. | |
| Identify key trends and potential impacts.""", | |
| expected_output="Concise analysis in 2-3 sentences", | |
| agent=researcher | |
| ) | |
| task2 = Task( | |
| description=f"""Using the insights about {topic}, create a short, engaging response | |
| that highlights the most significant points. Keep it brief and conversational.""", | |
| expected_output="Conversational response of 2-3 sentences", | |
| agent=writer | |
| ) | |
| return [task1, task2] | |
| # Function to run the crew | |
| def run_crew(topic): | |
| try: | |
| tasks = create_tasks(topic) | |
| crew = Crew( | |
| agents=[researcher, writer], | |
| tasks=tasks, | |
| verbose=2, | |
| process=Process.sequential | |
| ) | |
| result = crew.kickoff() | |
| return result | |
| except Exception as e: | |
| return f"I apologize, but I encountered an issue while processing your request. Please try again or rephrase your question. Error details: {str(e)}" | |
| # Chatbot function | |
| def chatbot(message): | |
| if not message.strip(): | |
| return "Please enter a valid question or topic." | |
| response = run_crew(message) | |
| return response | |
| # Create Gradio interface | |
| iface = gr.Interface( | |
| fn=chatbot, | |
| inputs=gr.Textbox(lines=2, placeholder="Ask about any AI or technology topic..."), | |
| outputs=gr.Textbox(), | |
| title="AI Research Assistant Chatbot", | |
| description="Ask about any AI or technology topic, and I'll provide a brief, informative response.", | |
| examples=[ | |
| ["What are the latest advancements in natural language processing?"], | |
| ["Tell me about recent breakthroughs in quantum computing."], | |
| ["What are the current trends in computer vision?"] | |
| ], | |
| allow_flagging="never" | |
| ) | |
| # Launch the interface | |
| iface.launch(share=True) |