LangChainRB
Build Ruby-based Retrieval-Augmented Generation applications with LangChainRB and Zilliz Cloud or Milvus Vector Database
この統合を無料で利用するLangChainRBとMilvus
LangChainRBは、RubyベースのLLMアプリケーションを構築するためのオーケストレーションレイヤーであり、ベクトルデータベース(MilvusやZilliz Cloud)やLLMのような複数のタイプのシステムをひも付けるのに役立つ。このソリューションを使えば、ドキュメント上のQ&A、チャットボット、エージェントに便利なセマンティック検索機能を構築できる。
主な機能は以下の通りです:
- プロンプト管理 - プロンプトテンプレートの作成、ロード、保存
- コンテキストの長さの検証 - コンテキストウィンドウの長さを検証し、LLMエラーを回避します。
- データチャンキング - Zilliz Cloudのようなベクトルデータベースに保存されるエンベッディングを作成する前に、様々なドキュメントから意味的に意味のあるチャンクにデータを分割します。
- 会話メモリ - LLMを持つチャットをメモリに永続化する。
- Anthropic、Cohere、Google Palm、Hugging Face、Local Llama、OpenAIのような一般的なLLMのサポートを提供します。
利点
- 共通のドメイン固有の言語とAPI
- 相互運用性とベンダーロックの低減、好きなLLMを選べる
- ベストプラクティスと豊富な機能セット
Milvusでベクトル検索を実行する方法
Milvusでベクトル検索を実行する方法
``ruby llm = Langchain::LLM::GooglePalm.new(api_key: "...")
クライアント + Langchain::Vectorsearch::Milvus.new(url:, index_name:, llm: llm) client.add_texts texts:テキスト: [...], ids: [...]
my_pdf = Langchain.root.join("/Documents/file.pdf") my_text = Langchain.root.join("/Documents/file.txt") my_docx = Langchain.root.join("/Documents/file.docx")
client.add_data(paths: [my_pdf, my_txt, my_docx])
上の例についてのメモ - この例では LLM に Google Palm を使用していますが、API キーを渡すことで LLM をインスタンス化することができます。 - Milvus ruby gem を使ってクライアントを作成し、Milvus が動作している URL、インデックス名、インデックスを渡します。 - ベクターを一つずつMilvusに送るか、一括アップサートを行う。 ActiveRecord`の例 ``ruby クラス Product < ActiveRecord::Base vectorsearch プロバイダ:Langchain::Vectorsearch::Milvus.new(url:, index_name:, llm:) 保存後 :upsert_to_vectorsearch 終了
ベクトル検索の例
``ruby
渡されたクエリ文字列に基づいて類似文書を検索する
client.similarity_search( クエリ:、 k: # 検索結果の数 )
渡された質問に基づく # Q&Aスタイルのクエリ client.ask( 質問 )
LangChainRBとMilvusの統合について学ぶ
- LangChainRB GitHubリポジトリ](https://github.com/andreibondarev/langchainrb)
- LangChainRBドキュメント](https://rubydoc.info/gems/langchainrb)
- RubyでGenAIアプリをエンドツーエンドで構築するビデオ](https://zilliz.com/event/building-genai-app-ruby)
- Milvusディスコードに参加する](https://discord.com/invite/8uyFbECzPX)
- LangChainRBディスコードに参加する](https://discord.com/invite/WDARp7J2n8)