Introdução ao Prompt do LangChain
Aprenda a utilizar Prompts em Modelos de Linguagem com o LangChain
Prompts
Em inteligência artificial, um prompt é a entrada dada ao modelo de linguagem para que ele possa gerar uma resposta. Por exemplo, se você está interagindo com um chatbot, tudo o que você digita para o bot é considerado um prompt. Os prompts podem ser simples strings (texto) ou uma lista de mensagens, dependendo do tipo de modelo de linguagem que você está usando.
Um prompt é o valor passado para o Modelo de Linguagem.
Esse valor pode ser uma string (para LLMs) ou uma lista de mensagens (para modelos de bate-papo).
Os tipos de dados desses prompts são bastante simples, mas sua construção é tudo menos isso. Os adereços de valor do LangChain aqui incluem:
- Uma interface padrão para prompts de string e prompts de mensagem
- Uma interface padrão (para começar) para modelos de prompt de string e modelos de prompt de mensagem
- Example Selectors (Seletores de exemplo): métodos para inserir exemplos no prompt para o modelo de linguagem seguir
- Output Parsers (Analisadores de Saída): métodos para inserir instruções no prompt como o formato no qual o modelo de linguagem deve gerar informações, bem como métodos para analisar essa saída de string em um formato.
A documentação oficial do LangChain tem exemplos detalhados para os tipos específicos de prompts de string, tipos específicos de prompts de chat, seletores de exemplo e analisadores de saída.
PromptTemplates
PromptTemplates são responsáveis por construir um valor de prompt. Esses PromptTemplates podem fazer coisas como formatação, seleção de exemplo e muito mais. Em um nível alto, são basicamente objetos que expõem um método format_prompt
para construir um prompt. Sob o capô, QUALQUER COISA pode acontecer.
Em outras palavras, o PromptTemplate
é uma classe da biblioteca langchain
que permite criar prompts de maneira eficiente e estruturada. Esses templates podem fazer coisas como formatar o prompt, selecionar exemplos e muito mais. Basicamente, esses templates são objetos que possuem um método chamado format_prompt
, que é usado para construir o prompt. A ideia é que você possa inserir variáveis em seu template e então formatar o prompt com valores específicos mais tarde.
Por exemplo, no código a seguir, um PromptTemplate
é criado a partir do texto "tell me a joke about {subject}". O "{subject}" é um espaço reservado que pode ser substituído por qualquer string. Depois, o método format_prompt
é chamado com o argumento subject="soccer"
, substituindo "{subject}" por "soccer".
from langchain.prompts import PromptTemplate, ChatPromptTemplate
string_prompt = PromptTemplate.from_template("tell me a joke about {subject}")
chat_prompt = ChatPromptTemplate.from_template("tell me a joke about {subject}")
string_prompt_value = string_prompt.format_prompt(subject="soccer")
chat_prompt_value = chat_prompt.format_prompt(subject="soccer")
to_string
Este é o método que você chama para converter o valor do prompt em uma string, que é o que o modelo de linguagem espera quando você o está usando em um contexto de modelo de linguagem de longo alcance (LLM). Ou seja, to_string
é chamado ao passar para um LLM (que espera texto bruto).
string_prompt_value.to_string()
'tell me a joke about soccer'
chat_prompt_value.to_string()
'Human: tell me a joke about soccer'
to_messages
Este é o método que você chama para converter o valor do prompt em uma lista de mensagens, que é o que o modelo de linguagem espera quando você o está usando em um contexto de modelo de conversação (ChatModel). Ou seja, to_messages
é chamado ao passar para ChatModel (que espera uma lista de mensagens).
string_prompt_value.to_messages()
[HumanMessage(content='tell me a joke about soccer', additional_kwargs={}, example=False)]
chat_prompt_value.to_messages()
[HumanMessage(content='tell me a joke about soccer', additional_kwargs={}, example=False)]
LangChain — Índice
Clique no link abaixo para acessar a página que serve como um índice abrangente, reunindo todos os links para os nossos tutoriais sobre LangChain.