KamoCRM

Inférence que nous exécutons nous-mêmes

Modèles, intégrations, recherche vectorielle, parole et traduction — sur notre propre matériel

L'assistant SI à l'intérieur de KamoCRM lit les propres documents d'un locataire avant de répondre.Faire ce travail signifiait exécuter toute la chaîne nous-mêmes: un serveur de modèle, un modèle d'intégration, une base de données vectorielle, la reconnaissance vocale, la synthèse vocale et la traduction automatique, le tout à l'intérieur de notre cluster, le tout sur des données qui ne le quittent jamais.

Chaque chiffre indique d'où il vient et quand il a été mesuré.
MesureValeurSourceMesurées
Services d'inférence et de parole auto-hébergés6 (model server, embedding model, vector database, speech recognition, speech synthesis, machine translation)kubectl get deployments,statefulsets --all-namespaces
Services de récupération et de vecteurs dédiés dans la plateforme3 (RAG service, vector service, embedding model)kubectl get deployments -n kamo
Langues desservies par le pipeline de traduction auto-hébergé22messages/*.json in the marketing site repository
Taux d'erreur de reconnaissance optique de caractères0.180 CERocrservice evaluation run

Quel bâtiment il nous a appris

Appeler une API de modèle hébergée est un travail d'un après-midi, et nous le faisons aussi, lorsque c'est la bonne réponse. Exécuter vous-même l'inférence est une discipline différente, et c'est ce que les clients demandent au moment où leurs données sont sensibles - santé, finance, juridique, tout ce qui est soumis à une obligation de résidence des données.

La récupération est le point de départ de ces systèmes, et elle est généralement peu glamour. Décomposer les documents de façon à ce qu'un passage récupéré soit autonome. Décider ce qu'une requête signifie même si l'utilisateur a tapé quatre mots. Faire en sorte que la récupération respecte les permissions, de sorte qu'un assistant ne puisse pas répondre à partir d'un document que la personne qui demande n'est pas autorisée à lire — ce qui est facile à faire, et le genre de faute qui finit dans une lettre du régulateur plutôt que dans un suivi des bogues. Notre base de connaissances a des niveaux de visibilité que la couche de récupération doit respecter exactement comme les lectures face à l'humain, à deux endroits distincts qui doivent être en accord.

Nous exécutons également des reconnaissances et des synthèses vocales, ainsi que des traductions automatiques dans vingt-deux langues. Le pipeline de traduction nous a appris le plus, principalement en échouant silencieusement : une mise à jour en masse exécutée sans transaction a réussi sur papier et n’a rien écrit pour vingt et une langues, et comme rien n’a été rejeté, personne ne l’a remarqué pendant longtemps.

Construit avec

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

Ce qui nous qualifie

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

Dites-nous ce que vous essayez de faire

Une courte conversation est généralement suffisante pour savoir si nous sommes les bonnes personnes, si nous ne le sommes pas, nous le dirons et vous indiquerons quelque part mieux.

Commencez une conversationJ'utilise déjà KamoCRMComment nous citons