模型与多模态AI 资源
ReqLLM:Elixir 生态中统一调用多家 LLM API 的可组合客户端库
agentjido/req_llm · Composable Elixir library for LLM interactions built on Req and Finch
ELI5:它是什么,解决什么问题
ReqLLM 是一个基于 Req 与 Finch 构建的 Elixir 库,将不同厂商 LLM API 的请求与响应标准化,提供统一、符合 Elixir 习惯的调用接口。它受 Vercel AI SDK 启发,提供 generate_text/3、stream_text/3、generate_object/4 等高层函数,内部由 Req 负责请求/响应、Finch 负责流式传输,并通过 provider 回调统一模型元数据、选项与响应格式。根据 README,其模型目录来自 LLMDB,覆盖 21 个已实现的 provider 集成、1,205 个模型,涵盖文本、嵌入、图像生成、语音、转录、重排与 OCR 等操作,同时支持 Ollama 和 LM Studio 本地推理。库还提供结构化输出、工具调用、模型路由 behaviour、评测模型(Jev)等能力。
核心能力与快速开始
★ 594 · Elixir
- 能做什么
- 提供跨 provider 的统一 Elixir 接口:基于 Req(请求/响应)与 Finch(流式)实现 provider transport 抽象;高层 API 包括 generate_text/3、stream_text/3、generate_object/4、stream_object/4、generate_image、stream_image、generate_video、wait_video、retrieve_video_file、evaluate 等;通过 ReqLLM.Output 描述文本、对象、数组、选择与任意 JSON 契约,支持严格输出校验;提供 ReqLLM.Context、Message、ContentPart、Tool、StreamChunk、Response、Usage 等类型化数据结构,并实现 Jason.Encoder;支持工具调用(callback)、流式 token、usage 元数据读取;提供 ReqLLM.Router behaviour 供应用自定义模型路由;内置基于 LLMDB 的 provider-agnostic 模型注册表,覆盖 21 个已实现 provider、1,205 个模型及 92 个非文本操作模型,含成本、上下文长度、模态、能力与弃用元数据;支持 Anthropic 网页搜索、扩展思考/推理、OpenAI Responses 推理摘要与上下文压缩、prompt caching 等 provider 专属能力;支持 Ollama 与 LM Studio 本地推理。
- 适用场景
- 在 Elixir/OTP 应用中统一接入多家 LLM 服务,避免为每个厂商单独编写客户端代码;构建需要文本生成、流式输出、结构化 JSON 输出、图像生成、语音合成/转录、重排或 OCR 的多模态应用;通过模型路由 behaviour 在快/深模型之间按应用上下文切换;使用评测模型(Jev)对文本或 JSON 状态执行布尔、选择、评分等命名问题;在本地通过 Ollama 或 LM Studio 运行模型;以统一方式管理工具调用与多模态内容。
- 项目形态
- 开发框架
- 部署方式
- 作为 Elixir 依赖库集成到应用中,可通过 Igniter 安装(mix igniter.install req_llm)或手动在 mix.exs 的 deps 中加入 {:req_llm, "~> 1.6"} 并运行 mix deps.get。API 密钥从 .env 文件或环境变量读取。amazon_bedrock 与 google_vertex 两个 provider 的部分认证能力需额外添加可选依赖(ex_aws_auth、goth)。本地推理可对接 Ollama 与 LM Studio 的自托管服务。
- 主要依赖
- Elixir 项目环境与 Mix 构建工具;使用 amazon_bedrock 的 AWS Signature V4 请求签名需 ex_aws_auth,使用 google_vertex 的 OAuth/ADC 需 goth;调用各 provider 需要相应 API 密钥(通过 .env 或环境变量提供);本地推理需要自行运行 Ollama 或 LM Studio 服务。其余硬件与运行环境要求材料未说明。
- 使用限制
- README 说明流式传输因 Req 对 SSE 响应的已知限制而直接使用 Finch;Google 图像模型 gemini-2.5-flash-image 和 gemini-3-pro-image-preview 会拒绝 :n 参数,需在 prompt 中指定图像数量;未知模型 ID 需要提供完整的内联模型规格与评测能力及执行元数据;目录中不支持评测的模型和没有适配器的网关会在 HTTP 前返回错误;Jev 评测不支持文本生成或流式;模型选择策略需应用自行实现,ReqLLM 不内置模型选择策略;routing_context 不会自动携带生成操作、流式状态、输出 schema、凭据等,需要应用显式传入。各 provider 的 API 成本、配额与具体限制材料未说明。
- 许可证
- Apache-2.0
- 最近推送
- 2026-10-09 06:20
资料检查:2026-10-09 07:00 · 卡片整理:2026-10-09 07:00
卡片由 AI 根据仓库资料整理,未进行安装或运行验证 · 本次更新未完成,保留上次成功内容
讨论 0
登录后参与讨论,阅读资讯无需注册。
还没有评论,来分享第一个看法。