Agente de suporte ao cliente
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:
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
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.
Aqui estão as tarefas-chave associadas ao exemplo de interação de seguro acima:
-
Saudação e orientação geral
- Cumprimentar calorosamente o cliente e iniciar conversa
- Fornecer informações gerais sobre a empresa e interação
-
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
- Fornecer informações sobre cobertura de veículos elétricos
-
Gerenciamento de Conversa
- Manter-se no tópico (seguro de carro)
- Redirecionar perguntas fora do tópico de volta para assuntos relevantes
-
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:
Aqui estão critérios e benchmarks que podem ser usados para avaliar o impacto nos negócios de empregar Claude para suporte:
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."""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.
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 100Implantar 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.pyAvaliar 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.
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:
- Use a API de Streaming Anthropic para suportar respostas em streaming.
- Configure seu frontend para lidar com pedaços de texto recebidos.
- Exiba cada pedaço conforme chega, simulando digitação em tempo real.
- 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:
-
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.
-
Construir uma interface web: Implementar uma UI web amigável para interagir com o agente alimentado por Claude.