agentjido/req_llm
Composable Elixir library for LLM interactions built on Req and Finch
解决的问题
LLM 提供商的 API 各不相同,使得在 Elixir 应用程序中切换模型或集成多个服务变得困难。ReqLLM 提供了一个统一、标准化的接口,规范了数十个不同 AI 提供商的请求和响应。
工作原理
ReqLLM 使用与提供商无关的架构,其中高级函数(如 generate_text 或 stream_text)充当一致的入口点。在底层,它使用 Req 库进行标准 HTTP 请求,并使用 Finch 进行高性能流式传输。它将您的请求映射到每个提供商(如 Amazon Bedrock、Anthropic 或 OpenAI)的具体要求,并自动处理参数转换、身份验证和结构化输出验证。
适用人群
该项目适用于希望将 LLM 集成到应用程序中,而无需为每个提供商编写自定义样板代码的 Elixir 开发人员。对于那些构建复杂 AI 工作流,需要以类型安全、符合惯用法的方式切换模型或处理多模态输入(文本、图像、音频、视频)的开发者特别有用。
亮点
- 统一接口:使用单一、一致的 API 访问 22 个提供商命名空间下的 1,200 多个模型。
- 生产级流式传输:内置对文本和图像流的支持,具有自动连接池和元数据收集功能。
- 结构化输出:包含用于生成 JSON 对象和强制执行模式的强大工具,并支持原生结构化输出模式。
- 灵活配置:具有分层密钥管理系统,并支持自定义模型路由器,可根据应用程序逻辑动态选择模型。
- 多模态支持:通过通用数据模型处理文本、嵌入、图像生成、语音、转录、重排序和 OCR 操作。
相关
- 项目
- 项目
- 项目
- 项目
- 项目