GrokChatbot / app.py
faraz7123's picture
Upload 2 files
7bc6f72 verified
raw
history blame
2.3 kB
from swarmauri.standard.llms.concrete.GroqModel import GroqModel
from swarmauri.standard.messages.concrete.SystemMessage import SystemMessage
from swarmauri.standard.agents.concrete.SimpleConversationAgent import SimpleConversationAgent
from swarmauri.standard.conversations.concrete.MaxSystemContextConversation import MaxSystemContextConversation
import gradio as gr
import os
from dotenv import load_dotenv
# Fetch the API key from environment variables
load_dotenv()
# Fetch the API key from environment variables
API_KEY = os.getenv("GROQ_API_KEY")
# Initialize the GroqModel with the API key to access allowed models
llm = GroqModel(api_key=API_KEY)
# Get the available models from the llm instance
allowed_models = llm.allowed_models
# Initialize a MaxSystemContextConversation instance
conversation = MaxSystemContextConversation()
# Define a function to dynamically change the model based on dropdown input
def load_model(selected_model):
return GroqModel(api_key=API_KEY, name=selected_model)
# Define the function to interact with the agent
def converse(input_text, history, system_context, model_name):
print(f"System context: {system_context}")
print(f"Selected model: {model_name}")
# Initialize the model dynamically based on user selection
llm = load_model(model_name)
# Initialize the agent with the new model
agent = SimpleConversationAgent(llm=llm, conversation=conversation)
# Set the system context for the agent
agent.conversation.system_context = SystemMessage(content=system_context)
# Ensure input text is a string
input_text = str(input_text)
print(conversation.history)
# Execute the input command with the agent
result = agent.exec(input_text)
print(result, type(result))
# Return the result as a string
return str(result)
# Set up the Gradio ChatInterface with a dropdown for model selection
interface = gr.ChatInterface(
fn=converse,
additional_inputs=[
gr.Textbox(label="System Context"),
gr.Dropdown(label="Model Name", choices=allowed_models, value=allowed_models[0])
],
title="A system context conversation",
description="Interact with the agent using a selected model and system context."
)
# Start the Gradio interface
interface.launch()