LangChainRB
Build Ruby-based Retrieval-Augmented Generation applications with LangChainRB and Zilliz Cloud or Milvus Vector Database
Utilizzate questa integrazione gratuitamenteLangChainRB 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