Spaces:
Sleeping
Sleeping
| # app.py | |
| import time | |
| import random | |
| import gradio as gr | |
| # ------------------------- | |
| # Minimal HyperLayer demo | |
| # - mode: choose demo behavior | |
| # - latency: simulate zero / low / higher latency for demo | |
| # - examples: quick tryouts | |
| # ------------------------- | |
| def simulate_processing(prompt: str, mode: str, latency_ms: int): | |
| """ | |
| Simulate HyperLayer AI agent processing. | |
| - prompt: user input | |
| - mode: 'Explain', 'Summarize', 'Detect Intent', 'Tokenize' | |
| - latency_ms: simulated processing time in milliseconds | |
| """ | |
| # simulate processing delay | |
| time.sleep(max(0, latency_ms) / 1000.0) | |
| # create deterministic-ish fake outputs for demo | |
| if not prompt.strip(): | |
| return "Please enter a prompt to see simulated HyperLayer output." | |
| base = f"[Mode: {mode}]" | |
| if mode == "Explain": | |
| out = f"{base} Explanation: HyperLayer interprets your input and returns a concise, technical summary.\n\nInput: {prompt}\n\nSummary: {prompt[:120]}... (simulated explanation)" | |
| elif mode == "Summarize": | |
| out = f"{base} Summary: {prompt[:140]}... (simulated short summary)" | |
| elif mode == "Detect Intent": | |
| intents = ["query_price", "execute_trade", "get_balance", "unknown"] | |
| detected = random.choice(intents) | |
| out = f"{base} Detected intent = `{detected}` (confidence: {random.uniform(0.6,0.99):.2f})" | |
| elif mode == "Tokenize": | |
| tokens = prompt.split() | |
| out = f"{base} Tokens ({len(tokens)}): " + ", ".join(tokens[:20]) | |
| else: | |
| out = f"{base} Echo: {prompt}" | |
| # simulate metadata block | |
| meta = f"\n\n---\nSimulated latency: {latency_ms} ms • Node: x402-demo-01 • timestamp: {time.strftime('%Y-%m-%d %H:%M:%S')}" | |
| return out + meta | |
| # Gradio UI details | |
| title = "🛰️ HyperLayer (x402) — Demo Playground" | |
| description = """ | |
| **HyperLayer demo** — lightweight simulation of zero-latency AI agent responses on a Solana-native infra. | |
| Use the controls to pick a mode, set simulated latency and try sample prompts. | |
| *This Space shows a demo-only simulation for presentation / hackathon purposes.* | |
| """ | |
| with gr.Blocks(title=title) as demo: | |
| gr.Markdown(f"# {title}\n\n{description}") | |
| with gr.Row(): | |
| with gr.Column(scale=2): | |
| prompt = gr.Textbox(lines=4, label="Prompt / Data stream", placeholder="Type a request for the AI agent...") | |
| mode = gr.Dropdown(choices=["Explain", "Summarize", "Detect Intent", "Tokenize", "Echo"], value="Explain", label="Mode") | |
| latency = gr.Slider(minimum=0, maximum=2000, step=50, value=50, label="Simulated latency (ms)") | |
| run_btn = gr.Button("Run Demo") | |
| examples = gr.Examples( | |
| examples=[ | |
| ["Evaluate arbitrage opportunities between market A and B", "Explain", 50], | |
| ["Summarize last 24h orderbook activity for X token", "Summarize", 120], | |
| ["transfer 0.5 SOL to 0xabc...z", "Detect Intent", 30], | |
| ["tokenize: buy 100 sell 50", "Tokenize", 0], | |
| ], | |
| inputs=[prompt, mode, latency], | |
| label="Try examples" | |
| ) | |
| with gr.Column(scale=1): | |
| output = gr.Textbox(lines=12, label="Agent Output (simulated)") | |
| gr.Markdown("**Notes**\n- This is a demo to showcase how real-time agent responses would look.\n- Replace simulation with real RPC / model calls for production.") | |
| def run(prompt_text, mode_val, latency_val): | |
| return simulate_processing(prompt_text, mode_val, int(latency_val)) | |
| run_btn.click(fn=run, inputs=[prompt, mode, latency], outputs=[output]) | |
| # add default examples | |
| prompt.submit(fn=run, inputs=[prompt, mode, latency], outputs=[output]) | |
| if __name__ == "__main__": | |
| demo.launch(server_name="0.0.0.0", server_port=7860, share=False) | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| import gradio as gr | |
| model_id = "x402_hyperlayer_model" | |
| tokenizer = AutoTokenizer.from_pretrained(model_id) | |
| model = AutoModelForCausalLM.from_pretrained(model_id) | |
| def chat(prompt): | |
| inputs = tokenizer(prompt, return_tensors="pt") | |
| outputs = model.generate(**inputs, max_new_tokens=100) | |
| return tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| demo = gr.Interface(fn=chat, inputs="text", outputs="text", title="X402 HyperLayer Model") | |
| demo.launch() |