LangChainRB
Build Ruby-based Retrieval-Augmented Generation applications with LangChainRB and Zilliz Cloud or Milvus Vector Database
Utilice esta integración de forma gratuitaLangChainRB 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 finEjemplo 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)