newcomer / app.py
sathyrajan's picture
Update app.py
83d6c7c verified
import os
import gradio as gr
from autogen import AssistantAgent
from autogen.agentchat.contrib.retrieve_user_proxy_agent import RetrieveUserProxyAgent
from dotenv import load_dotenv
load_dotenv() # Load environment variables
gpt4 = {
"config_list": [{"model": "gpt-4", "api_key": os.environ["OPENAI_API_KEY"]}],
}
# Initialize agents
assistant = AssistantAgent(
name="assistant",
system_message="You are a helpful assistant. Give the user information with a set of logical steps to follow. In addition provide helpful url resources from ragproxyagent.",
llm_config=gpt4,
)
ragproxyagent = RetrieveUserProxyAgent(
name="ragproxyagent",
human_input_mode="ALWAYS",
retrieve_config={
"task": "qa",
"docs_path": "./scraped_results/",
"context_max_tokens": 5000,
"overwrite": False,
"get_or_create": True,
"return_source": True,
},
code_execution_config=False,
)
# Function to reset agents
def _reset_agents():
ragproxyagent.reset()
assistant.reset()
import time
def chat_with_agents(user_input, history):
_reset_agents() # Reset agents before each new conversation
# Step 1: RAG Agent retrieves context (doc-based information)
chat_result = ragproxyagent.initiate_chat(
assistant,
message=ragproxyagent.message_generator,
problem=user_input,
n_results=3,
max_turns=1,
)
print("Raw RAG Response:", chat_result) # Debugging
# Step 2: Extract assistant's final summarized response
response = "Sorry, I couldn't generate a response."
# Check if the response contains the summary
if hasattr(chat_result, 'summary') and chat_result.summary:
response = chat_result.summary
# print("Assistant's Final Response:", response) # Debugging
# Step 3: Append user and assistant messages
# history.append({"role": "user", "content": user_input})
# history.append({"role": "assistant", "content": response})
# Return only the last 2 messages (user + assistant) for Gradio
return response
# Use "messages" type for proper chat UI
chat_interface = gr.ChatInterface(
fn=chat_with_agents,
type="messages"
)
if __name__ == "__main__":
chat_interface.launch()