Pular para o conteúdo
Skillpedia
Agentes48 mil · #2913

embedding-strategies

Ajuda seu agente a escolher os melhores modelos para buscas. Ele otimiza a forma como a informação é encontrada em sistemas de busca.

O que ela faz

Esta ferramenta ajuda você a escolher e configurar modelos de 'embedding' (representações numéricas de texto) para usar em sistemas de busca de informações. Ela te guia na seleção do modelo certo, como dividir seus textos e como otimizar tudo para que a busca funcione melhor.

Quando usar

  • ✓Quando você quer que um programa encontre informações parecidas em muitos textos.
  • ✓Quando você precisa decidir qual modelo matemático usar para entender o significado de palavras.
  • ✓Quando você quer melhorar a precisão de um sistema de busca de perguntas e respostas.

Exemplo do que pedir para a IA

“Qual o melhor modelo de embedding para buscar documentos legais em português?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/embedding-strategies/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/embedding-strategies/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta analisa seus objetivos e os dados que você tem. Depois, ela sugere modelos de embedding e métodos para preparar seus textos (dividir em pedaços menores, por exemplo) para que a busca seja eficiente.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill embedding-strategies

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/embedding-strategies/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Estratégias de Embedding

Guia para selecionar e otimizar modelos de embedding para aplicações de busca vetorial.

Não use esta habilidade quando

  • A tarefa não estiver relacionada a estratégias de embedding
  • Você precisar de um domínio ou ferramenta diferente fora deste escopo

Instruções

  • Clarifique objetivos, restrições e entradas necessárias.
  • Aplique as melhores práticas relevantes e valide os resultados.
  • Forneça passos acionáveis e verificação.
  • Se exemplos detalhados forem necessários, abra resources/implementation-playbook.md.

Use esta habilidade quando

  • Escolher modelos de embedding para RAG
  • Otimizar estratégias de chunking
  • Ajustar embeddings para domínios específicos
  • Comparar o desempenho de modelos de embedding
  • Reduzir dimensões de embedding
  • Lidar com conteúdo multilíngue

Conceitos Principais

1. Comparação de Modelos de Embedding

Modelo Dimensões Máx. Tokens Ideal para
text-embedding-3-large 3072 8191 Alta precisão
text-embedding-3-small 1536 8191 Custo-benefício
voyage-2 1024 4000 Código, jurídico
bge-large-en-v1.5 1024 512 Código aberto
all-MiniLM-L6-v2 384 256 Rápido, leve
multilingual-e5-large 1024 512 Multilíngue

2. Pipeline de Embedding

Document → Chunking → Preprocessing → Embedding Model → Vector
                ↓
        [Overlap, Size]  [Clean, Normalize]  [API/Local]

Modelos

Modelo 1: Embeddings da OpenAI

from openai import OpenAI
from typing import List
import numpy as np

client = OpenAI()

def get_embeddings(
    texts: List[str],
    model: str = "text-embedding-3-small",
    dimensions: int = None
) -> List[List[float]]:
    """Get embeddings from OpenAI."""
    # Handle batching for large lists
    batch_size = 100
    all_embeddings = []

    for i in range(0, len(texts), batch_size):
        batch = texts[i:i + batch_size]

        kwargs = {"input": batch, "model": model}
        if dimensions:
            kwargs["dimensions"] = dimensions

        response = client.embeddings.create(**kwargs)
        embeddings = [item.embedding for item in response.data]
        all_embeddings.extend(embeddings)

    return all_embeddings


def get_embedding(text: str, **kwargs) -> List[float]:
    """Get single embedding."""
    return get_embeddings([text], **kwargs)[0]


# Dimension reduction with OpenAI
def get_reduced_embedding(text: str, dimensions: int = 512) -> List[float]:
    """Get embedding with reduced dimensions (Matryoshka)."""
    return get_embedding(
        text,
        model="text-embedding-3-small",
        dimensions=dimensions
    )

Modelo 2: Embeddings Locais com Sentence Transformers

from sentence_transformers import SentenceTransformer
from typing import List, Optional
import numpy as np

class LocalEmbedder:
    """Local embedding with sentence-transformers."""

    def __init__(
        self,
        model_name: str = "BAAI/bge-large-en-v1.5",
        device: str = "cpu",
        query_prefix: str = ""
    ):
        self.model = SentenceTransformer(model_name, device=device)
        self.query_prefix = query_prefix  # Choose from the selected model card.

    def embed(
        self,
        texts: List[str],
        normalize: bool = True,
        show_progress: bool = False
    ) -> np.ndarray:
        """Embed texts with optional normalization."""
        embeddings = self.model.encode(
            texts,
            normalize_embeddings=normalize,
            show_progress_bar=show_progress,
            convert_to_numpy=True
        )
        return embeddings

    def embed_query(self, query: str) -> np.ndarray:
        """Embed a query with the explicitly configured model prefix."""
        return self.embed([self.query_prefix + query])[0]

    def embed_documents(self, documents: List[str]) -> np.ndarray:
        """Embed documents for indexing."""
        return self.embed(documents)


# E5 model with instructions
class E5Embedder:
    def __init__(self, model_name: str = "intfloat/multilingual-e5-large"):
        self.model = SentenceTransformer(model_name)

    def embed_query(self, query: str) -> np.ndarray:
        return self.model.encode(f"query: {query}")

    def embed_document(self, document: str) -> np.ndarray:
        return self.model.encode(f"passage: {document}")

Modelo 3: Estratégias de Chunking

from typing import List, Tuple
import re

def chunk_by_tokens(
    text: str,
    chunk_size: int = 512,

…
Perguntas frequentes

O que são 'embeddings'?

Embeddings são como traduções de palavras ou frases para números. Computadores entendem esses números para saber o quão parecidas são as ideias de diferentes textos.

O que é 'RAG'?

RAG significa 'Retrieval-Augmented Generation'. É uma técnica que usa embeddings para encontrar informações relevantes em uma base de dados e, em seguida, usa essas informações para gerar uma resposta mais precisa.

Como eu escolho o melhor modelo?

A ferramenta compara modelos com base em características como precisão, custo e o tipo de texto que eles entendem melhor (como código ou textos em vários idiomas).

Detalhes

Descrição original do autor

Guide to selecting and optimizing embedding models for vector search applications.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2913
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas