Spaces:
Build error
Build error
| import gradio as gr | |
| import os | |
| from crewai import Agent, Task, Crew, Process | |
| from langchain_groq import ChatGroq | |
| from langchain.schema import HumanMessage | |
| import time | |
| # Initialize the GROQ language model | |
| try: | |
| groq_llm = ChatGroq( | |
| groq_api_key=os.environ["GROQ_API_KEY"], | |
| model_name="mixtral-8x7b-32768" | |
| ) | |
| except Exception as e: | |
| print(f"Error initializing GROQ LLM: {e}") | |
| groq_llm = None | |
| def simple_groq_query(query): | |
| try: | |
| response = groq_llm([HumanMessage(content=query)]) | |
| return response.content | |
| except Exception as e: | |
| print(f"Error in simple GROQ query: {e}") | |
| return f"I apologize, but I'm having trouble processing your request at the moment. Here's what I can say: {query} is an interesting topic. Could you please try again in a moment?" | |
| # Create agents | |
| def create_agent(role, goal, backstory): | |
| return Agent( | |
| role=role, | |
| goal=goal, | |
| backstory=backstory, | |
| verbose=True, | |
| allow_delegation=False, | |
| llm=groq_llm | |
| ) | |
| researcher = create_agent( | |
| 'Senior Researcher', | |
| 'Conduct thorough research on given topics', | |
| 'You are an experienced researcher with a keen eye for detail and the ability to find relevant information quickly.' | |
| ) | |
| writer = create_agent( | |
| 'Content Writer', | |
| 'Create engaging and informative content based on research', | |
| 'You are a skilled writer capable of turning complex information into easily understandable and engaging content.' | |
| ) | |
| editor = create_agent( | |
| 'Editor', | |
| 'Refine and improve the written content', | |
| 'You are a meticulous editor with a strong command of language and an eye for clarity and coherence.' | |
| ) | |
| 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, max_tokens=500): | |
| try: | |
| if not groq_llm: | |
| raise Exception("GROQ LLM not initialized") | |
| crew = create_crew(query) | |
| result = crew.kickoff() | |
| return result | |
| except Exception as e: | |
| print(f"Error in process_query: {e}") | |
| return simple_groq_query(query) | |
| # Create the Gradio interface | |
| iface = gr.Interface( | |
| fn=process_query, | |
| inputs=[ | |
| gr.Textbox(lines=5, label="Enter your query"), | |
| gr.Slider(minimum=100, maximum=1000, value=500, step=50, label="Max Tokens") | |
| ], | |
| outputs=gr.Textbox(lines=10, label="AI Agent Response"), | |
| title="CrewAI-powered Chatbot using GROQ and LangChain", | |
| description="Enter a query and get a researched, written, and edited response using CrewAI, GROQ API, and LangChain." | |
| ) | |
| iface.launch() |