Documentation
¶
Overview ¶
Package openai 实现 OpenAI Chat Completions API 的 ModelProvider.
支持所有 OpenAI 官方模型(GPT-4o,o1,o3 系列等), 通过 Config.ModelOverrides 可注入厂商新发布但我们尚未维护的模型.
内部复用 internal/wire/openai_compat.go 处理 SSE 流式协议, 本包只负责配置工厂和维护静态模型表.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// APIKey 是 OpenAI API 密钥(sk-... 格式).
APIKey string
// BaseURL 覆盖 API 端点(默认 https://api.openai.com).
// 用于 Azure OpenAI,兼容 OpenAI 的私有化端点等.
BaseURL string
// HTTPClient 注入自定义 HTTP 客户端.
// nil = 使用默认 http.Client (带 Timeout 字段配置的 ResponseHeaderTimeout).
// 非 nil 时 consumer 完全接管超时责任, 下面的 Timeout 字段被忽略.
HTTPClient *http.Client
// Timeout 限制"从请求发出到收到响应首字节"的时间.
//
// 通过 http.Transport.ResponseHeaderTimeout 实现, **不影响** SSE 流式响应的后续
// body 读取 - 长流式回复 (2-5 分钟) 可以正常读完.这是 LLM provider 的正确超时
// 语义: 捕捉服务端死等, 放行长流式输出.
//
// 精妙之处(CLEVER): 不要误用 http.Client.Timeout - 那会把 SSE 流砍死.
// 详见 internal/wire/openai.go defaultResponseHeaderTimeout 注释.
//
// 0 = 使用 defaultTimeout (60s, 适合 OpenAI 云端).
// 仅当 HTTPClient 为 nil 时生效; 提供自定义 HTTPClient 时此字段被忽略.
Timeout time.Duration
// ModelOverrides 覆盖或扩展静态模型表.
// 厂商发布新模型时,无需等待我们更新代码即可使用.
ModelOverrides []flyto.ModelInfo
}
Config 是 OpenAI provider 的配置.
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
Provider 是 OpenAI ModelProvider 实现.
Click to show internal directories.
Click to hide internal directories.