LangChainRB

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

Utilize esta integração gratuitamente
  • LangChainRB 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
    fim
    

    Exemplo 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