import os import gradio as gr from crewai import Agent, Task, Crew, Process from langchain_groq import ChatGroq from langchain.tools import DuckDuckGoSearchRun # Initialize the GROQ language model groq_llm = ChatGroq( groq_api_key=os.environ["GROQ_API_KEY"], model_name="mixtral-8x7b-32768" ) # Initialize the search tool search_tool = DuckDuckGoSearchRun() # Create agents researcher = Agent( role='Senior Researcher', goal='Conduct thorough research on given topics', backstory='You are an experienced researcher with a keen eye for detail and the ability to find relevant information quickly.', verbose=True, allow_delegation=False, llm=groq_llm, tools=[search_tool] ) writer = Agent( role='Content Writer', goal='Create engaging and informative content based on research', backstory='You are a skilled writer capable of turning complex information into easily understandable and engaging content.', verbose=True, allow_delegation=False, llm=groq_llm ) editor = Agent( role='Editor', goal='Refine and improve the written content', backstory='You are a meticulous editor with a strong command of language and an eye for clarity and coherence.', verbose=True, allow_delegation=False, llm=groq_llm ) def create_crew(query): # Create tasks research_task = Task( description=f"Research the following topic thoroughly: {query}", agent=researcher ) writing_task = Task( description="Write an informative article based on the research conducted", agent=writer ) editing_task = Task( description="Review and refine the written article, ensuring clarity, coherence, and engagement", agent=editor ) # Create the crew crew = Crew( agents=[researcher, writer, editor], tasks=[research_task, writing_task, editing_task], verbose=2, process=Process.sequential ) return crew def process_query(query): crew = create_crew(query) result = crew.kickoff() return result # Create Gradio interface iface = gr.Interface( fn=process_query, inputs=gr.Textbox(lines=2, placeholder="Enter your query here..."), outputs=gr.Textbox(lines=10, label="AI Agent Response"), title="AI Agent Chatbot", description="Ask a question or provide a topic, and our AI agents will research, write, and edit a response for you." ) iface.launch()