[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-f1b27ba4-1bd7-453c-bc5e-ae395dd860c5":3,"$f_CU_2vQjTh94dA8KdfM3Xw7GJejVTOVGLgoT-Gwcg-g":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":33},"f1b27ba4-1bd7-453c-bc5e-ae395dd860c5","llm-ops","LLM 运营 -- RAG、嵌入、向量数据库、微调、高级提示工程、LLM 成本、质量评估和 IA 生产架构。","cat_coding_backend","mod_coding","sickn33,coding","---\nname: llm-ops\ndescription: \"LLM Operations -- RAG, embeddings, vector databases, fine-tuning, prompt engineering avancado, custos de LLM, evals de qualidade e arquiteturas de IA para producao.\"\nrisk: safe\nsource: community\ndate_added: '2026-03-06'\nauthor: renat\ntags:\n- llm\n- rag\n- embeddings\n- vector-db\n- fine-tuning\ntools:\n- claude-code\n- antigravity\n- cursor\n- gemini-cli\n- codex-cli\n---\n\n# LLM-OPS -- IA de Producao\n\n## Overview\n\nLLM Operations -- RAG, embeddings, vector databases, fine-tuning, prompt engineering avancado, custos de LLM, evals de qualidade e arquiteturas de IA para producao. Ativar para: implementar RAG, criar pipeline de embeddings, Pinecone\u002FChroma\u002Fpgvector, fine-tuning, prompt engineering, reducao de custos de LLM, evals, cache semantico, streaming, agents.\n\n## When to Use This Skill\n\n- When you need specialized assistance with this domain\n\n## Do Not Use This Skill When\n\n- The task is unrelated to llm ops\n- A simpler, more specific tool can handle the request\n- The user needs general-purpose assistance without domain expertise\n\n## How It Works\n\n> A diferenca entre um prototipo de IA e um produto de IA e operabilidade.\n> LLM-Ops e a engenharia que torna IA confiavel, escalavel e economica.\n\n---\n\n## Arquitetura Rag Completa\n\n[Documentos] -> [Chunking] -> [Embeddings] -> [Vector DB]\n                                                      |\n    [Query] -> [Embed query] -> [Semantic Search] -> [Top K chunks]\n                                                          |\n                                           [LLM + Context] -> [Resposta]\n\n## Pipeline De Indexacao\n\nfrom anthropic import Anthropic\n    import chromadb\n\n    client = Anthropic()\n    chroma = chromadb.PersistentClient(path=\".\u002Fchroma_db\")\n\n    def chunk_text(text, chunk_size=500, overlap=50):\n        words = text.split()\n        chunks = []\n        for i in range(0, len(words), chunk_size - overlap):\n            chunk = \" \".join(words[i:i + chunk_size])\n            if chunk: chunks.append(chunk)\n        return chunks\n\n    def index_document(doc_id, content_text, metadata=None):\n        chunks = chunk_text(content_text)\n        ids = [f\"{doc_id}_chunk_{i}\" for i in range(len(chunks))]\n        collection.upsert(ids=ids, documents=chunks)\n        return len(chunks)\n\n## Pipeline De Query Com Rag\n\ndef rag_query(query, top_k=5, system=None):\n        results = collection.query(\n            query_texts=[query], n_results=top_k,\n            include=[\"documents\", \"metadatas\", \"distances\"])\n        context_parts = []\n        for doc, meta, dist in zip(results[\"documents\"][0],\n                                    results[\"metadatas\"][0],\n                                    results[\"distances\"][0]):\n            if dist \u003C 1.5:\n                src = meta.get(\"source\", \"doc\")\n                context_parts.append(f\"[Fonte: {src}]\n{doc}\")\n        context = \"\n\n---\n\n\".join(context_parts)\n        response = client.messages.create(\n            model=\"claude-opus-4-20250805\", max_tokens=1024,\n            system=system or \"Responda baseado no contexto.\",\n            messages=[{\"role\": \"user\", \"content\": f\"Contexto:\n{context}\n\n{query}\"}])\n        return response.content[0].text\n\n---\n\n## Escolha Do Vector Db\n\n| DB | Melhor Para | Hosting | Custo |\n|----|------------|---------|-------|\n| Chroma | Desenvolvimento, local | Self-hosted | Gratis |\n| pgvector | Ja usa PostgreSQL | Self\u002FCloud | Gratis |\n| Pinecone | Producao gerenciada | Cloud | USD 70+\u002Fmes |\n| Weaviate | Multi-modal | Self\u002FCloud | Gratis+ |\n| Qdrant | Alta performance | Self\u002FCloud | Gratis+ |\n\n## Pgvector\n\nCREATE EXTENSION IF NOT EXISTS vector;\n    CREATE TABLE knowledge_embeddings (\n        id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n        content TEXT NOT NULL,\n        embedding vector(1536),\n        metadata JSONB,\n        created_at TIMESTAMPTZ DEFAULT NOW()\n    );\n    CREATE INDEX ON knowledge_embeddings\n    USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100);\n    SELECT content, 1 - (embedding \u003C=> QUERY_VECTOR) AS similarity\n    FROM knowledge_embeddings ORDER BY similarity DESC LIMIT 5;\n\n---\n\n## Estrutura De Prompt De Elite\n\nComponentes do system prompt Auri:\n\n- Identidade: Nome (Auri), Tom (Natural, caloroso, direto), Plataforma (Amazon Alexa)\n- Regras: Maximo 3 paragrafos curtos, sem markdown, linguagem conversacional\n- Capacidades: analise de negocios, conselho baseado em dados, criatividade\n- Limitacoes: sem internet tempo real, sem transacoes financeiras\n- Personalizacao: {user_name}, {user_preferences}, {relevant_history}\n\n## Chain-Of-Thought\n\ndef cot_analysis(problem: str) -> str:\n        steps = [\n            \"1. O que exatamente esta sendo pedido?\",\n            \"2. Que informacoes sao criticas para resolver?\",\n            \"3. Quais abordagens possiveis existem?\",\n            \"4. Qual abordagem e melhor e por que?\",\n            \"5. Quais riscos ou limitacoes existem?\",\n        ]\n        prompt = f\"Analise passo a passo:\n\nPROBLEMA: {problem}\n\n\"\n        prompt += \"\n\".join(steps) + \"\n\nResposta final (concisa, para voz):\"\n        return call_claude(prompt)\n\n---\n\n## Cache Semantico\n\nclass SemanticCache:\n        def __init__(self, similarity_threshold=0.95):\n            self.threshold = similarity_threshold\n            self.cache = {}\n\n        def get_cached(self, query, embedding):\n            for cached_emb, (response, _) in self.cache.items():\n                if cosine_similarity(embedding, cached_emb) >= self.threshold:\n                    return response\n            return None\n\n        def set_cache(self, query, embedding, response):\n            self.cache[tuple(embedding)] = (response, query)\n\n## Estimativa De Custos Claude\n\nPRICING = {\n        \"claude-opus-4-20250805\": {\"input\": 15.00, \"output\": 75.00},\n        \"claude-sonnet-4-5\": {\"input\": 3.00, \"output\": 15.00},\n        \"claude-haiku-3-5\": {\"input\": 0.80, \"output\": 4.00},\n    }\n\n    def estimate_monthly_cost(model, avg_input, avg_output, req_per_day):\n        p = PRICING[model]\n        daily = (avg_input + avg_output) * req_per_day \u002F 1e6\n        monthly = daily * p[\"input\"] * 30\n        return {\"model\": model, \"monthly_cost\": \"USD %.2f\" % monthly}\n\n---\n\n## Framework De Avaliacao\n\nfrom anthropic import Anthropic\n    client = Anthropic()\n\n    def evaluate_response(question, expected, actual, criteria):\n        criteria_text = \"\n\".join(f\"- {c}\" for c in criteria)\n        eval_prompt = (\n            f\"Avalie a resposta do assistente de IA.\n\n\"\n            f\"PERGUNTA: {question}\nRESPOSTA ESPERADA: {expected}\n\"\n            f\"RESPOSTA ATUAL: {actual}\n\nCriterios:\n{criteria_text}\n\n\"\n            \"Nota 0-10 e justificativa para cada criterio. Formato JSON.\"\n        )\n        response = client.messages.create(\n            model=\"claude-haiku-3-5\", max_tokens=1024,\n            messages=[{\"role\": \"user\", \"content\": eval_prompt}]\n        )\n        import json\n        return json.loads(response.content[0].text)\n\n    AURI_EVALS = [\n        {\n            \"question\": \"Quais sao os principais riscos de abrir startup agora?\",\n            \"criteria\": [\"precisao_factual\", \"relevancia\", \"clareza_para_voz\"]\n        },\n    ]\n\n---\n\n## 6. Comandos\n\n| Comando | Acao |\n|---------|------|\n| \u002Frag-setup | Configura pipeline RAG completo |\n| \u002Fembed-docs | Indexa documentos no vector DB |\n| \u002Fprompt-optimize | Otimiza prompt para qualidade e custo |\n| \u002Fcost-estimate | Estima custo mensal do LLM |\n| \u002Feval-run | Roda suite de evals de qualidade |\n| \u002Fcache-setup | Configura cache semantico |\n| \u002Fmodel-select | Escolhe modelo ideal para o caso de uso |\n\n## Best Practices\n\n- Provide clear, specific context about your project and requirements\n- Review all suggestions before applying them to production code\n- Combine with other complementary skills for comprehensive analysis\n\n## Common Pitfalls\n\n- Using this skill for tasks outside its domain expertise\n- Applying recommendations without understanding your specific context\n- Not providing enough project context for accurate analysis\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,75,574,"2026-05-16 13:26:56",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"编程开发","coding","mdi-code-braces","代码生成、调试、审查，提升开发效率",2,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":25,"skillCount":32,"createdAt":26},"后端开发","backend","mdi-server","API、数据库、服务端架构",296,[34],{"id":35,"skillId":4,"version":36,"fileName":37,"fileSize":38,"filePath":39,"fileHash":40,"manifest":41,"createdAt":42},"9c65fbda-d9ce-46b6-97f1-aff15b312cd3","1.0.0","llm-ops.zip",3700,"uploads\u002Fskills\u002Ff1b27ba4-1bd7-453c-bc5e-ae395dd860c5\u002Fllm-ops.zip","bd5553567b1a7c567fca679a75ed6facec905858990399e3fb15a4bd9721c56c","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":8306}]","2026-05-16 13:26:57",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]