{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-private-gpt","slug":"private-gpt","name":"Private GPT","type":"product","url":"https://www.privategpt.io/","page_url":"https://unfragile.ai/private-gpt","categories":["app-builders"],"tags":[],"pricing":{"model":"unknown","free":false,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-private-gpt__cap_0","uri":"capability://memory.knowledge.local.document.embedding.and.indexing","name":"local-document-embedding-and-indexing","description":"Converts uploaded documents into vector embeddings using local language models, storing them in a local vector database without sending data to external servers. Uses retrieval-augmented generation (RAG) architecture where documents are chunked, embedded via local transformers, and indexed for semantic search. The entire embedding pipeline runs on-device, enabling privacy-preserving document understanding without cloud dependencies.","intents":["I want to upload sensitive documents and have them indexed locally without exposing content to third-party APIs","I need to build a knowledge base from proprietary documents that stays entirely within my infrastructure","I want to enable semantic search over my document collection using local compute resources"],"best_for":["enterprises with strict data residency requirements","teams handling confidential or regulated documents (healthcare, legal, financial)","developers building privacy-first document QA systems"],"limitations":["embedding quality depends on local model size; larger models require more VRAM (8GB+ for production-grade embeddings)","indexing speed is slower than cloud services; 1000-page document may take 2-5 minutes on consumer hardware","vector database is limited to local storage; scaling to billions of embeddings requires external vector DB integration","no built-in multi-user access control or document versioning in base implementation"],"requires":["Python 3.8+","4GB+ RAM minimum (8GB+ recommended for production)","Local storage space for vector index (typically 10-50MB per 1000 documents depending on embedding model)","GPU optional but recommended for faster embedding (CUDA 11.8+ or Metal for Apple Silicon)"],"input_types":["PDF","DOCX","TXT","MD","CSV"],"output_types":["vector embeddings (float arrays)","indexed document chunks","semantic search results with relevance scores"],"categories":["memory-knowledge","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-private-gpt__cap_1","uri":"capability://text.generation.language.private.document.qa.with.local.llm","name":"private-document-qa-with-local-llm","description":"Answers questions about uploaded documents using a locally-running large language model, combining retrieved document chunks with the LLM prompt to generate contextual answers. Implements a retrieval-augmented generation (RAG) loop where user queries are embedded, matched against indexed documents, and the top-K relevant chunks are injected into the LLM context window before generation. No query or document content is sent to external LLM APIs.","intents":["I want to ask questions about my documents and get answers without sending my data to OpenAI or other cloud LLM providers","I need to build a chatbot over proprietary documents that runs entirely on-premises","I want to control which LLM model is used for document understanding (e.g., use a smaller, faster model for latency-sensitive applications)"],"best_for":["organizations with strict data governance policies prohibiting cloud LLM usage","teams building internal knowledge assistants for sensitive domains","developers prototyping document QA without incurring per-query LLM costs"],"limitations":["answer quality is constrained by local LLM capability; smaller models (7B parameters) may produce less coherent or factually accurate responses than GPT-4","inference latency is 5-30 seconds per query depending on model size and hardware, vs <1 second for cloud APIs","context window is limited by model architecture (typically 2K-4K tokens for smaller models, 8K+ for larger ones); very long documents may exceed context","no built-in fact-checking or hallucination detection; requires external validation for high-stakes use cases"],"requires":["Python 3.8+","8GB+ RAM for 7B-parameter models, 16GB+ for 13B+ models","GPU with 6GB+ VRAM for acceptable inference speed (NVIDIA CUDA 11.8+ or Apple Metal)","Local LLM binary or GGML-quantized model file (e.g., Mistral, Llama 2, or similar)"],"input_types":["natural language question (text)","document corpus (PDF, DOCX, TXT, etc.)"],"output_types":["natural language answer (text)","source document references with chunk locations","confidence/relevance scores"],"categories":["text-generation-language","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-private-gpt__cap_10","uri":"capability://automation.workflow.export.and.sharing.of.qa.results","name":"export-and-sharing-of-qa-results","description":"Exports QA results (questions, answers, source documents) in multiple formats (JSON, CSV, Markdown, PDF) for sharing, archival, or integration with other tools. Supports batch export of entire chat sessions or individual Q&A pairs. Includes options for including/excluding source document references, metadata, and confidence scores in exports.","intents":["I want to export a chat session as a report for sharing with colleagues or stakeholders","I need to save QA results in a format compatible with other tools (Excel, Markdown, JSON)","I want to create an audit trail of questions asked and answers provided for compliance purposes"],"best_for":["teams needing to share QA results with non-technical stakeholders","compliance-heavy organizations requiring audit trails and documentation","users integrating Private GPT results with other tools or workflows"],"limitations":["export formats have limited formatting options; complex layouts or styling may not be preserved","large exports (1000+ Q&A pairs) may be slow or memory-intensive","no built-in anonymization or redaction; sensitive information in answers is exported as-is","PDF export quality depends on content complexity; tables and code blocks may not render perfectly","no built-in encryption or access control for exported files; users must manage file security manually"],"requires":["Python 3.8+","export format libraries (json, csv, markdown, reportlab for PDF)","write permissions to output directory"],"input_types":["chat session or individual Q&A pairs","export format selection (JSON, CSV, Markdown, PDF)","export options (include metadata, source references, confidence scores)"],"output_types":["exported file in selected format","export metadata (creation date, document count, format version)"],"categories":["automation-workflow","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-private-gpt__cap_11","uri":"capability://tool.use.integration.api.and.programmatic.access","name":"api-and-programmatic-access","description":"Exposes Private GPT functionality through a REST API or Python SDK, enabling developers to integrate document QA, semantic search, and embedding capabilities into custom applications. Supports authentication (API keys), rate limiting, and request/response serialization. Allows programmatic control over document indexing, querying, and model configuration without using the GUI.","intents":["I want to build a custom application that uses Private GPT's document QA capabilities without using the web interface","I need to integrate Private GPT with existing tools or workflows via API calls","I want to automate document indexing and querying as part of a larger pipeline"],"best_for":["developers building custom applications on top of Private GPT","teams integrating Private GPT with existing enterprise systems","organizations automating document processing workflows"],"limitations":["API documentation may be incomplete or outdated; requires reading source code or experimenting","no built-in API versioning; breaking changes may affect existing integrations","rate limiting may be too restrictive for high-throughput applications","authentication is basic (API keys); no OAuth or advanced security features","API response times depend on underlying LLM inference; no guaranteed SLAs"],"requires":["Python 3.8+ (for SDK) or any HTTP client (for REST API)","API key or authentication token","Private GPT instance running and accessible"],"input_types":["API requests (JSON payloads with questions, documents, parameters)","authentication credentials (API key)"],"output_types":["JSON responses with answers, source references, metadata","status codes and error messages"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-private-gpt__cap_2","uri":"capability://search.retrieval.multi.document.semantic.search","name":"multi-document-semantic-search","description":"Searches across multiple documents using semantic similarity rather than keyword matching, embedding the user's search query and comparing it against indexed document chunks to return contextually relevant results. Uses cosine similarity or other distance metrics to rank chunks by relevance, enabling users to find information even when exact keywords don't match. Supports filtering by document metadata (filename, date, tags) before semantic ranking.","intents":["I want to find relevant information across a large document collection without knowing exact keywords or phrases","I need to search for conceptually similar content (e.g., 'payment failures' should match 'transaction errors' and 'billing issues')","I want to narrow search results by document type or date range before semantic ranking"],"best_for":["knowledge workers managing large document repositories (100+ documents)","legal/compliance teams searching contracts and regulations for related concepts","researchers finding relevant papers or reports by topic rather than exact terms"],"limitations":["semantic search quality depends on embedding model; domain-specific jargon may not be well-represented in general-purpose embeddings","search latency increases with corpus size; 10,000+ documents may require 1-5 seconds per query without indexing optimization","no built-in ranking by recency or popularity; results are purely similarity-based unless metadata filters are applied","false positives possible if semantically similar but contextually unrelated chunks exist (e.g., 'apple' the fruit vs 'Apple' the company)"],"requires":["Python 3.8+","indexed document corpus (created via local-document-embedding-and-indexing capability)","vector database or in-memory index (SQLite with vector extension, FAISS, or similar)","minimum 2GB RAM for indexes of 10,000+ documents"],"input_types":["natural language search query (text)","optional metadata filters (document name, date range, tags)"],"output_types":["ranked list of document chunks with relevance scores","source document references and chunk positions","highlighted matching text snippets"],"categories":["search-retrieval","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-private-gpt__cap_3","uri":"capability://data.processing.analysis.document.upload.and.format.conversion","name":"document-upload-and-format-conversion","description":"Accepts documents in multiple formats (PDF, DOCX, TXT, MD, CSV) and converts them to a unified text representation for embedding and indexing. Uses format-specific parsers (PyPDF2 for PDFs, python-docx for DOCX, CSV readers) to extract text while preserving document structure metadata (page numbers, section headers, table information). Handles OCR for scanned PDFs if enabled, converting image-based text to machine-readable format.","intents":["I want to upload documents in various formats without manually converting them to plain text first","I need to preserve document structure (page numbers, sections) so I can reference exact locations in search results","I want to extract text from scanned PDFs that contain images rather than selectable text"],"best_for":["users with heterogeneous document collections (mixed PDF, Word, spreadsheet formats)","teams managing legacy documents in various formats","organizations needing to preserve document metadata for compliance or audit trails"],"limitations":["OCR quality depends on image resolution and text clarity; scanned documents with poor quality may have 10-20% character error rates","complex PDF layouts (multi-column, embedded images, forms) may not parse perfectly; manual cleanup may be required","DOCX parsing may lose formatting information (colors, fonts, embedded objects); only text content is extracted","CSV parsing assumes tabular structure; nested or hierarchical data may not be handled correctly","OCR adds 2-5 seconds per page for scanned documents, significantly increasing upload time"],"requires":["Python 3.8+","PyPDF2 or pdfplumber for PDF parsing","python-docx for DOCX support","Tesseract OCR engine (optional, for scanned PDF support)","50MB+ disk space for OCR models if enabled"],"input_types":["PDF (text-based and scanned/image-based)","DOCX","TXT","MD","CSV"],"output_types":["extracted plain text","document metadata (filename, page count, creation date)","chunk boundaries with source references","OCR confidence scores (if OCR enabled)"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-private-gpt__cap_4","uri":"capability://data.processing.analysis.document.chunking.with.overlap","name":"document-chunking-with-overlap","description":"Splits documents into overlapping text chunks optimized for embedding and LLM context windows, using configurable chunk size (typically 256-1024 tokens) and overlap percentage (10-50%) to preserve context across chunk boundaries. Implements smart chunking that respects document structure (paragraph breaks, section headers) rather than naive fixed-size splitting, ensuring semantic coherence within chunks. Metadata (source document, chunk index, page number) is attached to each chunk for source attribution.","intents":["I want to split my documents into pieces that fit within LLM context windows without losing semantic meaning","I need to ensure that important information isn't split across chunk boundaries, making it invisible to semantic search","I want to preserve document structure and source references so I can cite exact locations in QA responses"],"best_for":["RAG system builders optimizing retrieval quality and LLM context efficiency","teams tuning embedding quality by adjusting chunk size and overlap parameters","applications requiring precise source attribution and document traceability"],"limitations":["overlap increases vector database size by 10-50% depending on overlap percentage; storage overhead must be considered","optimal chunk size varies by use case (legal documents may need larger chunks than technical specs); requires experimentation","smart chunking based on structure is heuristic-based and may fail on malformed documents or unusual layouts","chunk boundaries may still split important information if document structure is not well-defined (e.g., tables spanning multiple pages)"],"requires":["Python 3.8+","tokenizer library (tiktoken for OpenAI models, or model-specific tokenizers)","document text extracted via document-upload-and-format-conversion capability"],"input_types":["extracted document text","document metadata (source, page numbers)","chunking parameters (chunk size in tokens, overlap percentage)"],"output_types":["list of text chunks with metadata","chunk-to-source mappings (document name, page number, character offset)","chunk statistics (token count, overlap coverage)"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-private-gpt__cap_5","uri":"capability://memory.knowledge.local.vector.database.persistence","name":"local-vector-database-persistence","description":"Stores vector embeddings and document metadata in a local vector database (e.g., FAISS, Chroma, or SQLite with vector extensions) that persists across sessions, enabling users to build and reuse document indexes without re-embedding on each startup. Supports incremental indexing where new documents are added to existing indexes without rebuilding from scratch. Provides basic CRUD operations (create, read, update, delete) for managing indexed documents.","intents":["I want to build a document index once and reuse it across multiple QA sessions without re-embedding every time","I need to add new documents to an existing index incrementally without reprocessing old documents","I want to remove or update documents in my index while preserving the rest of the indexed content"],"best_for":["users with stable document collections that don't change frequently","teams building persistent knowledge bases that are accessed repeatedly","applications where embedding cost (time/compute) is a bottleneck and caching is critical"],"limitations":["local vector databases have limited scalability; FAISS and Chroma are optimized for <10M vectors; larger corpora require external vector DB (Weaviate, Pinecone)","no built-in backup or replication; data loss risk if local storage is corrupted or deleted","no multi-user access control or concurrent write support; single-user or read-only sharing only","index updates may require re-indexing portions of the database depending on the vector DB implementation","no built-in versioning; updating documents overwrites previous versions without history"],"requires":["Python 3.8+","local storage (100MB-10GB depending on corpus size)","FAISS, Chroma, or similar local vector DB library","write permissions to local filesystem"],"input_types":["vector embeddings (float arrays)","document metadata (name, date, tags)","document chunks with source references"],"output_types":["persisted vector index file","index metadata (document count, embedding model, creation date)","query results from stored index"],"categories":["memory-knowledge","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-private-gpt__cap_6","uri":"capability://text.generation.language.configurable.local.llm.integration","name":"configurable-local-llm-integration","description":"Supports integration with multiple local LLM providers (Ollama, LM Studio, vLLM, llama.cpp) through a unified interface, allowing users to swap LLM models without changing application code. Handles model loading, inference parameter configuration (temperature, top-p, max tokens), and prompt formatting for different model architectures (Llama 2, Mistral, Phi, etc.). Supports quantized models (GGML, GPTQ) for reduced memory footprint and faster inference.","intents":["I want to experiment with different local LLM models without rewriting my application code","I need to use a smaller, faster model for latency-sensitive applications but switch to a larger model for higher quality when needed","I want to run quantized models on consumer hardware to reduce memory requirements and inference latency"],"best_for":["developers prototyping LLM applications and comparing model performance","teams optimizing for latency or resource constraints by testing different model sizes","organizations evaluating open-source LLMs before committing to a specific model"],"limitations":["model quality varies significantly; smaller models (7B) may produce lower-quality responses than larger ones (70B), but require 8GB vs 40GB+ VRAM","quantization reduces model quality by 5-15% depending on quantization level (4-bit vs 8-bit); trade-off between quality and speed/memory","inference speed varies by model and hardware; no guaranteed latency SLA like cloud APIs","model switching requires downloading and loading new model files; can take 1-5 minutes depending on model size and storage speed","no built-in model versioning or rollback; updating a model may break existing applications if behavior changes"],"requires":["Python 3.8+","Ollama, LM Studio, vLLM, or llama.cpp installed and running","4GB+ RAM for 7B models, 16GB+ for 13B+, 40GB+ for 70B models","GPU optional but recommended (NVIDIA CUDA 11.8+, Apple Metal, or AMD ROCm)","model files downloaded locally (2-50GB depending on model size and quantization)"],"input_types":["model name or path (e.g., 'mistral:7b', '/path/to/model.gguf')","inference parameters (temperature, top-p, max_tokens)","prompt text"],"output_types":["generated text response","inference metadata (tokens generated, inference time, model used)"],"categories":["text-generation-language","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-private-gpt__cap_7","uri":"capability://text.generation.language.chat.history.and.context.management","name":"chat-history-and-context-management","description":"Maintains conversation history within a session, using previous messages to provide context for follow-up questions and improving answer coherence. Implements a sliding context window that includes recent chat history (typically last 5-10 messages) in the LLM prompt, allowing the model to understand references to previous topics. Supports conversation persistence (saving/loading chat sessions) and optional summarization of long conversations to fit within LLM context limits.","intents":["I want to ask follow-up questions that reference previous messages without repeating context","I need to maintain a conversation thread over multiple turns while staying within LLM context window limits","I want to save and resume conversations later without losing chat history"],"best_for":["interactive document QA applications where users ask multiple related questions","conversational AI systems where context continuity improves user experience","applications requiring audit trails or conversation logging for compliance"],"limitations":["context window is limited by LLM model; very long conversations (100+ messages) may exceed context and require summarization or truncation","conversation summarization is lossy; important details may be lost when compressing history","no built-in multi-user conversation management; conversations are single-user only","chat history is stored in memory or local files; no encryption or access control by default","context management adds latency (50-200ms per turn) for history retrieval and context assembly"],"requires":["Python 3.8+","local storage for conversation persistence (optional)","tokenizer for context window calculation"],"input_types":["user message (text)","conversation history (previous messages)","context management parameters (max history length, summarization threshold)"],"output_types":["LLM response with context","updated conversation history","context metadata (tokens used, history length)"],"categories":["text-generation-language","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-private-gpt__cap_8","uri":"capability://data.processing.analysis.document.metadata.extraction.and.tagging","name":"document-metadata-extraction-and-tagging","description":"Automatically extracts and assigns metadata to documents (creation date, author, document type, custom tags) from file properties and document content, enabling filtering and organization of document collections. Supports manual tagging where users can assign custom labels to documents for categorization. Metadata is indexed alongside embeddings, allowing search and filtering by document properties (e.g., 'show results only from 2024 documents').","intents":["I want to organize my document collection by type, date, or custom categories without manually sorting files","I need to filter search results by document properties (e.g., only show results from recent documents or specific authors)","I want to tag documents with custom labels for easier discovery and organization"],"best_for":["users managing large, heterogeneous document collections with diverse sources","teams needing to organize documents by project, department, or classification","compliance-heavy organizations requiring document metadata for audit trails"],"limitations":["automatic metadata extraction is heuristic-based and may fail on documents with non-standard formats or missing metadata","custom tagging requires manual effort; no automatic categorization based on content","metadata filtering adds complexity to search queries; users must understand available metadata fields","no built-in metadata validation; incorrect or inconsistent tags may degrade search quality","metadata changes require re-indexing affected documents, which can be time-consuming for large collections"],"requires":["Python 3.8+","document metadata extraction libraries (e.g., python-docx for DOCX metadata, PyPDF2 for PDF metadata)","metadata storage in vector database or separate metadata store"],"input_types":["document files with embedded metadata","user-provided tags and custom metadata","document content for automatic metadata inference"],"output_types":["extracted metadata (date, author, document type)","user-assigned tags","metadata-filtered search results"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-private-gpt__cap_9","uri":"capability://automation.workflow.batch.document.processing","name":"batch-document-processing","description":"Processes multiple documents in batch mode, embedding and indexing them in parallel or sequential batches to improve throughput compared to processing documents one-at-a-time. Implements progress tracking, error handling, and retry logic for failed documents, allowing users to upload large document collections without manual intervention. Supports resumable batch jobs where interrupted processing can be resumed without reprocessing completed documents.","intents":["I want to upload 100+ documents at once and have them indexed automatically without waiting for each one individually","I need to handle failed document uploads gracefully and retry without losing progress","I want to monitor batch processing progress and get notified when indexing is complete"],"best_for":["users with large document collections (100+ documents) that need to be indexed once","teams migrating existing document repositories to Private GPT","applications requiring periodic bulk document imports"],"limitations":["batch processing is resource-intensive; processing 1000 documents may consume 8GB+ RAM and take 30+ minutes depending on hardware","parallel processing may not be faster than sequential on single-core systems; benefits depend on CPU/GPU availability","error handling is basic; documents that fail to parse are skipped without detailed error reporting","no built-in deduplication; duplicate documents will be indexed separately, wasting storage and potentially degrading search quality","batch job state is not persisted; interrupting the process may require restarting from the beginning"],"requires":["Python 3.8+","4GB+ RAM for batch processing","sufficient disk space for vector index (10-50MB per 1000 documents)","optional: GPU for faster parallel embedding"],"input_types":["list of document files or directory path","batch processing parameters (parallel workers, batch size, retry count)"],"output_types":["batch processing status (documents processed, failed, skipped)","indexed documents added to vector database","error log with details of failed documents"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":25,"verified":false,"data_access_risk":"high","permissions":["Python 3.8+","4GB+ RAM minimum (8GB+ recommended for production)","Local storage space for vector index (typically 10-50MB per 1000 documents depending on embedding model)","GPU optional but recommended for faster embedding (CUDA 11.8+ or Metal for Apple Silicon)","8GB+ RAM for 7B-parameter models, 16GB+ for 13B+ models","GPU with 6GB+ VRAM for acceptable inference speed (NVIDIA CUDA 11.8+ or Apple Metal)","Local LLM binary or GGML-quantized model file (e.g., Mistral, Llama 2, or similar)","export format libraries (json, csv, markdown, reportlab for PDF)","write permissions to output directory","Python 3.8+ (for SDK) or any HTTP client (for REST API)"],"failure_modes":["embedding quality depends on local model size; larger models require more VRAM (8GB+ for production-grade embeddings)","indexing speed is slower than cloud services; 1000-page document may take 2-5 minutes on consumer hardware","vector database is limited to local storage; scaling to billions of embeddings requires external vector DB integration","no built-in multi-user access control or document versioning in base implementation","answer quality is constrained by local LLM capability; smaller models (7B parameters) may produce less coherent or factually accurate responses than GPT-4","inference latency is 5-30 seconds per query depending on model size and hardware, vs <1 second for cloud APIs","context window is limited by model architecture (typically 2K-4K tokens for smaller models, 8K+ for larger ones); very long documents may exceed context","no built-in fact-checking or hallucination detection; requires external validation for high-stakes use cases","export formats have limited formatting options; complex layouts or styling may not be preserved","large exports (1000+ Q&A pairs) may be slow or memory-intensive","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.34,"ecosystem":0.25,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.1,"match_graph":0.35,"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:04.047Z","last_scraped_at":"2026-05-03T14:00:10.321Z","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=private-gpt","compare_url":"https://unfragile.ai/compare?artifact=private-gpt"}},"signature":"R30u1pMDCCO3/sw+cEixVbgxuqxapGJCSrz9X/v2hlUkt2kYA0ke4YK1cA+1XWAy1Z3x8cYDgsnDOIqKBxAOBw==","signedAt":"2026-06-20T12:53:02.989Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/private-gpt","artifact":"https://unfragile.ai/private-gpt","verify":"https://unfragile.ai/api/v1/verify?slug=private-gpt","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"}}