|
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) |
|
|
|
|
|
|
|
|
|
|
|
agent_params = {"system_prompt": user_prompt} |
|
|
|
|
|
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() |
|
|
|
|
|
|