mislavb's picture
add initial files
afbbf55
raw
history blame
1.87 kB
import json
import invariant.testing.functional as F
from invariant.testing import TraceFactory, assert_true
from agent import SantaAgent
import gradio as gr
agent = SantaAgent("You are a Santa Claus. Buy presents and deliver them to the children.")
def run_agent(user_prompt, history, invariant_api_key):
prompt = "Deliver Xbox to John."
messages, gradio_messages = agent.run_santa_agent(prompt)
# messages = [
# {"role": "user", "content": "hi there"},
# {"role": "assistant", "content": "bye bye"},
# ]
agent_params = {"system_prompt": user_prompt}
# run command invariant test test_agent.py --agent-params '{"system_prompt": "you are santa"}'
import subprocess
out = subprocess.run([
"INVARIANT_API_KEY=" + invariant_api_key,
"invariant", "test", "test_agent.py",
"--agent-params", json.dumps(agent_params),
"--push", "--dataset_name", "santa_agent",
], capture_output=True, text=True)
print(out.stdout)
print(out.stderr)
return gradio_messages, "", out.stdout
with gr.Blocks() as demo:
with gr.Row():
with gr.Column(scale=2):
chatbot = gr.Chatbot(
type="messages",
label="Santa Agent",
avatar_images=[
None,
"https://invariantlabs.ai/theme/images/logo.svg"
],
)
with gr.Column(scale=1):
console = gr.TextArea(label="Console Output", interactive=False)
input = gr.Textbox(lines=1, label="System Prompt")
invariant_api_key = gr.Textbox(lines=1, label="Invariant API Key")
input.submit(run_agent, [input, chatbot, invariant_api_key], [chatbot, input, console])
input.submit(lambda: gr.update(visible=False), None, [input])
if __name__ == "__main__":
demo.launch()