Introdução geral
O Langfuse é uma plataforma de engenharia de LLM (Large Language Model) de código aberto. Ela ajuda os desenvolvedores a rastrear, depurar e otimizar aplicativos LLM, fornecendo ferramentas para observar chamadas, gerenciar prompts, executar experimentos e avaliar resultados. Desenvolvida pela equipe da Langfuse, a plataforma é compatível com estruturas como LangChain, OpenAI etc. Ela está sob a licença MIT e tem uma comunidade ativa. Pode ser rapidamente auto-hospedada localmente ou na nuvem, e é ideal para equipes que trabalham juntas para desenvolver aplicativos de IA confiáveis. O langfuse oferece serviços de nuvem (com pacotes gratuitos) e opções auto-hospedadas, e é fácil de implantar e comprovado em ambientes de produção.
Para agentes e RAG O tempo de execução é visualizado e observado, de forma semelhante ao LangSmith.
Lista de funções
- Observação aplicadaRastreamento: rastreie cada chamada para o aplicativo LLM, registrando entradas e saídas, latência e custo.
- Gerenciamento de tacosArmazenamento centralizado de palavras-chave para dar suporte ao controle de versões e ajustes de trabalho em equipe.
- Gerenciamento do conjunto de dadosCrie conjuntos de dados de teste e execute experimentos para comparar modelos ou efeitos de dicas.
- Ferramentas de avaliaçãoSuporte para feedback do usuário, rotulagem manual e avaliação automatizada para verificar a qualidade do resultado.
- Suporte à depuraçãoVisualização de logs detalhados e sessões de usuários para identificar rapidamente os problemas.
- Playground experimentalTeste palavras de alerta e configurações de modelos para acelerar as iterações de desenvolvimento.
- Suporte a várias estruturasCompatível com LangChain, OpenAI SDK, LiteLLM e muito mais.
- Integração de APIAPI: fornece uma API abrangente para personalizar os fluxos de trabalho do LLMOps.
Usando a Ajuda
Instalação e implementação
serviço de nuvem
- Registrar uma conta:: Acesso Nuvem LangfuseClique em "Sign Up" para se registrar.
- Criar um projetoApós fazer o login, clique em "New Project" (Novo projeto) e digite o nome do projeto.
- Obter a chave:: Gerado nas configurações do projeto
PUBLIC_KEY
responder cantandoSECRET_KEY
. - começar a usarNão é necessário instalar, conecte-se aos serviços de nuvem diretamente por meio do SDK.
Implantação local (Docker Compose)
- Preparação do ambienteVerifique se o Docker e o Docker Compose estão instalados, que podem ser baixados do site do Docker.
- Código de clonagemExecutar em um terminal
git clone https://github.com/langfuse/langfuse.git
Em seguida, insira o catálogocd langfuse
. - Início dos serviços: Entrada
docker compose up
e aguardar a conclusão da inicialização, o endereço padrão éhttp://localhost:3000
. - validar (uma teoria): Acesso ao navegador
http://localhost:3000
Se a página de login for exibida, você foi bem-sucedido. - Configuração da chaveGeração de chave na interface do usuário para SDK após o registro.
Implantação do Kubernetes (recomendações de produção)
- Preparando o clusterCrie um cluster do Kubernetes usando o Minikube (para testes locais) ou um serviço de nuvem, como o AWS.
- Adicionar leme: Corrida
helm repo add langfuse https://langfuse.github.io/langfuse-k8s
responder cantandoAtualização do repositório helm
. - configurar: Criar
values.yaml
O banco de dados e as principais informações são preenchidos (consulte o documento oficial). - implementações: Entrada
helm install langfuse langfuse/langfuse -f values.yaml
Aguarde o término do processo. - entrevistasConfigurar o acesso ao endereço de serviço com base no Ingress.
Implementação de máquinas virtuais
- Executado em uma única máquina virtual
docker compose up
As etapas são as mesmas da implementação local.
Funções principais
Observação aplicada
- Instalação do SDKExecução do projeto Python
pip install langfuse
Execução do projeto JS/TSnpm install langfuse
. - inicializaçãoConfiguração de chaves e hosts em código:
from langfuse import Langfuse langfuse = Langfuse(public_key="pk-lf-xxx", secret_key="sk-lf-xxx", host="http://localhost:3000")
- registrar chamadaUse decoradores ou rastreamento manual:
from langfuse.decorators import observe @observe() def chat(input). return openai.chat.completions.create(model="gpt-3.5-turbo", messages=[{"role": "user", "content": input}]) chat("Hello")
- confiraVerifique os detalhes da chamada na página "Traces" (Rastreamentos) da interface do usuário.
Gerenciamento de tacos
- Nova dicaNa página "Prompts" da interface do usuário, clique em "New Prompt" e digite um nome e um conteúdo, por exemplo:
Sistema: Você é um ajudante, respondendo diretamente às perguntas. Usuário: {{question}}
- Dicas de usoChamadas em código
langfuse.get_prompt("prompt-name")
. - gerenciamento de versõesSalvamento automático da versão após a modificação dos prompts, que pode ser revertida.
Conjuntos de dados e experimentos
- Criação de um conjunto de dadosNa página "Datasets" da interface do usuário, clique em "Create Dataset" (Criar conjunto de dados) e nomeie-o como "qa-test".
- Adicionar dadosInsira ou carregue um CSV, por exemplo:
Entrada: "How many is 1+1?" (Quantos são 1+1?) Esperado: "2"
- experimento de corrida:: Teste no código:
conjunto de dados = langfuse.get_dataset("qa-test") for item in dataset.items: result = chat(item.input) result = chat(item.input) item.link(langfuse.trace({"output": result}), "test-1")
- analisadoVisualização dos resultados do experimento na interface do usuário.
Playground
- entrar emClique em "Playground" na interface do usuário e insira o prompt e os parâmetros do modelo.
- teste (maquinário etc.)Clique em Run (Executar) para visualizar o resultado, ajustar os parâmetros e salvar.
- pular: Diretamente do resultado do erro "Traces". Playground Modificação.
Operação da função em destaque
Registro de depuração
- Na página "Traces", clique em uma chamada para ver as entradas, as saídas e o contexto.
- Visualize as sessões de usuário em "Sessions" para analisar conversas de várias rodadas.
Resultado da avaliação
- operado manualmenteClassificação da saída (0-1) na página "Scores" (Pontuações).
- automaçãoAdicionar avaliações via API:
langfuse.score(trace_id="xxx", name="accuracy", value=0.95)
Uso da API
- Chamado usando a especificação OpenAPI ou um SDK (por exemplo, Python/JS), por exemplo, para criar um rastreamento:
curl -X POST "http://localhost:3000/api/traces" -H "Authorization: Bearer sk-lf-xxx" -d '{"id": "trace-1", "name": "test"}'
cenário do aplicativo
- Rastreamento de visualização de processos RAG
- Rastreamento visual do processo geral de recuperação de palavras-chave, recuperação de vetores, fusão de recuperação, reorganização, resposta
- Desenvolvimento de um atendimento inteligente ao cliente
- A equipe usa o Langfuse para acompanhar as conversas, otimizar a qualidade das respostas e melhorar a experiência do cliente.
- Comparação de desempenho de modelos
- O desenvolvedor cria conjuntos de dados para testar o desempenho de vários LLMs em uma tarefa de questionamento.
- Implementação no local
- A empresa hospeda o Langfuse para proteger dados confidenciais e depurar aplicativos internos de IA.
QA
- Quais linguagens e estruturas são compatíveis?
- Oferece suporte a Python e JS/TS e é compatível com LangChain, OpenAI, LlamaIndex e muito mais.
- Qual é a configuração mínima para hospedagem própria?
- Os projetos menores usam uma CPU de 2 núcleos e 4 GB de RAM, enquanto os maiores recomendam 8 núcleos e 16 GB.
- Como faço para desativar a telemetria?
- Definir as variáveis de ambiente no
TELEMETRY_ENABLED=false
.
- Definir as variáveis de ambiente no