import gradio as gr from langchain import hub from langchain_google_genai import ChatGoogleGenerativeAI from langchain_core.messages import SystemMessage from langchain.agents import create_react_agent, AgentExecutor from langchain_community.agent_toolkits.load_tools import load_tools from dotenv import find_dotenv, load_dotenv import os load_dotenv(find_dotenv()) google_api_key = os.environ['GOOGLE_AI_API_KEY'] prompt = hub.pull("hwchase17/react-chat") template = """ You are Codora, an AI assistant that helps the user with his/her code. You accept user input and provide assistance in coding. DO NOT PROVIDE ANSWERS, ONLY GUIDE THEM TO THE SOLUTION. Provide any necessary information to the user to help them understand the problem and solve it on their own. Your answers should be crisp, clear and concise. Use the provided tool to search Stack Overflow for relevant information. Answer questions that are only related to coding/programming. Don't respond to requests that are irrelevant to coding/programming. Politely decline any irrelevant questions and remind them that you need a coding/programming request. """ messages = [SystemMessage(content=template)] model = ChatGoogleGenerativeAI(model="gemini-1.5-pro", google_api_key=google_api_key, temperature=0.4) tools = load_tools(["stackexchange"]) agent = create_react_agent(llm=model, prompt=prompt, tools=tools) agent_executor = AgentExecutor(agent=agent, verbose=True, tools=tools) def respond(message, history): messages.append(message) response = agent_executor.invoke({"input": messages, "chat_history" : history}) return response['output'] demo = gr.ChatInterface( respond, examples=["How do I use async/await in a JavaScript function?", "How do I center a div in CSS?", "How do I create a virtual environment in Python?"] ) if __name__ == "__main__": demo.launch()