LangChainRB
Build Ruby-based Retrieval-Augmented Generation applications with LangChainRB and Zilliz Cloud or Milvus Vector Database
Utilize esta integração gratuitamenteLangChainRB e Milvus
O LangChainRB é uma camada de orquestração para a construção de aplicações LLM baseadas em Ruby e é útil para unir vários tipos de sistemas, como bancos de dados vetoriais (Milvus e Zilliz Cloud) e LLMs. Com esta solução, é possível criar recursos de pesquisa semântica que são úteis para perguntas e respostas sobre documentos, chatbots e agentes.
Os principais recursos incluem:
- Gerenciamento de prompts - crie, carregue e salve modelos de prompts
- Validações de comprimento de contexto - validar o comprimento da janela de contexto para evitar erros de LLM
- Separação de dados - dividir os dados em partes que façam sentido semântico a partir de vários documentos antes de criar embeddings que são armazenados numa base de dados vetorial como o Zilliz Cloud.
- Memória de conversação - persistência de uma conversa com um LLM na memória
- Fornece suporte para LLMs populares como Anthropic, Cohere, Google Palm, Hugging Face, Local Llama e OpenAI.
Benefícios
- Linguagem e APIs específicas de um domínio comum
- Interoperabilidade e redução do bloqueio de fornecedor, escolha seu LLM favorito
- Melhores práticas e rico conjunto de recursos
Como executar uma pesquisa vetorial com o Milvus
Como executar uma pesquisa vetorial com o Milvus
llm = Langchain::LLM::GooglePalm.new(api_key: "...") cliente + Langchain::Vectorsearch::Milvus.new(url:, nome_do_índice:, llm: llm) cliente.add_texts texts: [...], ids: [...] meu_pdf = Langchain.root.join("/Documents/file.pdf") meu_texto = Langchain.root.join("/Documentos/ficheiro.txt") meu_docx = Langchain.root.join("/Documentos/ficheiro.docx") cliente.add_data(caminhos: [meu_pdf, meu_txt, meu_docx])Algumas notas sobre o exemplo acima
- Este exemplo está a usar o Google Palm para o LLM, pode instanciar o LLM passando-lhe a sua chave API
- Criar um cliente usando a gem rubi Milvus, passar a URL onde o Milvus está rodando, nomear o índice e passar o índice
- Enviar vectores um a um para o Milvus ou fazer upsert em massa
Exemplo de `ActiveRecord
Classe Produto < ActiveRecord::Base provedor de pesquisa vetorial: Langchain::Vectorsearch::Milvus.new(url:, index_name:, llm:) After_save :upsert_to_vectorsearch fimExemplo de pesquisa vetorial
# Recupera documentos semelhantes com base na string de consulta passada cliente.similarity_search( Consulta:, k: # número de resultados a serem recuperados ) # consulta do tipo Q&A baseada na pergunta passada cliente.ask( pergunta: )Saiba mais sobre a integração LangChainRB e Milvus