@ effect- uai/ 聊天完成
可重用 OpenAI 聊天补全提供者 @effect-uai/core。 。 。 .
执行 LanguageModel 合同产生的合同 POST /chat/completions
有线方言(SSE流出, messages[], (中文(简体) ), tool_calls, (中文(简体) ), response_format) (中文(简体) ).
通过设置将其指向任何相容的终点 baseUrl: OpenRouter, 请求,
Groq, 一起, 或者一个自我托管的网关.
偏爱
@effect-uai/responses当端点表示响应协议时。 访问完成 只当它没有时: 此方言没有输入的推理项目, 没有 服务器侧状态( u)store编号 :previousResponseId) (中文(简体) ).
安装
pnpm add @effect-uai/chat-completions @effect-uai/core effect
仅限无害环境管理。 要求数 effect@>=4.0.1 财务报告和审定财务报表 @effect-uai/core 作为同伴.
使用量
import { Config, Effect, Layer } from "effect"
import { FetchHttpClient } from "effect/http"
import { layer as chatLayer } from "@effect-uai/chat-completions/ChatCompletions"
const provider = Layer.unwrap(
Effect.gen(function* () {
const apiKey = yield* Config.Redacted("LLM_API_KEY")
return chatLayer({
apiKey,
baseUrl: "https://openrouter.ai/api/v1",
provider: "openrouter",
})
}),
)
const layer = Layer.provide(provider, FetchHttpClient.layer)
层记录通用 LanguageModel 标签,所以提供者不可知循环
尸体不会改变的. model 是一个简单的字符串: 这些网关的船
数百个模型,所以没有打字联盟.
ChatConfig 还接受 path, (中文(简体) ), authHeader, (中文(简体) ), extraHeaders,以及 extraBody
与 OpenRouter 默认值不同的端点.
文档
https://effect-uai.com/professors/ 互联网档案馆的存檔,存档日期2014-12-02
许可证
麻省理工学院