Prompt Enrichment
O enriquecimento de prompts adiciona dados do utilizador, documentos recuperados, resultados de ferramentas ou exemplos a um pedido antes de este chegar a um modelo de IA, para que as respostas se adequem ao utilizador.
O enriquecimento de prompts é a adição automática de informação ao pedido de um utilizador antes de este chegar a um modelo de IA. O código da aplicação interpõe-se entre o utilizador e o modelo e preenche o que o utilizador não escreveu: os dados da conta, os documentos que respondem à pergunta, dados em tempo real de ferramentas, exemplos resolvidos ou uma versão mais detalhada do próprio pedido. Um cliente que pergunta "Porque é que a minha câmara deixou de ser detetada?" escreve sete palavras, e o modelo de linguagem de grande porte (LLM) recebe essas sete palavras, além do dispositivo do cliente, da versão do software e do artigo de ajuda sobre esse problema específico. O termo abrange várias técnicas, das quais a geração aumentada por recuperação (RAG) é a mais conhecida.
O que acrescenta o enriquecimento#
- Dados do utilizador e da sessão: Campos do perfil, plano, idioma, localização, data atual ou página em que o utilizador se encontra, obtidos dos próprios registos da aplicação.
- Conhecimento recuperado: Trechos encontrados ao pesquisar numa coleção de documentos ou num grafo de conhecimento por texto relacionado com o pedido.
- Resultados de ferramentas: Valores obtidos para este pedido, como o estado de uma encomenda através de uma API, uma linha de uma base de dados ou a saída de outro modelo.
- Exemplos selecionados: Exemplos few-shot selecionados para cada pedido por serem semelhantes à entrada, em vez de se utilizar um único conjunto fixo para todos os pedidos.
- Consultas reescritas: Um modelo expande um pedido sucinto antes de este ser utilizado. No HyDE, Luyu Gao e colegas fazem com que um LLM escreva uma resposta hipotética e, em seguida, utilizam o embedding desse documento para recuperar documentos reais, obtendo melhores resultados do que o mesmo sistema de recuperação não supervisionado quando recebe apenas a pergunta.
O exemplo seguinte enriquece uma pergunta de apoio com dados da conta e o artigo de ajuda mais relevante, recuperado por similaridade TF-IDF com o scikit-learn:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# Context the user never typed: their account record and the help center's articles
account = {"plan": "Pro", "device": "USB webcam", "app_version": "2.3"}
articles = [
"Version 2.4 fixes USB webcams that are not detected after a system update.",
"Pro plans include ten concurrent video streams per workspace.",
"Invoices are available on the billing page as soon as a payment succeeds.",
]
question = "Why is my camera not detected anymore?"
# Retrieve the article most similar to the question
vectorizer = TfidfVectorizer().fit([*articles, question])
scores = cosine_similarity(vectorizer.transform([question]), vectorizer.transform(articles))[0]
best = articles[scores.argmax()]
# Assemble the enriched prompt the model actually receives
profile = ", ".join(f"{key}: {value}" for key, value in account.items())
prompt = f"Customer profile: {profile}\nRelevant article: {best}\nQuestion: {question}"
print(prompt)Apresenta:
Customer profile: plan: Pro, device: USB webcam, app_version: 2.3
Relevant article: Version 2.4 fixes USB webcams that are not detected after a system update.
Question: Why is my camera not detected anymore?A pergunta do utilizador nunca menciona uma webcam, uma versão ou uma atualização, mas o prompt enriquecido contém tudo o que é necessário para responder "atualização da versão 2.3 para a 2.4". Os sistemas de produção costumam recuperar conteúdos com embeddings densos de uma base de dados vetorial ou com pesquisa híbrida, mas a etapa de montagem é a mesma.
O enriquecimento na prática#
Em 2023, o GitHub descreveu como a técnica de separadores adjacentes do Copilot pesquisa nos ficheiros abertos pelo programador por trechos semelhantes ao código em redor do cursor e acrescenta-os ao prompt, o que aumentou em 5% a frequência relativa com que os utilizadores aceitavam as sugestões do Copilot. Os chatbots de apoio ao cliente enriquecem cada turno com registos da conta e das encomendas, e os agentes de IA enriquecem cada etapa com os resultados das chamadas anteriores às ferramentas.
Os pipelines de visão enriquecem os prompts com o que um detetor encontrou. No Ultralytics Platform Agents, um bloco LLM envia ao modelo visão-linguagem selecionado cada imagem, juntamente com os resultados dos blocos que o antecedem, como as deteções do YOLO26, pelo que um prompt escrito uma vez é enriquecido com novos resultados de deteção de objetos para cada imagem processada pelo fluxo de trabalho.
O enriquecimento tem custos. Cada trecho acrescentado utiliza tokens, o que aumenta o preço e a latência de inferência, e um contexto irrelevante ou excessivo reduz a precisão, um efeito conhecido como deterioração do contexto. As páginas Web e os documentos recuperados também podem conter ataques de injeção de prompts, e quaisquer dados pessoais acrescentados a um prompt levantam preocupações de privacidade dos dados, uma vez que são enviados a quem executa o modelo.
Enriquecimento de prompts vs. termos relacionados#
- Geração aumentada por recuperação (RAG): A forma de enriquecimento que pesquisa numa coleção externa de documentos. O enriquecimento também abrange dados que não precisam de pesquisa, como o plano do utilizador ou a data atual.
- Engenharia de prompts: Uma pessoa concebe o modelo do prompt. O enriquecimento preenche esse modelo com dados específicos do pedido em tempo de execução.
- Engenharia de contexto: Gere tudo o que está no contexto de um modelo ao longo de uma aplicação, incluindo o que adicionar, comprimir ou remover em cada etapa. O enriquecimento é a parte que adiciona conteúdo.
- Aterramento: Ligar a saída de um modelo a fontes verificáveis. O enriquecimento fornece essas fontes no prompt.
- Compressão de prompts: Encurta um prompt removendo tokens com pouca informação e é frequentemente aplicada após o enriquecimento, quando o contexto acrescentado é longo.










