{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-open-webui","slug":"open-webui","name":"Open WebUI","type":"repo","url":"https://github.com/open-webui/open-webui","page_url":"https://unfragile.ai/open-webui","categories":["app-builders"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-open-webui__cap_0","uri":"capability://tool.use.integration.multi.model.llm.orchestration.with.unified.interface","name":"multi-model llm orchestration with unified interface","description":"Provides a single web UI that routes requests to multiple LLM backends (OpenAI, Anthropic, Ollama, LM Studio, etc.) through a pluggable provider abstraction layer. Implements model registry pattern with dynamic provider detection, allowing users to swap or add backends without code changes. Supports streaming responses, token counting, and cost tracking across heterogeneous model families.","intents":["I want to compare responses from multiple LLM providers without switching interfaces","I need to run local models alongside cloud APIs for cost optimization","I want to add a new LLM provider without modifying core platform code"],"best_for":["teams evaluating multiple LLM providers before committing to one","organizations with hybrid cloud/on-premise LLM deployments","developers building LLM applications who want provider portability"],"limitations":["Provider-specific features (vision, function calling) require adapter implementation per provider","No automatic request routing or load balancing across providers — manual selection required","Token counting accuracy varies by provider; some providers lack native token APIs"],"requires":["Docker or Python 3.9+ for self-hosting","API keys for cloud providers (OpenAI, Anthropic, etc.) or local model server (Ollama, LM Studio)","Minimum 4GB RAM for local model inference"],"input_types":["text prompts","multi-turn conversation history","system prompts/instructions"],"output_types":["text responses","streaming token streams","token usage metadata"],"categories":["tool-use-integration","llm-orchestration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-open-webui__cap_1","uri":"capability://automation.workflow.self.hosted.web.interface.with.offline.first.architecture","name":"self-hosted web interface with offline-first architecture","description":"Delivers a full-featured web UI (React/TypeScript frontend) that runs entirely on user infrastructure without external dependencies or cloud callbacks. Uses service workers and local storage for offline capability, caching conversation history and model metadata locally. Frontend communicates with backend via REST/WebSocket APIs, enabling deployment on any Docker-compatible environment or bare metal.","intents":["I need to run an AI chat interface on my own servers for data privacy compliance","I want to deploy an LLM UI without internet connectivity or cloud dependencies","I need to customize the UI and backend for my organization's specific workflows"],"best_for":["enterprises with strict data residency requirements","organizations in air-gapped or low-connectivity environments","teams building internal AI tools with custom branding"],"limitations":["Offline mode limited to cached models and conversations; new model downloads require internet","No built-in multi-user authentication — requires reverse proxy (nginx, Caddy) for production security","UI customization requires frontend code modification; no low-code theming system"],"requires":["Docker Engine 20.10+ or Python 3.9+ runtime","Minimum 2GB RAM for UI server, additional RAM per concurrent model","Reverse proxy (nginx, Caddy, Traefik) for production HTTPS and auth"],"input_types":["text prompts","file uploads (documents, images)"],"output_types":["HTML/CSS/JavaScript UI","JSON API responses","WebSocket event streams"],"categories":["automation-workflow","self-hosted-infrastructure"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-open-webui__cap_10","uri":"capability://search.retrieval.web.search.integration.with.context.injection","name":"web search integration with context injection","description":"Integrates web search capabilities (via SearXNG, Google Search API, or Brave Search) to augment LLM responses with current information. Implements automatic search triggering based on query analysis (detects questions requiring real-time data) or manual user-initiated search. Search results are ranked by relevance and automatically injected into LLM context as augmented prompts. Supports search result caching to avoid redundant queries.","intents":["I want my LLM to answer questions about current events or recent information","I need to ground LLM responses in web sources for fact-checking","I want to combine web search with local knowledge bases for comprehensive answers"],"best_for":["users asking time-sensitive questions (news, stock prices, weather)","teams building fact-checked AI assistants","organizations combining web search with proprietary knowledge bases"],"limitations":["Search result quality depends on search engine; no ranking or filtering of unreliable sources","Automatic search triggering is heuristic-based; may miss relevant queries or trigger unnecessary searches","Search results are text-only; no image or video results","Search latency (2-5 seconds per query) adds overhead to response generation"],"requires":["Web search provider (SearXNG instance, Google Search API key, or Brave Search API key)","Network access to search provider","Cache storage for search results (optional, for performance)"],"input_types":["user queries","search provider configuration","search result ranking preferences"],"output_types":["web search results with URLs and snippets","augmented LLM prompts with search context","LLM responses grounded in web sources"],"categories":["search-retrieval","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-open-webui__cap_11","uri":"capability://image.visual.image.generation.and.vision.model.integration","name":"image generation and vision model integration","description":"Integrates image generation models (Stable Diffusion, DALL-E, Midjourney) and vision models (GPT-4V, Claude Vision, LLaVA) into the chat interface. Supports image generation from text prompts with model-specific parameters (guidance scale, steps, sampler). Vision models can analyze uploaded images and answer questions about them. Generated images are stored locally and can be referenced in subsequent prompts.","intents":["I want to generate images from text descriptions within the chat interface","I need to analyze images using vision models without external tools","I want to combine image generation and analysis in a single workflow"],"best_for":["creative teams using AI for design and content creation","organizations analyzing images for document processing or quality control","users building multimodal AI workflows"],"limitations":["Image generation quality depends on model; local models (Stable Diffusion) produce lower quality than cloud models (DALL-E)","Vision model support is limited to models with vision capabilities; not all LLMs support image analysis","Image storage can consume significant disk space; no automatic cleanup or archival","Generated images are not automatically tagged or searchable; manual organization required"],"requires":["Image generation model (Stable Diffusion local or API key for DALL-E/Midjourney)","Vision-capable LLM (GPT-4V, Claude 3 Vision, or local LLaVA)","GPU for local image generation (8GB+ VRAM recommended)","Disk space for image storage (100MB+ for typical usage)"],"input_types":["text prompts for image generation","image files for vision analysis","generation parameters (guidance scale, steps, etc.)"],"output_types":["generated images (PNG, JPEG)","vision model analysis and descriptions","image metadata and generation parameters"],"categories":["image-visual","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-open-webui__cap_12","uri":"capability://text.generation.language.prompt.template.library.and.variable.substitution","name":"prompt template library and variable substitution","description":"Provides a library of reusable prompt templates with variable placeholders and conditional logic. Templates support Jinja2-style variable substitution, allowing dynamic prompt generation based on user input or conversation context. Includes built-in templates for common tasks (summarization, translation, code review) and supports custom template creation. Templates can be organized into categories and shared across users.","intents":["I want to reuse effective prompts without retyping them each time","I need to create parameterized prompts that adapt to different inputs","I want to share prompt templates with my team for consistency"],"best_for":["teams standardizing on effective prompts for recurring tasks","organizations building prompt libraries for specific domains","users optimizing prompt engineering through template reuse"],"limitations":["Template syntax (Jinja2) requires learning; non-technical users may struggle with complex templates","No version control for templates; changes overwrite previous versions","Template sharing is at user level; no workspace or organization-level template management","No A/B testing or analytics on template effectiveness"],"requires":["Template storage (database or file system)","Jinja2 template engine for variable substitution","User interface for template creation and management"],"input_types":["template definitions (text with Jinja2 syntax)","variable values","user input for template parameters"],"output_types":["rendered prompts with substituted variables","template library listings","LLM responses from templated prompts"],"categories":["text-generation-language","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-open-webui__cap_13","uri":"capability://planning.reasoning.model.comparison.and.a.b.testing.framework","name":"model comparison and a/b testing framework","description":"Enables side-by-side comparison of responses from multiple models on the same prompt. Implements A/B testing infrastructure to systematically compare model outputs with user ratings and feedback. Stores comparison results for analysis and model selection optimization. Supports blind testing (user doesn't know which model generated which response) to reduce bias. Generates comparison reports with metrics (response quality, speed, cost).","intents":["I want to compare how different models respond to the same prompt","I need to evaluate which model is best for my specific use case","I want to gather user feedback on model quality for informed model selection"],"best_for":["teams evaluating multiple LLM providers before committing","organizations optimizing model selection for cost and quality","researchers studying model behavior differences"],"limitations":["A/B testing requires manual user feedback; no automatic quality metrics","Comparison results are subjective and context-dependent; may not generalize","Cost comparison is approximate; actual costs depend on token counting accuracy","No statistical significance testing; sample sizes may be too small for reliable conclusions"],"requires":["Multiple LLM providers configured","User interface for side-by-side comparison","Feedback collection mechanism","Storage for comparison results and ratings"],"input_types":["prompts for comparison","model selection","user ratings and feedback"],"output_types":["side-by-side model responses","comparison metrics (speed, cost, quality)","user feedback and ratings","comparison reports and analysis"],"categories":["planning-reasoning","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-open-webui__cap_2","uri":"capability://memory.knowledge.rag.enabled.document.ingestion.and.retrieval","name":"rag-enabled document ingestion and retrieval","description":"Integrates vector embedding and semantic search capabilities to enable retrieval-augmented generation (RAG) workflows. Supports document upload (PDF, TXT, Markdown), automatic chunking with configurable overlap, and embedding generation via local or remote embedding models. Uses vector database abstraction (supports Chroma, Weaviate, Milvus) to store and retrieve semantically similar chunks, injecting relevant context into LLM prompts automatically.","intents":["I want to chat with my company's internal documents without sending them to external APIs","I need to ground LLM responses in specific documents to reduce hallucinations","I want to build a knowledge base that multiple users can query"],"best_for":["enterprises with proprietary documents requiring offline processing","teams building internal knowledge bases or documentation chatbots","organizations needing audit trails of which documents influenced responses"],"limitations":["Embedding quality depends on model choice; smaller local models (e.g., all-MiniLM) have lower semantic accuracy than cloud models","No built-in document preprocessing for complex PDFs with tables, images, or multi-column layouts","Vector database selection is fixed at deployment time; switching databases requires data re-embedding","Chunk retrieval is purely semantic; no keyword filtering or metadata-based pre-filtering"],"requires":["Embedding model (local: sentence-transformers, or remote: OpenAI, Hugging Face)","Vector database (Chroma, Weaviate, Milvus, or compatible)","Minimum 2GB additional RAM for embedding model inference","Document files in supported formats (PDF, TXT, Markdown, DOCX)"],"input_types":["PDF documents","plain text files","Markdown files","DOCX files","text prompts with document context"],"output_types":["LLM responses augmented with document context","retrieved document chunks with relevance scores","structured metadata about source documents"],"categories":["memory-knowledge","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-open-webui__cap_3","uri":"capability://memory.knowledge.conversation.memory.and.context.management","name":"conversation memory and context management","description":"Maintains multi-turn conversation history with automatic context windowing and optional summarization. Stores conversations in local database (SQLite by default) with full-text search indexing. Implements sliding context window to manage token limits — automatically truncates or summarizes older messages when approaching model token limits. Supports conversation branching and editing of past messages to explore alternative response paths.","intents":["I want to maintain long conversations without losing context or hitting token limits","I need to search across all my past conversations to find previous answers","I want to edit a message in the middle of a conversation and regenerate responses"],"best_for":["users with long-running research or analysis sessions","teams using LLMs for iterative problem-solving","organizations needing conversation audit trails for compliance"],"limitations":["Context windowing is reactive (truncates when limit approached) rather than proactive; no predictive token counting","Conversation branching creates separate conversation trees; no merge functionality","Full-text search is basic SQL LIKE matching; no semantic search across conversation content","Summarization requires explicit user action; no automatic background summarization"],"requires":["SQLite database (included by default) or PostgreSQL for multi-user deployments","Minimum 100MB storage per 10,000 conversations","Token counter compatible with selected LLM (tiktoken for OpenAI, custom for others)"],"input_types":["text messages","conversation history metadata"],"output_types":["conversation transcripts","search results across conversations","context summaries","branched conversation trees"],"categories":["memory-knowledge","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-open-webui__cap_4","uri":"capability://tool.use.integration.function.calling.and.tool.integration.framework","name":"function calling and tool integration framework","description":"Provides a schema-based function registry that maps LLM function-calling outputs to executable Python functions or HTTP endpoints. Supports OpenAI-style function calling, Anthropic tool_use, and custom tool definitions via JSON schema. Implements automatic parameter validation, error handling with retry logic, and response injection back into conversation context. Tools can be chained sequentially or in parallel depending on LLM capabilities.","intents":["I want my LLM to call APIs or execute code based on its reasoning","I need to build an agent that can use multiple tools to solve problems","I want to extend the LLM with custom functions without modifying core code"],"best_for":["developers building autonomous agents with external tool access","teams integrating LLMs with existing APIs or microservices","organizations needing controlled, auditable LLM actions"],"limitations":["Tool execution is synchronous; no built-in support for long-running async operations","No automatic tool selection or routing — LLM must explicitly choose tools; requires careful prompt engineering","Error handling is basic retry logic; no sophisticated fallback or recovery strategies","Tool definitions must be manually maintained in sync with actual function signatures"],"requires":["Python 3.9+ for function execution","LLM with function-calling support (OpenAI, Anthropic, or compatible)","JSON schema definitions for each tool","Network access for HTTP endpoint tools"],"input_types":["JSON schema tool definitions","Python function definitions","HTTP endpoint specifications","LLM function-calling requests"],"output_types":["function execution results","error messages with retry metadata","tool call logs and audit trails"],"categories":["tool-use-integration","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-open-webui__cap_5","uri":"capability://code.generation.editing.model.fine.tuning.and.adaptation.pipeline","name":"model fine-tuning and adaptation pipeline","description":"Supports fine-tuning of local models using conversation data or custom datasets. Implements dataset preparation (conversation export to training format), parameter-efficient fine-tuning via LoRA (Low-Rank Adaptation), and model merging. Fine-tuned models are saved locally and can be registered as new model variants in the provider registry. Includes evaluation metrics (perplexity, BLEU) for fine-tuning quality assessment.","intents":["I want to fine-tune a local model on my domain-specific conversations","I need to create specialized model variants for different use cases","I want to improve model performance on my specific tasks without cloud APIs"],"best_for":["organizations with large conversation datasets wanting to improve model performance","teams building specialized models for niche domains","researchers experimenting with model adaptation techniques"],"limitations":["Fine-tuning requires significant GPU memory (24GB+ for most models); CPU-only fine-tuning is impractically slow","LoRA adaptation is limited to specific model architectures; not all models support it","No automatic hyperparameter tuning; users must manually configure learning rate, batch size, epochs","Fine-tuned models are not automatically versioned or rolled back; manual model management required"],"requires":["NVIDIA GPU with 24GB+ VRAM (or equivalent) for practical fine-tuning","PyTorch and transformers libraries","Training dataset in conversation or instruction-following format","Minimum 1-2 hours per fine-tuning run depending on dataset size"],"input_types":["conversation history exports","instruction-following datasets (JSON format)","base model weights"],"output_types":["fine-tuned model weights","LoRA adapters","evaluation metrics (perplexity, BLEU scores)","merged model artifacts"],"categories":["code-generation-editing","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-open-webui__cap_6","uri":"capability://tool.use.integration.plugin.and.extension.system.with.custom.actions","name":"plugin and extension system with custom actions","description":"Provides a plugin architecture allowing developers to extend Open WebUI with custom actions, filters, and middleware. Plugins are JavaScript/TypeScript modules that hook into request/response pipelines, conversation events, and UI rendering. Supports plugin marketplace for community-contributed extensions. Each plugin declares dependencies, permissions, and configuration schema, enabling sandboxed execution and permission-based access control.","intents":["I want to add custom behavior to Open WebUI without forking the codebase","I need to integrate Open WebUI with my organization's internal tools","I want to create reusable extensions that other teams can use"],"best_for":["developers building custom LLM workflows on top of Open WebUI","organizations with unique integration requirements","community contributors extending platform capabilities"],"limitations":["Plugin sandboxing is limited; plugins have access to full conversation context and can modify responses","No built-in plugin versioning or dependency management; conflicts must be resolved manually","Plugin performance is not isolated; slow plugins degrade overall platform performance","Plugin marketplace has no formal security review process; users must audit plugins before installation"],"requires":["JavaScript/TypeScript knowledge for plugin development","Node.js 18+ for plugin build tooling","Plugin manifest (JSON) declaring dependencies and permissions","Access to Open WebUI plugin API documentation"],"input_types":["plugin source code (JavaScript/TypeScript)","plugin manifest (JSON schema)","conversation events and metadata"],"output_types":["modified conversation responses","custom UI components","event logs and metrics","plugin execution results"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-open-webui__cap_7","uri":"capability://safety.moderation.multi.user.management.with.role.based.access.control","name":"multi-user management with role-based access control","description":"Supports multi-user deployments with user accounts, authentication, and role-based access control (RBAC). Implements user roles (admin, user, guest) with granular permissions (model access, conversation sharing, plugin installation). Uses JWT tokens for stateless authentication and session management. Supports LDAP/Active Directory integration for enterprise deployments. Each user has isolated conversation history and model preferences.","intents":["I want to deploy Open WebUI for my team with different permission levels","I need to integrate Open WebUI with my organization's identity provider","I want to control which models and features each user can access"],"best_for":["enterprises deploying Open WebUI for multiple users","organizations with existing LDAP/AD infrastructure","teams needing fine-grained access control over models and features"],"limitations":["RBAC is role-based, not attribute-based; no fine-grained per-resource permissions","No built-in audit logging for user actions; requires external logging infrastructure","Session management is stateless (JWT) but doesn't support real-time session revocation","User isolation is at conversation level; no workspace or project-level isolation"],"requires":["User database (SQLite, PostgreSQL, or LDAP server)","JWT secret key for token signing","LDAP server (optional, for enterprise authentication)","HTTPS for secure token transmission"],"input_types":["user credentials (username/password or LDAP)","role definitions (JSON)","permission policies"],"output_types":["JWT authentication tokens","user profiles with role metadata","access control decisions","audit logs (if configured)"],"categories":["safety-moderation","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-open-webui__cap_8","uri":"capability://automation.workflow.model.parameter.tuning.and.inference.optimization","name":"model parameter tuning and inference optimization","description":"Provides UI controls for adjusting LLM inference parameters (temperature, top_p, top_k, max_tokens, repetition_penalty) with real-time preview of parameter effects. Implements model-specific parameter presets (e.g., 'creative', 'precise', 'balanced') that optimize for different use cases. Supports quantization profiles for local models to trade off quality for speed/memory. Includes token counting and cost estimation for cloud models.","intents":["I want to tune model parameters for different tasks without code","I need to optimize inference speed for local models on limited hardware","I want to estimate costs before running expensive cloud model queries"],"best_for":["non-technical users experimenting with model behavior","teams optimizing inference performance on resource-constrained hardware","organizations managing cloud API costs"],"limitations":["Parameter effects are model-specific; presets may not transfer across model families","No automatic parameter optimization; users must manually tune through trial and error","Quantization profiles are fixed at model load time; switching profiles requires model reload","Cost estimation is approximate; actual costs depend on token counting accuracy per provider"],"requires":["LLM with parameter support (most modern models)","Token counter for cost estimation (tiktoken for OpenAI, custom for others)","Model metadata defining supported parameters and ranges"],"input_types":["parameter values (temperature, top_p, etc.)","quantization profiles","model selection"],"output_types":["adjusted model responses","token usage estimates","cost projections","parameter preset definitions"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-open-webui__cap_9","uri":"capability://data.processing.analysis.conversation.export.and.format.conversion","name":"conversation export and format conversion","description":"Supports exporting conversations in multiple formats (JSON, Markdown, PDF, HTML) with configurable content inclusion (messages, metadata, timestamps, model info). Implements format converters that transform conversation structure into target format, preserving formatting and metadata. Supports batch export of multiple conversations. Exported conversations can be re-imported to restore state or shared with external systems.","intents":["I want to export conversations for documentation or knowledge base creation","I need to share conversations with team members in a readable format","I want to backup conversations or migrate them to another system"],"best_for":["teams documenting AI-assisted work processes","organizations archiving conversations for compliance","users migrating between LLM platforms"],"limitations":["PDF export loses interactive elements (code syntax highlighting, links); suitable for archival only","Format converters don't preserve all metadata (embedding vectors, tool call logs)","Batch export can be slow for large conversation sets; no background job support","Re-import doesn't restore model state; conversations are read-only after import"],"requires":["Conversation history in Open WebUI database","PDF export requires wkhtmltopdf or similar HTML-to-PDF converter","Sufficient disk space for exported files"],"input_types":["conversation IDs or filters","export format specification","content inclusion options"],"output_types":["JSON files with full conversation metadata","Markdown files with formatted text","PDF documents","HTML files with styling"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":28,"verified":false,"data_access_risk":"high","permissions":["Docker or Python 3.9+ for self-hosting","API keys for cloud providers (OpenAI, Anthropic, etc.) or local model server (Ollama, LM Studio)","Minimum 4GB RAM for local model inference","Docker Engine 20.10+ or Python 3.9+ runtime","Minimum 2GB RAM for UI server, additional RAM per concurrent model","Reverse proxy (nginx, Caddy, Traefik) for production HTTPS and auth","Web search provider (SearXNG instance, Google Search API key, or Brave Search API key)","Network access to search provider","Cache storage for search results (optional, for performance)","Image generation model (Stable Diffusion local or API key for DALL-E/Midjourney)"],"failure_modes":["Provider-specific features (vision, function calling) require adapter implementation per provider","No automatic request routing or load balancing across providers — manual selection required","Token counting accuracy varies by provider; some providers lack native token APIs","Offline mode limited to cached models and conversations; new model downloads require internet","No built-in multi-user authentication — requires reverse proxy (nginx, Caddy) for production security","UI customization requires frontend code modification; no low-code theming system","Search result quality depends on search engine; no ranking or filtering of unreliable sources","Automatic search triggering is heuristic-based; may miss relevant queries or trigger unnecessary searches","Search results are text-only; no image or video results","Search latency (2-5 seconds per query) adds overhead to response generation","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.5,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.3,"quality":0.2,"ecosystem":0.15,"match_graph":0.3,"freshness":0.05}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:03.579Z","last_scraped_at":"2026-05-03T14:00:20.516Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=open-webui","compare_url":"https://unfragile.ai/compare?artifact=open-webui"}},"signature":"ZBQ6AVTKnaYP2FzjHoklxmcPZAfGrTIAzYk6nk0d/cv1Kl/Mp5E9JLJ3sw3vT9flxCEkvvqod+Zu++mTI4xrBg==","signedAt":"2026-06-23T16:06:16.483Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/open-webui","artifact":"https://unfragile.ai/open-webui","verify":"https://unfragile.ai/api/v1/verify?slug=open-webui","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}