Antes de construir com Claude

Decidir se deve usar Claude para chat de suporte

Aqui estão alguns indicadores-chave de que você deve empregar um LLM como Claude para automatizar partes do seu processo de suporte ao cliente:
Claude se destaca no manuseio de um grande número de perguntas similares de forma eficiente, liberando agentes humanos para questões mais complexas.
Claude pode rapidamente recuperar, processar e combinar informações de vastas bases de conhecimento, enquanto agentes humanos podem precisar de tempo para pesquisar ou consultar múltiplas fontes.
Claude pode fornecer suporte ininterrupto sem fadiga, enquanto manter agentes humanos para cobertura contínua pode ser custoso e desafiador.
Claude pode lidar com aumentos súbitos no volume de consultas sem a necessidade de contratar e treinar pessoal adicional.
Você pode instruir Claude a representar consistentemente o tom e valores da sua marca, enquanto agentes humanos podem variar em seus estilos de comunicação.
Algumas considerações para escolher Claude sobre outros LLMs:
  • Você prioriza conversas naturais e nuançadas: A compreensão sofisticada de linguagem do Claude permite conversas mais naturais e conscientes do contexto que parecem mais humanas do que chats com outros LLMs.
  • Você frequentemente recebe consultas complexas e abertas: Claude pode lidar com uma ampla gama de tópicos e consultas sem gerar respostas padronizadas ou exigir programação extensiva de permutações de declarações do usuário.
  • Você precisa de suporte multilíngue escalável: As capacidades multilíngues do Claude permitem que ele se envolva em conversas em mais de 200 idiomas sem a necessidade de chatbots separados ou processos extensivos de tradução para cada idioma suportado.

Definir sua interação de chat ideal

Delineie uma interação ideal com o cliente para definir como e quando você espera que o cliente interaja com Claude. Este esboço ajudará a determinar os requisitos técnicos da sua solução. Aqui está um exemplo de interação de chat para suporte ao cliente de seguro de carro:
  • Cliente: Inicia experiência de chat de suporte
    • Claude: Cumprimenta calorosamente o cliente e inicia a conversa
  • Cliente: Pergunta sobre seguro para seu novo carro elétrico
    • Claude: Fornece informações relevantes sobre cobertura de veículos elétricos
  • Cliente: Faz perguntas relacionadas a necessidades únicas para seguros de veículos elétricos
    • Claude: Responde com respostas precisas e informativas e fornece links para as fontes
  • Cliente: Faz perguntas fora do tópico não relacionadas a seguros ou carros
    • Claude: Esclarece que não discute tópicos não relacionados e direciona o usuário de volta ao seguro de carro
  • Cliente: Expressa interesse em uma cotação de seguro
    • Claude: Faz um conjunto de perguntas para determinar a cotação apropriada, adaptando-se às suas respostas
    • Claude: Envia uma solicitação para usar a ferramenta de API de geração de cotação junto com as informações necessárias coletadas do usuário
    • Claude: Recebe as informações de resposta do uso da ferramenta de API, sintetiza as informações em uma resposta natural e apresenta a cotação fornecida ao usuário
  • Cliente: Faz perguntas de acompanhamento
    • Claude: Responde perguntas de acompanhamento conforme necessário
    • Claude: Orienta o cliente para os próximos passos no processo de seguro e encerra a conversa
No exemplo real que você escrever para seu próprio caso de uso, você pode achar útil escrever as palavras reais nesta interação para que você também possa ter uma noção do tom ideal, comprimento da resposta e nível de detalhe que você quer que Claude tenha.

Dividir a interação em tarefas únicas

Chat de suporte ao cliente é uma coleção de múltiplas tarefas diferentes, desde responder perguntas até recuperação de informações até tomar ações em solicitações, tudo envolvido em uma única interação com o cliente. Antes de começar a construir, divida sua interação ideal com o cliente em cada tarefa que você quer que Claude seja capaz de realizar. Isso garante que você possa instruir e avaliar Claude para cada tarefa, e lhe dá uma boa noção da gama de interações que você precisa considerar ao escrever casos de teste.
Os clientes às vezes acham útil visualizar isso como um fluxograma de interação de possíveis pontos de inflexão da conversa dependendo das solicitações do usuário.
Aqui estão as tarefas-chave associadas ao exemplo de interação de seguro acima:
  1. Saudação e orientação geral
    • Cumprimentar calorosamente o cliente e iniciar conversa
    • Fornecer informações gerais sobre a empresa e interação
  2. Informações do Produto
    • Fornecer informações sobre cobertura de veículos elétricos
      Isso exigirá que Claude tenha as informações necessárias em seu contexto, e pode implicar que uma integração RAG seja necessária.
    • Responder perguntas relacionadas a necessidades únicas de seguro de veículos elétricos
    • Responder perguntas de acompanhamento sobre a cotação ou detalhes do seguro
    • Oferecer links para fontes quando apropriado
  3. Gerenciamento de Conversa
    • Manter-se no tópico (seguro de carro)
    • Redirecionar perguntas fora do tópico de volta para assuntos relevantes
  4. Geração de Cotação
    • Fazer perguntas apropriadas para determinar elegibilidade para cotação
    • Adaptar perguntas baseadas nas respostas do cliente
    • Submeter informações coletadas para API de geração de cotação
    • Apresentar a cotação fornecida ao cliente

Estabelecer critérios de sucesso

Trabalhe com sua equipe de suporte para definir critérios de sucesso claros e escrever avaliações detalhadas com benchmarks e objetivos mensuráveis. Aqui estão critérios e benchmarks que podem ser usados para avaliar quão bem Claude executa as tarefas definidas:
Esta métrica avalia quão precisamente Claude entende consultas de clientes em vários tópicos. Meça isso revisando uma amostra de conversas e avaliando se Claude tem a interpretação correta da intenção do cliente, próximos passos críticos, como é a resolução bem-sucedida, e mais. Mire em uma precisão de compreensão de 95% ou superior.
Isso avalia quão bem a resposta do Claude aborda a pergunta ou questão específica do cliente. Avalie um conjunto de conversas e classifique a relevância de cada resposta (usando classificação baseada em LLM para escala). Mire em uma pontuação de relevância de 90% ou acima.
Avalie a correção das informações gerais da empresa e do produto fornecidas ao usuário, baseadas nas informações fornecidas ao Claude no contexto. Mire em 100% de precisão nesta informação introdutória.
Rastreie a frequência e relevância de links ou fontes oferecidas. Mire em fornecer fontes relevantes em 80% das interações onde informações adicionais poderiam ser benéficas.
Meça quão bem Claude se mantém no tópico, como o tópico de seguro de carro em nosso exemplo de implementação. Mire em 95% das respostas serem diretamente relacionadas ao seguro de carro ou à consulta específica do cliente.
Meça quão bem-sucedido Claude é em determinar quando gerar conteúdo informativo e quão relevante esse conteúdo é. Por exemplo, em nossa implementação, estaríamos determinando quão bem Claude entende quando gerar uma cotação e quão precisa essa cotação é. Mire em 100% de precisão, pois esta é informação vital para uma interação bem-sucedida com o cliente.
Isso mede a capacidade do Claude de reconhecer quando uma consulta precisa de intervenção humana e escalonar apropriadamente. Rastreie a porcentagem de conversas corretamente escalonadas versus aquelas que deveriam ter sido escalonadas mas não foram. Mire em uma precisão de escalonamento de 95% ou superior.
Aqui estão critérios e benchmarks que podem ser usados para avaliar o impacto nos negócios de empregar Claude para suporte:
Isso avalia a capacidade do Claude de manter ou melhorar o sentimento do cliente ao longo da conversa. Use ferramentas de análise de sentimento para medir o sentimento no início e fim de cada conversa. Mire em sentimento mantido ou melhorado em 90% das interações.
A porcentagem de consultas de clientes tratadas com sucesso pelo chatbot sem intervenção humana. Tipicamente mire em taxa de deflexão de 70-80%, dependendo da complexidade das consultas.
Uma medida de quão satisfeitos os clientes estão com sua interação com o chatbot. Geralmente feito através de pesquisas pós-interação. Mire em uma pontuação CSAT de 4 de 5 ou superior.
O tempo médio que leva para o chatbot resolver uma consulta. Isso varia amplamente baseado na complexidade das questões, mas geralmente, mire em um AHT menor comparado a agentes humanos.

Como implementar Claude como agente de atendimento ao cliente

Escolher o modelo Claude certo

A escolha do modelo depende dos trade-offs entre custo, precisão e tempo de resposta. Para chat de suporte ao cliente, claude-opus-4-1-20250805 é bem adequado para equilibrar inteligência, latência e custo. No entanto, para instâncias onde você tem fluxo de conversa com múltiplos prompts incluindo RAG, uso de ferramentas e/ou prompts de contexto longo, claude-3-haiku-20240307 pode ser mais adequado para otimizar latência.

Construir um prompt forte

Usar Claude para suporte ao cliente requer que Claude tenha direção e contexto suficientes para responder apropriadamente, enquanto tem flexibilidade suficiente para lidar com uma ampla gama de consultas de clientes. Vamos começar escrevendo os elementos de um prompt forte, começando com um prompt de sistema:
IDENTITY = """Você é Eva, uma assistente de IA amigável e conhecedora da Acme Insurance 
Company. Seu papel é dar as boas-vindas calorosamente aos clientes e fornecer informações sobre 
as ofertas de seguro da Acme, que incluem seguro de carro e seguro de carro 
elétrico. Você também pode ajudar clientes a obter cotações para suas necessidades de seguro."""
Embora você possa ser tentado a colocar todas as suas informações dentro de um prompt de sistema como uma forma de separar instruções da conversa do usuário, Claude na verdade funciona melhor com a maior parte do conteúdo do prompt escrito dentro do primeiro turno User (com a única exceção sendo prompting de papel). Leia mais em Dando a Claude um papel com um prompt de sistema.
É melhor dividir prompts complexos em subseções e escrever uma parte de cada vez. Para cada tarefa, você pode encontrar maior sucesso seguindo um processo passo a passo para definir as partes do prompt que Claude precisaria para fazer a tarefa bem. Para este exemplo de suporte ao cliente de seguro de carro, estaremos escrevendo em partes todas as partes para um prompt começando com a tarefa “Saudação e orientação geral”. Isso também torna a depuração do seu prompt mais fácil, pois você pode ajustar mais rapidamente partes individuais do prompt geral. Colocaremos todas essas peças em um arquivo chamado config.py.
STATIC_GREETINGS_AND_GENERAL = """
<static_context>
Acme Auto Insurance: Seu Companheiro Confiável na Estrada

Sobre:
Na Acme Insurance, entendemos que seu veículo é mais do que apenas um meio de transporte—é seu bilhete para as aventuras da vida. 
Desde 1985, temos criado apólices de seguro auto que dão aos motoristas a confiança para explorar, ir ao trabalho e viajar com tranquilidade.
Seja navegando pelas ruas da cidade ou embarcando em viagens pelo país, a Acme está lá para proteger você e seu veículo. 
Nossas apólices de seguro auto inovadoras são projetadas para se adaptar às suas necessidades únicas, cobrindo tudo desde pequenos acidentes até colisões maiores.
Com o atendimento ao cliente premiado da Acme e resolução rápida de sinistros, você pode focar na alegria de dirigir enquanto nós cuidamos do resto. 
Não somos apenas um provedor de seguros—somos seu copiloto nas jornadas da vida.
Escolha Acme Auto Insurance e experimente a garantia que vem com cobertura superior e cuidado genuíno. Porque na Acme, não apenas 
seguramos seu carro—alimentamos suas aventuras na estrada aberta.

Nota: Também oferecemos cobertura especializada para veículos elétricos, garantindo que motoristas de todos os tipos de carros possam se beneficiar da nossa proteção.

A Acme Insurance oferece os seguintes produtos:
- Seguro de carro
- Seguro de carro elétrico
- Seguro de duas rodas

Horário de funcionamento: Segunda a sexta, 9h - 17h EST
Número de atendimento ao cliente: 1-800-123-4567
</static_context>
"""
Faremos o mesmo para nossas informações de seguro de carro e seguro de carro elétrico.
STATIC_CAR_INSURANCE="""
<static_context>
Cobertura de Seguro de Carro:
As apólices de seguro de carro da Acme tipicamente cobrem:
1. Cobertura de responsabilidade: Paga por lesões corporais e danos materiais que você causa a outros.
2. Cobertura de colisão: Paga por danos ao seu carro em um acidente.
3. Cobertura abrangente: Paga por danos ao seu carro de incidentes não relacionados a colisão.
4. Cobertura de pagamentos médicos: Paga por despesas médicas após um acidente.
5. Cobertura de motorista sem seguro/com seguro insuficiente: Protege você se for atingido por um motorista com seguro insuficiente.

Coberturas opcionais incluem:
- Reembolso de carro alugado
- Assistência na estrada
- Substituição de carro novo
</static_context>
"""

STATIC_ELECTRIC_CAR_INSURANCE="""
<static_context>
Seguro de Carro Elétrico:
Nosso seguro de carro elétrico especializado vai além da cobertura auto tradicional, 
oferecendo proteção personalizada para seu investimento de alta tecnologia. Além das coberturas padrão, oferecemos:
- Proteção de sistemas de bateria caros
- Cobertura de equipamentos de carregamento doméstico
- Adaptação ao mundo em rápida evolução dos veículos elétricos

Seja você dirigindo um Rivian, Nissan Leaf, Chevrolet Bolt, 
ou qualquer outro veículo elétrico, nossos agentes conhecedores estão prontos para criar uma apólice 
que lhe dá a confiança para aproveitar cada milha alimentada por elétrons.
</static_context>
"""
Agora que temos nosso conteúdo estático, vamos adicionar pelo menos 4-5 interações “boas” de exemplo para guiar as respostas do Claude. Esses exemplos devem ser representativos da sua interação ideal com o cliente e podem incluir guardrails, chamadas de ferramentas, etc.
EXAMPLES="""
Aqui estão alguns exemplos de como você pode interagir com clientes:

<example 1>
H: Oi, vocês oferecem seguro comercial para pequenas empresas?

A: Ah! Infelizmente, não oferecemos seguro comercial no momento. 
No entanto, fornecemos uma gama de produtos de seguro pessoal incluindo seguro de carro e seguro de carro elétrico. 
Gostaria de saber mais sobre essas ofertas?
</example 1>

<example 2>
H: Oi, quais são seus horários de funcionamento?

A: Nossos horários de funcionamento são de segunda a sexta, das 9h às 17h EST. 
Se você tiver alguma pergunta ou precisar de assistência, sinta-se à vontade para entrar em contato durante esses horários. 
Como mais posso ajudá-lo hoje?
</example 2>

<example 3>
H: Estou procurando seguro de carro. O que a Acme oferece?

A: Ótima escolha! As apólices de seguro de carro da Acme tipicamente incluem:
- Cobertura de responsabilidade: Protege você se for culpado em um acidente
- Cobertura de colisão: Paga por danos ao seu carro em um acidente
- Cobertura abrangente: Cobre incidentes não relacionados a colisão como roubo ou vandalismo
- Cobertura de pagamentos médicos: Paga por despesas médicas após um acidente
- Cobertura de motorista sem seguro/com seguro insuficiente: Protege você de motoristas com seguro insuficiente

Também oferecemos coberturas opcionais como reembolso de carro alugado, assistência na estrada e substituição de carro novo. 
Gostaria de mais detalhes sobre qualquer uma dessas coberturas, ou tem perguntas específicas sobre segurar seu veículo?
</example 3>

<example 4>
H: Gostaria de ouvir sobre seu seguro de carro elétrico.

A: Certamente! Nosso seguro de carro elétrico é especialmente projetado para atender às necessidades únicas dos proprietários de veículos elétricos. 
Além de todas as coberturas padrão que oferecemos para carros regulares, nossas apólices de carros elétricos incluem:

- Cobertura de bateria: Proteção contra danos ou degradação do sistema de bateria caro do seu veículo
- Pacote tecnológico: Cobre reparos ou substituição de eletrônicos avançados e sistemas de computador de bordo
- Cobertura de estação de carregamento: Protege equipamentos de carregamento doméstico e portátil
- Proteção de cibersegurança: Cobertura contra hackeamento ou ameaças digitais
- Assistência na estrada especializada: Inclui reboque em prancha para proteger a parte inferior do veículo

Cobrimos uma ampla gama de veículos elétricos, incluindo modelos populares da Tesla, Rivian, Nissan, Chevrolet e mais. 
Há um veículo elétrico específico que você está procurando segurar, ou gostaria de mais detalhes sobre qualquer uma dessas coberturas?
</example 4>

<example 5>
H: Gostaria de obter uma cotação para meu seguro de carro.

A: Certamente! Ficaria feliz em ajudá-lo a obter uma cotação para seu seguro de carro. 
Para fornecer uma cotação precisa, precisarei coletar algumas informações sobre seu veículo e o motorista principal. 
Vamos começar com o básico:

1. Qual é a marca e modelo do seu veículo?
2. Em que ano foi fabricado?
3. Aproximadamente quantas milhas você dirigiu?
4. Qual é a idade do motorista principal?

Assim que você fornecer essas informações, usarei nossa ferramenta de cotação para gerar uma cotação de seguro personalizada para você.
</example 5>
"""
Você também vai querer incluir quaisquer instruções importantes delineando o que fazer e o que não fazer sobre como Claude deve interagir com o cliente. Isso pode derivar de guardrails da marca ou políticas de suporte.
ADDITIONAL_GUARDRAILS = """Por favor, siga os seguintes guardrails:
1. Forne apenas informações sobre tipos de seguro listados em nossas ofertas.
2. Se perguntado sobre um tipo de seguro que não oferecemos, declare educadamente 
que não fornecemos esse serviço.
3. Não especule sobre ofertas futuras de produtos ou planos da empresa.
4. Não faça promessas ou entre em acordos que não está autorizado a fazer.
Você apenas fornece informações e orientação.
5. Não mencione produtos ou serviços de nenhum concorrente.
"""
Agora vamos combinar todas essas seções em uma única string para usar como nosso prompt.
TASK_SPECIFIC_INSTRUCTIONS = ' '.join([
   STATIC_GREETINGS_AND_GENERAL,
   STATIC_CAR_INSURANCE,
   STATIC_ELECTRIC_CAR_INSURANCE,
   EXAMPLES,
   ADDITIONAL_GUARDRAILS,
])

Adicionar capacidades dinâmicas e agênticas com uso de ferramentas

Claude é capaz de tomar ações e recuperar informações dinamicamente usando funcionalidade de uso de ferramentas do lado do cliente. Comece listando quaisquer ferramentas externas ou APIs que o prompt deve utilizar. Para este exemplo, começaremos com uma ferramenta para calcular a cotação.
Como lembrete, esta ferramenta não realizará o cálculo real, ela apenas sinalizará para a aplicação que uma ferramenta deve ser usada com quaisquer argumentos especificados.
Exemplo de calculadora de cotação de seguro:
TOOLS = [{
  "name": "get_quote",
  "description": "Calcular a cotação de seguro baseada na entrada do usuário. Valor retornado é prêmio por mês.",
  "input_schema": {
    "type": "object",
    "properties": {
      "make": {"type": "string", "description": "A marca do veículo."},
      "model": {"type": "string", "description": "O modelo do veículo."},
      "year": {"type": "integer", "description": "O ano em que o veículo foi fabricado."},
      "mileage": {"type": "integer", "description": "A quilometragem do veículo."},
      "driver_age": {"type": "integer", "description": "A idade do motorista principal."}
    },
    "required": ["make", "model", "year", "mileage", "driver_age"]
  }
}]

def get_quote(make, model, year, mileage, driver_age):
    """Retorna o prêmio por mês em USD"""
    # Você pode chamar um endpoint http ou um banco de dados para obter a cotação.
    # Aqui, simulamos um atraso de 1 segundo e retornamos uma cotação fixa de 100.
    time.sleep(1)
    return 100

Implantar seus prompts

É difícil saber quão bem seu prompt funciona sem implantá-lo em um ambiente de produção de teste e executar avaliações então vamos construir uma pequena aplicação usando nosso prompt, o SDK Anthropic e streamlit para uma interface de usuário. Em um arquivo chamado chatbot.py, comece configurando a classe ChatBot, que encapsulará as interações com o SDK Anthropic. A classe deve ter dois métodos principais: generate_message e process_user_input.
from anthropic import Anthropic
from config import IDENTITY, TOOLS, MODEL, get_quote
from dotenv import load_dotenv

load_dotenv()

class ChatBot:
   def __init__(self, session_state):
       self.anthropic = Anthropic()
       self.session_state = session_state

   def generate_message(
       self,
       messages,
       max_tokens,
   ):
       try:
           response = self.anthropic.messages.create(
               model=MODEL,
               system=IDENTITY,
               max_tokens=max_tokens,
               messages=messages,
               tools=TOOLS,
           )
           return response
       except Exception as e:
           return {"error": str(e)}

   def process_user_input(self, user_input):
       self.session_state.messages.append({"role": "user", "content": user_input})

       response_message = self.generate_message(
           messages=self.session_state.messages,
           max_tokens=2048,
       )

       if "error" in response_message:
           return f"Ocorreu um erro: {response_message['error']}"

       if response_message.content[-1].type == "tool_use":
           tool_use = response_message.content[-1]
           func_name = tool_use.name
           func_params = tool_use.input
           tool_use_id = tool_use.id

           result = self.handle_tool_use(func_name, func_params)
           self.session_state.messages.append(
               {"role": "assistant", "content": response_message.content}
           )
           self.session_state.messages.append({
               "role": "user",
               "content": [{
                   "type": "tool_result",
                   "tool_use_id": tool_use_id,
                   "content": f"{result}",
               }],
           })

           follow_up_response = self.generate_message(
               messages=self.session_state.messages,
               max_tokens=2048,
           )

           if "error" in follow_up_response:
               return f"Ocorreu um erro: {follow_up_response['error']}"

           response_text = follow_up_response.content[0].text
           self.session_state.messages.append(
               {"role": "assistant", "content": response_text}
           )
           return response_text
      
       elif response_message.content[0].type == "text":
           response_text = response_message.content[0].text
           self.session_state.messages.append(
               {"role": "assistant", "content": response_text}
           )
           return response_text
      
       else:
           raise Exception("Ocorreu um erro: Tipo de resposta inesperado")

   def handle_tool_use(self, func_name, func_params):
       if func_name == "get_quote":
           premium = get_quote(**func_params)
           return f"Cotação gerada: ${premium:.2f} por mês"
      
       raise Exception("Uma ferramenta inesperada foi usada")

Construir sua interface de usuário

Teste a implantação deste código com Streamlit usando um método principal. Esta função main() configura uma interface de chat baseada em Streamlit. Faremos isso em um arquivo chamado app.py
import streamlit as st
from chatbot import ChatBot
from config import TASK_SPECIFIC_INSTRUCTIONS

def main():
   st.title("Chat com Eva, Assistente da Acme Insurance Company🤖")

   if "messages" not in st.session_state:
       st.session_state.messages = [
           {'role': "user", "content": TASK_SPECIFIC_INSTRUCTIONS},
           {'role': "assistant", "content": "Entendido"},
       ]

   chatbot = ChatBot(st.session_state)

   # Exibir mensagens do usuário e assistente pulando as duas primeiras
   for message in st.session_state.messages[2:]:
       # ignorar blocos de uso de ferramenta
       if isinstance(message["content"], str):
           with st.chat_message(message["role"]):
               st.markdown(message["content"])

   if user_msg := st.chat_input("Digite sua mensagem aqui..."):
       st.chat_message("user").markdown(user_msg)

       with st.chat_message("assistant"):
           with st.spinner("Eva está pensando..."):
               response_placeholder = st.empty()
               full_response = chatbot.process_user_input(user_msg)
               response_placeholder.markdown(full_response)

if __name__ == "__main__":
   main()
Execute o programa com:
streamlit run app.py

Avaliar seus prompts

Prompting frequentemente requer teste e otimização para estar pronto para produção. Para determinar a prontidão da sua solução, avalie o desempenho do chatbot usando um processo sistemático combinando métodos quantitativos e qualitativos. Criar uma avaliação empírica forte baseada nos seus critérios de sucesso definidos permitirá que você otimize seus prompts.
O Console Claude agora apresenta uma ferramenta de Avaliação que permite testar seus prompts sob vários cenários.

Melhorar desempenho

Em cenários complexos, pode ser útil considerar estratégias adicionais para melhorar o desempenho além das técnicas padrão de engenharia de prompt e estratégias de implementação de guardrails. Aqui estão alguns cenários comuns:

Reduzir latência de contexto longo com RAG

Ao lidar com grandes quantidades de contexto estático e dinâmico, incluir todas as informações no prompt pode levar a altos custos, tempos de resposta mais lentos e atingir limites da janela de contexto. Neste cenário, implementar técnicas de Geração Aumentada por Recuperação (RAG) pode melhorar significativamente o desempenho e eficiência. Usando modelos de embedding como Voyage para converter informações em representações vetoriais, você pode criar um sistema mais escalável e responsivo. Esta abordagem permite recuperação dinâmica de informações relevantes baseadas na consulta atual, em vez de incluir todo o contexto possível em cada prompt. Implementar RAG para casos de uso de suporte receita RAG tem mostrado aumentar a precisão, reduzir tempos de resposta e reduzir custos de API em sistemas com requisitos extensivos de contexto.

Integrar dados em tempo real com uso de ferramentas

Ao lidar com consultas que requerem informações em tempo real, como saldos de conta ou detalhes de apólice, abordagens RAG baseadas em embedding não são suficientes. Em vez disso, você pode aproveitar o uso de ferramentas para melhorar significativamente a capacidade do seu chatbot de fornecer respostas precisas e em tempo real. Por exemplo, você pode usar o uso de ferramentas para consultar informações do cliente, recuperar detalhes de pedidos e cancelar pedidos em nome do cliente. Esta abordagem, delineada em nossa receita de uso de ferramentas: agente de atendimento ao cliente, permite integrar perfeitamente dados ao vivo nas respostas do Claude e fornecer uma experiência de cliente mais personalizada e eficiente.

Fortalecer guardrails de entrada e saída

Ao implantar um chatbot, especialmente em cenários de atendimento ao cliente, é crucial prevenir riscos associados ao uso indevido, consultas fora do escopo e respostas inadequadas. Embora Claude seja inerentemente resiliente a tais cenários, aqui estão passos adicionais para fortalecer os guardrails do seu chatbot:
  • Reduzir alucinação: Implementar mecanismos de verificação de fatos e citações para fundamentar respostas em informações fornecidas.
  • Verificar informações cruzadas: Verificar se as respostas do agente se alinham com as políticas da sua empresa e fatos conhecidos.
  • Evitar compromissos contratuais: Garantir que o agente não faça promessas ou entre em acordos que não está autorizado a fazer.
  • Mitigar jailbreaks: Usar métodos como telas de inofensividade e validação de entrada para prevenir que usuários explorem vulnerabilidades do modelo, visando gerar conteúdo inadequado.
  • Evitar mencionar concorrentes: Implementar um filtro de menção de concorrentes para manter o foco da marca e não mencionar produtos ou serviços de nenhum concorrente.
  • Manter Claude no personagem: Prevenir que Claude mude seu estilo de contexto, mesmo durante interações longas e complexas.
  • Remover Informações Pessoalmente Identificáveis (PII): A menos que explicitamente requerido e autorizado, remover qualquer PII das respostas.

Reduzir tempo de resposta percebido com streaming

Ao lidar com respostas potencialmente longas, implementar streaming pode melhorar significativamente o engajamento e satisfação do usuário. Neste cenário, os usuários recebem a resposta progressivamente em vez de esperar pela resposta inteira ser gerada. Aqui está como implementar streaming:
  1. Use a API de Streaming Anthropic para suportar respostas em streaming.
  2. Configure seu frontend para lidar com pedaços de texto recebidos.
  3. Exiba cada pedaço conforme chega, simulando digitação em tempo real.
  4. Implemente um mecanismo para salvar a resposta completa, permitindo que usuários a vejam se navegarem para longe e retornarem.
Em alguns casos, streaming permite o uso de modelos mais avançados com latências base mais altas, pois a exibição progressiva mitiga o impacto de tempos de processamento mais longos.

Escalar seu Chatbot

À medida que a complexidade do seu Chatbot cresce, sua arquitetura de aplicação pode evoluir para corresponder. Antes de adicionar mais camadas à sua arquitetura, considere as seguintes opções menos exaustivas:
  • Garanta que você está aproveitando ao máximo seus prompts e otimizando através de engenharia de prompt. Use nossos guias de engenharia de prompt para escrever os prompts mais eficazes.
  • Adicione ferramentas adicionais ao prompt (que podem incluir cadeias de prompt) e veja se você pode alcançar a funcionalidade requerida.
Se seu Chatbot lida com tarefas incrivelmente variadas, você pode querer considerar adicionar um classificador de intenção separado para rotear a consulta inicial do cliente. Para a aplicação existente, isso envolveria criar uma árvore de decisão que rotearia consultas de clientes através do classificador e então para conversas especializadas (com seu próprio conjunto de ferramentas e prompts de sistema). Note, este método requer uma chamada adicional ao Claude que pode aumentar a latência.

Integrar Claude no seu fluxo de trabalho de suporte

Embora nossos exemplos tenham focado em funções Python chamáveis dentro de um ambiente Streamlit, implantar Claude para chatbot de suporte em tempo real requer um serviço de API. Aqui está como você pode abordar isso:
  1. Criar um wrapper de API: Desenvolva um wrapper de API simples em torno da sua função de classificação. Por exemplo, você pode usar Flask API ou Fast API para envolver seu código em um Serviço HTTP. Seu serviço HTTP poderia aceitar a entrada do usuário e retornar a resposta do Assistente em sua totalidade. Assim, seu serviço poderia ter as seguintes características:
    • Eventos Enviados pelo Servidor (SSE): SSE permite streaming em tempo real de respostas do servidor para o cliente. Isso é crucial para fornecer uma experiência suave e interativa ao trabalhar com LLMs.
    • Cache: Implementar cache pode melhorar significativamente os tempos de resposta e reduzir chamadas desnecessárias de API.
    • Retenção de contexto: Manter contexto quando um usuário navega para longe e retorna é importante para continuidade nas conversas.
  2. Construir uma interface web: Implementar uma UI web amigável para interagir com o agente alimentado por Claude.