LangChainRB

Build Ruby-based Retrieval-Augmented Generation applications with LangChainRB and Zilliz Cloud or Milvus Vector Database

Utilisez cette intégration gratuitement
  • LangChainRB et Milvus

    LangChainRB est une couche d’orchestration pour créer des applications LLM basées sur Ruby et permet d’enchaîner plusieurs types de systèmes, comme des bases de données vectorielles (Milvus et Zilliz Cloud), et des LLM. Avec cette solution, vous pouvez créer des capacités de recherche sémantique utiles pour les questions-réponses sur des documents, les chatbots et les agents.

    Les principales fonctionnalités incluent :

    • Gestion des prompts — créer, charger et enregistrer des modèles de prompts
    • Validations de la longueur du contexte — valider la longueur de la fenêtre de contexte afin d’éviter de rencontrer des erreurs LLM
    • Découpage des données — diviser les données en morceaux ayant un sens sémantique à partir de divers documents avant de créer des embeddings qui sont stockés dans une base de données vectorielle comme Zilliz Cloud.
    • Mémoire de conversation — conserver une conversation avec un LLM en mémoire
    • Prend en charge les LLM populaires comme Anthropic, Cohere, Google Palm, Hugging Face, Local Llama et OpenAI.

    Avantages

    • Langage spécifique au domaine et API communs
    • Interopérabilité et réduction de la dépendance fournisseur, choisissez votre LLM préféré
    • Bonnes pratiques et ensemble de fonctionnalités riche
  • Comment exécuter une recherche vectorielle avec Milvus

    Comment exécuter une recherche vectorielle avec Milvus

    llm = Langchain::LLM::GooglePalm.new(api_key: “...”)
    
    client + Langchain::Vectorsearch::Milvus.new(url:, index_name:, llm: llm)
    client.add_texts texts: [...], ids: [...]
    
    my_pdf = Langchain.root.join(“/Documents/file.pdf”)
    my_text = Langchain.root.join(“/Documents/file.txt”)
    my_docx = Langchain.root.join(“/Documents/file.docx”)
    
    client.add_data(paths: [my_pdf, my_txt, my_docx])
    

    Quelques notes à propos de l’exemple ci-dessus

    • Cet exemple utilise Google Palm pour le LLM, vous pouvez instancier le LLM en lui passant votre clé API
    • Créez un client en utilisant la gem Ruby Milvus, passez-lui l’URL où Milvus s’exécute, nommez l’index et passez l’index
    • Envoyez les vecteurs un par un à Milvus ou effectuez un upsert en masse

    Exemple ActiveRecord

    Class Product < ActiveRecord::Base
       vectorsearch provider: Langchain::Vectorsearch::Milvus.new(url:, index_name:, llm:)
    
       After_save :upsert_to_vectorsearch
    end
    

    Exemple de recherche vectorielle

    # Récupérer des documents similaires en fonction de la chaîne de requête passée 
    client.similarity_search(
         Query:,
         k:     # nombre de résultats à récupérer
    )
    
    # Requête de type questions-réponses basée sur la question passée
    client.ask(
          question:
    )
    
    
    
  • Découvrez l’intégration de LangChainRB et Milvus