Documentation
¶
Index ¶
- func ConvertMessages(messages []chat.Message) []openai.ChatCompletionMessageParamUnion
- func ConvertMultiContent(multiContent []chat.MessagePart) []openai.ChatCompletionContentPartUnionParam
- func ErrorBodyMiddleware() option.Middleware
- func MergeConsecutiveMessages(openaiMessages []openai.ChatCompletionMessageParamUnion) []openai.ChatCompletionMessageParamUnion
- type JSONSchema
- type StreamAdapter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConvertMessages ¶ added in v1.8.2
func ConvertMessages(messages []chat.Message) []openai.ChatCompletionMessageParamUnion
ConvertMessages converts chat.Message slices to OpenAI message params. This is the base conversion without any provider-specific post-processing.
func ConvertMultiContent ¶ added in v1.8.2
func ConvertMultiContent(multiContent []chat.MessagePart) []openai.ChatCompletionContentPartUnionParam
ConvertMultiContent converts chat.MessagePart slices to OpenAI content parts.
func ErrorBodyMiddleware ¶ added in v1.21.0
func ErrorBodyMiddleware() option.Middleware
ErrorBodyMiddleware returns an OpenAI SDK middleware that preserves full error details in HTTP error responses.
The OpenAI SDK extracts only the "error" field from error response bodies (via gjson). When a provider returns a body without an "error" object (e.g. a string "error" field, plain text, or a different JSON structure), the details are silently lost. This middleware rewrites such responses into {"error": <original body>} so the SDK preserves the full content.
func MergeConsecutiveMessages ¶ added in v1.8.2
func MergeConsecutiveMessages(openaiMessages []openai.ChatCompletionMessageParamUnion) []openai.ChatCompletionMessageParamUnion
MergeConsecutiveMessages merges consecutive system or user messages into single messages. This is needed by some local models (like those run by DMR) that don't handle consecutive same-role messages well.
Types ¶
type JSONSchema ¶ added in v1.8.2
JSONSchema is a helper type that implements json.Marshaler for map[string]any. This allows us to pass schema maps to the OpenAI library which expects json.Marshaler.
func (JSONSchema) MarshalJSON ¶ added in v1.8.2
func (j JSONSchema) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler for JSONSchema.
type StreamAdapter ¶
type StreamAdapter struct {
// contains filtered or unexported fields
}
StreamAdapter adapts the OpenAI stream to our interface
func NewStreamAdapter ¶
func NewStreamAdapter(stream *ssestream.Stream[openai.ChatCompletionChunk], trackUsage bool) *StreamAdapter
func (*StreamAdapter) Recv ¶
func (a *StreamAdapter) Recv() (chat.MessageStreamResponse, error)
Recv gets the next completion chunk