Documentation
¶
Overview ¶
Package providerformat converts LiveKit chat contexts into the wire-neutral request shapes consumed by OpenAI-compatible, Google Gemini, and Mistral APIs. It mirrors the provider_format namespace in agents-js while keeping provider client dependencies out of the core SDK.
The returned values contain only maps, slices, strings, booleans, and numbers, so callers can marshal them with encoding/json or pass them to a provider SDK without another LiveKit-specific dependency.
Index ¶
- func ConvertMidConversationInstructions(chat *llm.ChatContext, options ...InstructionConversionOptions) *llm.ChatContext
- func OpenAIChatContext(chat *llm.ChatContext, injectDummyUserMessage bool) ([]map[string]any, error)
- func OpenAIResponsesChatContext(chat *llm.ChatContext, injectDummyUserMessage bool) ([]map[string]any, error)
- func ToOpenAIChatContext(chat *llm.ChatContext, injectDummyUserMessage bool) ([]map[string]any, error)
- func ToOpenAIResponsesChatContext(chat *llm.ChatContext, injectDummyUserMessage bool) ([]map[string]any, error)
- type ChatItemGroup
- type GoogleFormatData
- type InstructionConversionOptions
- type MistralFormatData
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConvertMidConversationInstructions ¶
func ConvertMidConversationInstructions(chat *llm.ChatContext, options ...InstructionConversionOptions) *llm.ChatContext
ConvertMidConversationInstructions converts every system/developer message after the first such message into a normal message. This is required by providers that accept system instructions only at the beginning.
func OpenAIChatContext ¶
func OpenAIChatContext(chat *llm.ChatContext, injectDummyUserMessage bool) ([]map[string]any, error)
OpenAIChatContext converts a ChatContext to OpenAI Chat Completions message objects. injectDummyUserMessage is retained for API parity; OpenAI does not require a synthetic trailing user turn.
func OpenAIResponsesChatContext ¶
func OpenAIResponsesChatContext(chat *llm.ChatContext, injectDummyUserMessage bool) ([]map[string]any, error)
OpenAIResponsesChatContext converts a ChatContext to OpenAI Responses API input objects.
func ToOpenAIChatContext ¶
func ToOpenAIChatContext(chat *llm.ChatContext, injectDummyUserMessage bool) ([]map[string]any, error)
ToOpenAIChatContext is a compatibility alias for OpenAIChatContext.
func ToOpenAIResponsesChatContext ¶
func ToOpenAIResponsesChatContext(chat *llm.ChatContext, injectDummyUserMessage bool) ([]map[string]any, error)
ToOpenAIResponsesChatContext is a compatibility alias.
Types ¶
type ChatItemGroup ¶
type ChatItemGroup struct {
Message *llm.ChatMessage
ToolCalls []*llm.FunctionCall
ToolOutputs []*llm.FunctionCallOutput
}
ChatItemGroup is one coherent provider turn. An assistant message may share a group with parallel function calls and their corresponding outputs.
func GroupToolCalls ¶
func GroupToolCalls(chat *llm.ChatContext) ([]ChatItemGroup, error)
GroupToolCalls groups assistant messages, parallel function calls, and matching outputs using GroupID (or the ID prefix before '/'). Unpaired calls and outputs are omitted, matching agents-js provider behavior.
func (ChatItemGroup) Empty ¶
func (g ChatItemGroup) Empty() bool
Empty reports whether the group contains no provider-visible item.
func (ChatItemGroup) Flatten ¶
func (g ChatItemGroup) Flatten() []llm.ChatItem
Flatten returns the group's provider-visible items in upstream order.
type GoogleFormatData ¶
type GoogleFormatData struct {
SystemMessages []string `json:"systemMessages"`
}
GoogleFormatData carries system instructions that Gemini accepts separately from conversation turns.
func GoogleChatContext ¶
func GoogleChatContext(chat *llm.ChatContext, injectDummyUserMessage bool) ([]map[string]any, GoogleFormatData, error)
GoogleChatContext converts a ChatContext to Gemini turns and separately returned system messages.
func ToGoogleChatContext ¶
func ToGoogleChatContext(chat *llm.ChatContext, injectDummyUserMessage bool) ([]map[string]any, GoogleFormatData, error)
ToGoogleChatContext is a compatibility alias for GoogleChatContext.
type InstructionConversionOptions ¶
InstructionConversionOptions controls conversion of system/developer messages that appear after the conversation's initial instructions.
type MistralFormatData ¶
type MistralFormatData struct {
Instructions string `json:"instructions"`
}
MistralFormatData carries Mistral Conversations API instructions.
func MistralChatContext ¶
func MistralChatContext(chat *llm.ChatContext, injectDummyUserMessage bool) ([]map[string]any, MistralFormatData, error)
MistralChatContext converts a ChatContext into Mistral Conversations API entries and separately returned instructions.
func ToMistralChatContext ¶
func ToMistralChatContext(chat *llm.ChatContext, injectDummyUserMessage bool) ([]map[string]any, MistralFormatData, error)
ToMistralChatContext is a compatibility alias for MistralChatContext.