agentjido/req_llm

Composable Elixir library for LLM interactions built on Req and Finch

解決する課題

LLMプロバイダーのAPIは一貫性がなく、Elixirアプリケーションでモデルを切り替えたり、複数のサービスを統合したりすることが困難です。ReqLLMは、数十もの異なるAIプロバイダー間でのリクエストとレスポンスを正規化する、統一された標準化インターフェースを提供します。

仕組み

ReqLLMはプロバイダーに依存しないアーキテクチャを採用しており、高レベル関数(generate_textやstream_textなど)が一貫したエントリーポイントとして機能します。内部的には、標準的なHTTPリクエストにReqライブラリを、高性能なストリーミングにFinchを使用しています。各プロバイダー(Amazon Bedrock、Anthropic、OpenAIなど)の特定の要件に合わせてリクエストをマッピングし、パラメータ変換、認証、構造化出力の検証を自動的に処理します。

対象ユーザー

このプロジェクトは、プロバイダーごとにカスタムのボイラープレートコードを書くことなく、LLMをアプリケーションに統合したいElixir開発者向けです。特に、モデルの切り替えやマルチモーダル入力(テキスト、画像、音声、動画)の処理を、型安全かつ慣用的な方法で行う必要がある複雑なAIワークフローを構築している方に最適です。

ハイライト

  • 統一されたインターフェース: 22のプロバイダー名前空間にわたる1,200以上のモデルに、単一の一貫したAPIでアクセス可能。
  • 本番環境対応のストリーミング: 自動接続プールとメタデータ収集を備えた、テキストおよび画像ストリーミングの組み込みサポート。
  • 構造化出力: JSONオブジェクトの生成やスキーマの強制を行う強力なツールが含まれており、ネイティブな構造化出力モードもサポート。
  • 柔軟な設定: 階層的なキー管理システムと、アプリケーションロジックに基づいて動的にモデルを選択できるカスタムモデルルーターをサポート。
  • マルチモーダルサポート: テキスト、埋め込み、画像生成、音声、文字起こし、リランク、OCR操作を共通のデータモデルを通じて処理。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト