KamoCRM

Inferência que executamos a nós mesmos

Modelos, incorporações, pesquisa vetorial, fala e tradução — em nosso próprio hardware

O assistente de SI dentro do KamoCRM lê os documentos do próprio inquilino antes de responder.Fazer esse trabalho significava executar toda a cadeia nós mesmos: um servidor de modelo, um modelo de incorporação, um banco de dados vetorial, reconhecimento de fala, síntese de fala e tradução automática, tudo dentro do nosso cluster, tudo em dados que nunca saem dele.

Cada número aqui nomeia de onde veio e quando foi medido.
MedidaValorFonteMedido
Serviços de inferência e fala auto-hospedados6 (model server, embedding model, vector database, speech recognition, speech synthesis, machine translation)kubectl get deployments,statefulsets --all-namespaces
Serviços dedicados de recuperação e vetor na plataforma3 (RAG service, vector service, embedding model)kubectl get deployments -n kamo
Idiomas atendidos pelo pipeline de tradução auto-hospedado22messages/*.json in the marketing site repository
Taxa de erro de reconhecimento óptico de caracteres0.180 CERocrservice evaluation run

Que edifício nos ensinou

Chamar uma API de modelo hospedada é um trabalho de tarde e nós também fazemos isso, onde é a resposta certa. Executando a inferência você mesmo é uma disciplina diferente, e é o que os clientes perguntam sobre o momento em que seus dados são confidenciais - saúde, finanças, jurídico, qualquer coisa sob uma obrigação de residência de dados.

A recuperação é onde esses sistemas são ganhos ou perdidos, e é na maioria das vezes pouco glamourosa. Partir documentos para que uma passagem recuperada seja auto-suficiente. Decidir o que uma consulta significa mesmo quando o usuário digitou quatro palavras. Fazer a recuperação respeitar permissões, para que um assistente não possa responder a partir de um documento que a pessoa que está fazendo a pergunta não tem permissão para ler — o que é fácil de errar, e o tipo de erro que acaba em uma carta do regulador ao invés de um rastreador de bugs. Nossa base de conhecimento tem níveis de visibilidade que a camada de recuperação tem que honrar exatamente como as leituras voltadas para o ser humano fazem, em dois lugares separados que devem concordar.

Também executamos reconhecimento e síntese de fala e tradução automática em vinte e dois idiomas. O pipeline de tradução nos ensinou mais, principalmente por falhar silenciosamente: uma atualização em massa executada sem uma transação foi bem-sucedida no papel e não escreveu nada para vinte e um dos idiomas, e porque nada foi jogado, ninguém notou por um longo tempo.

Construído com

  • Ollama
  • Qdrant
  • Whisper
  • Coqui TTS
  • LibreTranslate
  • Python
  • Java
  • Spring Boot

O que isso nos qualifica para

SI and retrieval systemsAssistants that read your documents, and know what they are not allowed to readCustom web applicationsThe system your business actually runs on, built properlyPlatform and DevOps engineeringKubernetes, pipelines and the deployment safety nobody notices until it is missing

Diga-nos o que você está tentando fazer

Uma breve conversa geralmente é suficiente para dizer se somos as pessoas certas, se não formos, diremos isso e indicaremos um lugar melhor.

Iniciar uma conversaEu já uso KamoCRMComo citamos