LangChainRB

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

Utilice esta integración de forma gratuita
  • LangChainRB y Milvus

    LangChainRB es una capa de orquestación para construir aplicaciones LLM basadas en Ruby y es útil para encadenar múltiples tipos de sistemas, como bases de datos vectoriales (Milvus y Zilliz Cloud), y LLMs. Con esta solución, puede construir capacidades de búsqueda semántica que son útiles para Q&A sobre documentos, chatbots y agentes.

    Entre sus principales características se incluyen:

    • Gestión de avisos: cree, cargue y guarde plantillas de avisos.
    • Validación de la longitud del contexto: valide la longitud de la ventana de contexto para evitar errores LLM.
    • Data chunking - dividir los datos en trozos que tengan sentido semántico a partir de varios documentos antes de crear incrustaciones que se almacenan en una base de datos vectorial como Zilliz Cloud.
    • Memoria de conversación - persistencia de una conversación con un LLM en la memoria
    • Proporciona soporte para LLMs populares como Anthropic, Cohere, Google Palm, Hugging Face, Local Llama y OpenAI.

    Ventajas

    • Lenguaje específico de dominio común y API
    • Interoperabilidad y menor dependencia del proveedor, elija su LLM favorito
    • Mejores prácticas y amplio conjunto de funciones
  • Cómo ejecutar una búsqueda vectorial con Milvus

    Cómo ejecutar una búsqueda vectorial con Milvus

    llm = Langchain::LLM::GooglePalm.new(api_key: "...")
    
    client + Langchain::Vectorsearch::Milvus.new(url:, nombre_índice:, llm: llm)
    client.add_texts textos: [...], ids: [...]
    
    mi_pdf = Langchain.root.join("/Documentos/archivo.pdf")
    mi_texto = Langchain.root.join("/Documentos/archivo.txt")
    mi_docx = Langchain.root.join("/Documentos/archivo.docx")
    
    client.add_data(rutas: [mi_pdf, mi_texto, mi_docx])
    

    Algunas notas sobre el ejemplo anterior

    • Este ejemplo utiliza Google Palm para el LLM, puedes instanciar el LLM pasándole tu clave API
    • Crea un cliente utilizando la gema Milvus ruby, pásale la URL donde se está ejecutando Milvus, ponle un nombre al índice y pásale el índice
    • Enviar vectores uno a uno a Milvus o upsert masivo

    Ejemplo de `ActiveRecord

    Clase Producto < ActiveRecord::Base
       Proveedor de búsqueda vectorial: Langchain::Vectorsearch::Milvus.new(url:, nombre_índice:, llm:)
    
       After_save :upsert_to_vectorsearch
    fin
    

    Ejemplo de búsqueda vectorial

    # Recuperar documentos similares basados en la cadena de consulta pasada
    client.similarity_search(
         Consulta:,
         k:     # número de resultados a recuperar
    )
    
    # Consulta de tipo Q&A basada en la pregunta introducida
    cliente.preguntar(
          pregunta:
    )
    
    
    
  • Más información sobre la integración de LangChainRB y Milvus

    • Repositorio GitHub de LangChainRB](https://github.com/andreibondarev/langchainrb)
    • Documentación de LangChainRB](https://rubydoc.info/gems/langchainrb)
    • Vídeo sobre la construcción de una aplicación GenAI de extremo a extremo con Ruby](https://zilliz.com/event/building-genai-app-ruby)
    • Únete a Milvus Discord](https://discord.com/invite/8uyFbECzPX)
    • Únete al Discord de LangChainRB](https://discord.com/invite/WDARp7J2n8)