LangChainRB

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

Utilizzate questa integrazione gratuitamente
  • LangChainRB e Milvus

    LangChainRB è un livello di orchestrazione per la costruzione di applicazioni LLM basate su Ruby ed è utile per mettere insieme diversi tipi di sistemi, come i database vettoriali (Milvus e Zilliz Cloud) e gli LLM. Con questa soluzione è possibile creare funzionalità di ricerca semantica utili per Q&A su documenti, chatbot e agenti.

    Le caratteristiche principali includono:

    • Gestione dei prompt: creazione, caricamento e salvataggio di modelli di prompt.
    • Convalida della lunghezza del contesto: convalida della lunghezza della finestra di contesto per evitare errori LLM.
    • Chunking dei dati - suddivisione dei dati in pezzi che hanno senso semantico da vari documenti prima di creare embeddings che vengono memorizzati in un database vettoriale come Zilliz Cloud.
    • Memoria di conversazione - persistenza di una chat con un LLM in memoria
    • Fornisce il supporto per LLM popolari come Anthropic, Cohere, Google Palm, Hugging Face, Local Llama e OpenAI.

    Vantaggi

    • Linguaggio e API comuni specifici per il dominio
    • Interoperabilità e riduzione del vendor lock in, scegliendo il tuo LLM preferito
    • Migliori pratiche e un ricco set di funzionalità
  • Come eseguire una ricerca vettoriale con Milvus

    Come eseguire una ricerca vettoriale con Milvus

    llm = Langchain::LLM::GooglePalm.new(api_key: "...")
    
    client + Langchain::Vectorsearch::Milvus.new(url:, index_name:, llm: llm)
    client.add_texts testi: [...], 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])
    

    Alcune note sull'esempio precedente

    • Questo esempio utilizza Google Palm per l'LLM; è possibile istanziare l'LLM passandogli la propria chiave API.
    • Creare un client usando la gemma Milvus ruby, passandogli l'URL dove Milvus è in esecuzione, nominare l'indice e passare l'indice
    • Inviare i vettori uno per uno a Milvus o fare l'upsert in blocco

    Esempio di `ActiveRecord

    ``ruby Classe Prodotto < ActiveRecord::Base provider di ricerca vettoriale: Langchain::Vectorsearch::Milvus.new(url:, nome_indice:, llm:)

    Dopo il salvataggio :upsert_a_vectorsearch fine

    
     Esempio di ricerca vettoriale
    
    ```ruby
    # Recupera i documenti simili in base alla stringa di query passata
    client.similarity_search(
         Query:,
         k:     # numero di risultati da recuperare
    )
    
    # Interrogazione in stile Q&A basata sulla domanda inserita
    client.ask(
          domanda:
    )
    
    
    
  • Scopri l'integrazione di LangChainRB e Milvus