LangChainRB
Build Ruby-based Retrieval-Augmented Generation applications with LangChainRB and Zilliz Cloud or Milvus Vector Database
Используйте эту интеграцию бесплатноLangChainRB и Milvus
LangChainRB - это уровень оркестровки для создания LLM-приложений на основе Ruby, который позволяет объединить несколько типов систем, таких как векторные базы данных (Milvus и Zilliz Cloud) и LLM. С помощью этого решения можно создавать возможности семантического поиска, полезные для вопросов и ответов по документам, чат-ботов и агентов.
Ключевые возможности включают:
- Управление подсказками - создание, загрузка и сохранение шаблонов подсказок.
- Проверка длины контекста - проверка длины контекстного окна во избежание ошибок LLM.
- Разбивка данных на фрагменты - разбивка данных на фрагменты, имеющие семантический смысл, из различных документов перед созданием вкраплений, которые хранятся в векторной базе данных, такой как Zilliz Cloud.
- Память разговоров - сохранение чата с LLM в памяти.
- Обеспечивает поддержку таких популярных LLM, как Anthropic, Cohere, Google Palm, Hugging Face, Local Llama и OpenAI.
Преимущества
- Общий язык и API для конкретных областей
- Взаимозаменяемость и отсутствие привязки к производителю - выбирайте свой любимый LLM.
- Передовой опыт и богатый набор функций
Как выполнить векторный поиск с помощью Milvus
Как выполнить векторный поиск с помощью Milvus
``ruby llm = Langchain::LLM::GooglePalm.new(api_key: "...")
client + Langchain::Vectorsearch::Milvus.new(url:, index_name:, llm: llm) client.add_texts texts: [...], id: [...]
my_pdf = Langchain.root.join("/Documents/file.pdf") my_text = Langchain.root.join("/Документы/файл.txt") my_docx = Langchain.root.join("/Документы/файл.docx")
client.add_data(paths: [my_pdf, my_txt, my_docx])
Некоторые замечания по поводу приведенного выше примера - В этом примере используется Google Palm для LLM, вы можете инстанцировать LLM, передав ему свой API-ключ. - Создайте клиента с помощью рубинового гема Milvus, передайте ему URL, на котором запущен Milvus, назовите индекс и передайте индекс - Отправляйте векторы по одному в Milvus или делайте массовую апсертную рассылку Пример `ActiveRecord` ``ruby Класс Product < ActiveRecord::Base провайдер векторного поиска: Langchain::Vectorsearch::Milvus.new(url:, index_name:, llm:) After_save :upsert_to_vectorsearch endПример векторного поиска
``ruby
Получение похожих документов на основе переданной строки запроса
client.similarity_search( Запрос:, k: # количество результатов для получения )
Запрос в стиле Q&A на основе переданного вопроса
client.ask( вопрос: )
Узнайте об интеграции LangChainRB и Milvus