LLM4S Scala 是一套在 Scala 中以函数式风格调用大语言模型的接口方案,核心思路是把 LLM 调用建模为效应(Effect),并借助 ZIO 或 Cats Effect 等范畴效应系统实现类型安全与可组合性。
用途:在 Scala 项目中构建 LLM 应用,尤其是需要 ZIO 或 Cats Effect 的场景,例如结构化生成、流式输出、多步提示流水线与工具增强调用。
主要能力:以 LLMClient 抽象 complete 与 stream 两类操作;用 CompletionRequest、Message、CompletionResponse、Usage 等数据类型描述请求与响应,并通过 zio-json 的 JsonCodec 派生实现结构化输出;提供 OpenAI 客户端实现示例,使用 zio-http 发起请求并以环境变量 OPENAI_API_KEY 注入密钥;支持把提示模板建模为 Functor,用 ReaderT 构造 LLMIO 单子变换器,或用 Kleisli 组合分类、细化、格式化等步骤;提供 ZIO Service 模式(LLMService 与 LLMServiceLive 层)以及 FS2 流式处理;还包含类型化错误(RateLimitError、InvalidRequestError、ModelError)与重试调度,以及 Tool 定义用于工具增强调用。
使用方式:在 build.sbt 中加入 zio、zio-json、cats-effect、fs2-core 依赖,然后按需实现 LLMClient 或直接使用 LLMService 层,通过 for 推导式或 Kleisli 组合串联多个 LLM 调用。
适用场景:需要强类型、可组合、可测试的 Scala LLM 后端服务、提示流水线与流式生成。
限制:资料未提供具体版本兼容性、性能数据、收费信息或完整生产部署说明;示例中的流式实现与工具执行部分为示意代码,实际行为需自行实现与验证。