""" Hermès AI Toolkit - Hugging Face Space Advanced AI tools for the Hermès Agent system """ import gradio as gr import json from typing import List, Dict, Any # Tool definitions for Hermès agent integration TOOLS = { "text_generation": { "name": "Text Generation", "description": "Generate text using HF Inference API", "icon": "✍️", "endpoint": "text-generation" }, "summarization": { "name": "Summarization", "description": "Summarize long text into concise summaries", "icon": "📝", "endpoint": "summarization" }, "translation": { "name": "Translation", "description": "Translate text between languages", "icon": "🌐", "endpoint": "translation" }, "question_answering": { "name": "Question Answering", "description": "Answer questions based on given context", "icon": "❓", "endpoint": "question-answering" }, "sentiment_analysis": { "name": "Sentiment Analysis", "description": "Analyze emotional tone of text", "icon": "💭", "endpoint": "sentiment-analysis" }, "code_generation": { "name": "Code Generation", "description": "Generate code from natural language", "icon": "💻", "endpoint": "code-generation" }, "image_classification": { "name": "Image Classification", "description": "Classify images into categories", "icon": "🖼️", "endpoint": "image-classification" }, "feature_extraction": { "name": "Feature Extraction", "description": "Extract embeddings/features from text", "icon": "🔍", "endpoint": "feature-extraction" } } MODELS = { "text-generation": [ "meta-llama/Llama-3.2-1B-Instruct", "meta-llama/Llama-3.2-3B-Instruct", "mistralai/Mistral-7B-Instruct-v0.2", "microsoft/Phi-3-mini-128k-instruct", "Qwen/Qwen2.5-7B-Instruct", "deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct" ], "summarization": [ "facebook/bart-large-cnn", "google/pegasus-xsum", "t5-base" ], "translation": [ "facebook/mbart-large-50-many-to-many-mmt", "Helsinki-NLP/opus-mt-zh-en", "Helsinki-NLP/opus-mt-en-zh" ], "question-answering": [ "deepset/roberta-base-squad2", "distilbert-base-cased-distilled-squad" ], "sentiment-analysis": [ "distilbert-base-uncased-finetuned-sst-2-english", "nlptown/bert-base-multilingual-uncased-sentiment" ], "code-generation": [ "deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct", "mistralai/CodeInstruct-7B" ] } def get_tool_card(tool_id: str) -> str: """Generate tool card HTML""" tool = TOOLS.get(tool_id, {}) models = MODELS.get(tool.get("endpoint", ""), []) models_html = "
".join([f"• `{m}`" for m in models[:3]]) if len(models) > 3: models_html += f"
... and {len(models)-3} more" return f"""

{tool.get('icon', '🔧')} {tool.get('name', tool_id)}

{tool.get('description', '')}

Available Models ({len(models)})
{models_html}
""" def build_tools_gallery(): """Build tools gallery view""" tools_html = "" for tool_id in TOOLS: tools_html += get_tool_card(tool_id) return tools_html def build_hero(): """Build hero section""" return """# 🤖 Hermès AI Toolkit Welcome to the Hermès AI Toolkit powered by Hugging Face Inference API. ## What is Hermès? Hermès is an autonomous AI Agent that can: - 🔍 Search and research topics - 💻 Write and debug code - 📊 Analyze data and generate insights - 🌐 Translate between languages - 📝 Summarize documents - 💡 Answer questions intelligently ## Available Tools Select a tool from the tabs below to get started. ## Integration This Space is part of the [cntalk/hermes-agent-resources](https://huggingface.co/collections/cntalk/hermes-agent-resources-69f9c5b62fb70b0bbb6ae0b1) collection. """ # Build the interface with gr.Blocks( title="Hermès AI Toolkit", theme=gr.themes.Soft( primary_hue="teal", secondary_hue="purple", neutral_hue="gray", font=[gr.themes.GoogleFont("Inter")] ) ) as demo: gr.Markdown(build_hero()) with gr.Tabs(): with gr.TabItem("🛠️ All Tools"): gr.HTML(build_tools_gallery()) with gr.TabItem("✍️ Text Generation"): with gr.Row(): with gr.Column(): model_select = gr.Dropdown( choices=MODELS["text-generation"], value=MODELS["text-generation"][0], label="Model" ) prompt_input = gr.Textbox( label="Prompt", placeholder="Enter your prompt here...", lines=4 ) max_tokens = gr.Slider(32, 4096, value=512, label="Max New Tokens") temperature = gr.Slider(0.1, 2.0, value=0.7, label="Temperature") generate_btn = gr.Button("Generate", variant="primary") with gr.Column(): output = gr.Textbox(label="Output", lines=10) generate_btn.click( fn=lambda: "Feature requires HF Inference API client", inputs=[], outputs=output ) with gr.TabItem("📝 Summarization"): with gr.Row(): with gr.Column(): summ_model = gr.Dropdown( choices=MODELS["summarization"], value=MODELS["summarization"][0], label="Model" ) summ_input = gr.Textbox( label="Input Text", placeholder="Paste text to summarize...", lines=6 ) summ_btn = gr.Button("Summarize", variant="primary") with gr.Column(): summ_output = gr.Textbox(label="Summary", lines=6) summ_btn.click( fn=lambda: "Feature requires HF Inference API client", inputs=[], outputs=summ_output ) with gr.TabItem("🌐 Translation"): gr.Markdown("Translation tools using Helsinki-NLP and mBART models") gr.Examples( examples=[["Hello, how are you?", "en", "zh"]], inputs=[], label="Example translations" ) with gr.TabItem("❓ QA"): gr.Markdown("Question Answering using RoBERTa-based models") with gr.TabItem("💭 Sentiment"): gr.Markdown("Sentiment Analysis with DistilBERT") with gr.TabItem("💻 Code"): gr.Markdown("Code generation powered by DeepSeek Coder") gr.Markdown(""" --- ### 🔗 Hermès Resources | Resource | Link | |---------|------| | Collection | [hermes-agent-resources](https://huggingface.co/collections/cntalk/hermes-agent-resources-69f9c5b62fb70b0bbb6ae0b1) | | AI Toolkit Space | [hello-hermes](https://huggingface.co/spaces/cntalk/hello-hermes) | | Examples Dataset | [hermes-examples](https://huggingface.co/datasets/cntalk/hermes-examples) | | Agent Prompts | [agent-prompts](https://huggingface.co/datasets/cntalk/agent-prompts) | | Skills Dataset | [hermes-skills](https://huggingface.co/datasets/cntalk/hermes-skills) | Built with ❤️ for the Hermès AI Agent system """) demo.launch()