Documentation
¶
Index ¶
- Constants
- Variables
- func AnthropicMessagesURL(base string) string
- func ApplyChatReasoning(cfg *config.Root, p *openai.ChatCompletionNewParams, forceDisable bool)
- func ApplyMaxResponseTokens(cfg *config.Root, p *openai.ChatCompletionNewParams)
- func ApplyProviderSimpleParams(proto Protocol, cfg *config.Root, openaiParams *openai.ChatCompletionNewParams, ...)
- func ApplyProviderTurnParams(proto Protocol, cfg *config.Root, openaiParams *openai.ChatCompletionNewParams, ...)
- func ApplyReasoningDisable(p *openai.ChatCompletionNewParams)
- func BuildUserContentParts(content string, imageFiles map[int]string) []openai.ChatCompletionContentPartUnionParam
- func ImagePlaceholder(seq int) string
- func JumpLeftOverImgTag(line []rune, pos int) int
- func JumpRightOverImgTag(line []rune, pos int) int
- func LastAssistantIndex(msgs []chatstore.Message) int
- func MessageForAPI(m chatstore.Message, includeReasoning bool) chatstore.Message
- func MessageParams(system string, msgs []chatstore.Message, imageFiles map[int]string) []openai.ChatCompletionMessageParamUnion
- func MessagesForAPI(msgs []chatstore.Message) []chatstore.Message
- func ModelID(s string) shared.ChatModel
- func OpenAIClientFromBackend(b CompletionBackend) (openai.Client, bool)
- func PopulateAssistantTurnUsage(dst *chatstore.Message, system string, msgsPrior []chatstore.Message, ...)
- func PromptDisplaySplit(system string, msgs []chatstore.Message, apiPromptTokens int64) (contextTok int64, lastUserTok int64)
- func UsagePromptParts(system string, msgs []chatstore.Message, promptTokens int64, ...) (contextTok int64, lastUserTok int64, contextEstimated bool)
- func UsageTokensDisplayParts(system string, msgs []chatstore.Message, u UsageStats, turnCount int) (contextTok, lastUserTok int64, contextEstimated bool, ...)
- type AnthropicAuth
- type AnthropicAuthKind
- type AnthropicBackend
- func (b *AnthropicBackend) CompleteText(ctx context.Context, req SimpleCompletionRequest) (string, error)
- func (b *AnthropicBackend) ListModels(ctx context.Context) ([]string, error)
- func (b *AnthropicBackend) Protocol() Protocol
- func (b *AnthropicBackend) StreamText(ctx context.Context, req SimpleCompletionRequest, contentOut io.Writer, ...) (string, UsageStats, error)
- func (b *AnthropicBackend) StreamTurn(ctx context.Context, req TurnRequest, contentOut io.Writer, opts StreamOpts) (AssistantTurnResult, error)
- type AnthropicUsagePayload
- type AssistantToolCall
- type AssistantTurnResult
- type CompletionBackend
- type OpenAIBackend
- func (b *OpenAIBackend) CompleteText(ctx context.Context, req SimpleCompletionRequest) (string, error)
- func (b *OpenAIBackend) ListModels(ctx context.Context) ([]string, error)
- func (b *OpenAIBackend) Protocol() Protocol
- func (b *OpenAIBackend) StreamText(ctx context.Context, req SimpleCompletionRequest, contentOut io.Writer, ...) (string, UsageStats, error)
- func (b *OpenAIBackend) StreamTurn(ctx context.Context, req TurnRequest, contentOut io.Writer, opts StreamOpts) (AssistantTurnResult, error)
- type Protocol
- type SimpleCompletionRequest
- type StreamOpts
- type ToolDef
- type TurnRequest
- type UsageStats
Constants ¶
const AnthropicAPIVersion = "2023-06-01"
const AnthropicOAuthBeta = "oauth-2025-04-20"
Variables ¶
var ErrStreamAccumulatorRejected = errors.New("chat completion stream accumulator rejected chunk")
Functions ¶
func AnthropicMessagesURL ¶ added in v0.20260521.2
func ApplyChatReasoning ¶
func ApplyChatReasoning(cfg *config.Root, p *openai.ChatCompletionNewParams, forceDisable bool)
func ApplyMaxResponseTokens ¶
func ApplyMaxResponseTokens(cfg *config.Root, p *openai.ChatCompletionNewParams)
func ApplyProviderSimpleParams ¶ added in v0.20260521.2
func ApplyProviderTurnParams ¶ added in v0.20260521.2
func ApplyReasoningDisable ¶
func ApplyReasoningDisable(p *openai.ChatCompletionNewParams)
func BuildUserContentParts ¶
func BuildUserContentParts(content string, imageFiles map[int]string) []openai.ChatCompletionContentPartUnionParam
func ImagePlaceholder ¶
ImagePlaceholder returns the placeholder string for a given image sequence number.
func JumpLeftOverImgTag ¶
JumpLeftOverImgTag treats an [img-<n>] tag as a single atomic unit: if the cursor lies anywhere inside the tag (start < pos <= end), it jumps to start (before the tag). Spaces around the tag are never considered part of the placeholder.
func JumpRightOverImgTag ¶
JumpRightOverImgTag treats an [img-<n>] tag as a single atomic unit: if the cursor lies anywhere inside the tag (start <= pos < end), it jumps to end (after the tag). Spaces around the tag are never considered part of the placeholder.
func LastAssistantIndex ¶ added in v0.20260521.2
func MessageForAPI ¶ added in v0.20260521.2
func MessageParams ¶
func MessageParams(system string, msgs []chatstore.Message, imageFiles map[int]string) []openai.ChatCompletionMessageParamUnion
MessageParams builds OpenAI API message params from chatstore messages. If imageFiles is non-nil and contains entries for [img-<n>] placeholders found in user messages, those placeholders are replaced with image content parts.
func MessagesForAPI ¶ added in v0.20260521.2
func OpenAIClientFromBackend ¶ added in v0.20260521.2
func OpenAIClientFromBackend(b CompletionBackend) (openai.Client, bool)
func PromptDisplaySplit ¶
func UsagePromptParts ¶
func UsageTokensDisplayParts ¶
Types ¶
type AnthropicAuth ¶ added in v0.20260521.2
type AnthropicAuth struct {
Kind AnthropicAuthKind
Token string
}
func AnthropicAuthFromAPIKey ¶ added in v0.20260521.2
func AnthropicAuthFromAPIKey(token string) AnthropicAuth
func AnthropicAuthFromOAuthBearer ¶ added in v0.20260521.2
func AnthropicAuthFromOAuthBearer(token string) AnthropicAuth
func (AnthropicAuth) ApplyTo ¶ added in v0.20260521.2
func (a AnthropicAuth) ApplyTo(req *http.Request)
type AnthropicAuthKind ¶ added in v0.20260521.2
type AnthropicAuthKind int
const ( AnthropicAuthAPIKey AnthropicAuthKind = iota AnthropicAuthOAuthBearer )
type AnthropicBackend ¶ added in v0.20260521.2
type AnthropicBackend struct {
// contains filtered or unexported fields
}
func NewAnthropicBackend ¶ added in v0.20260521.2
func NewAnthropicBackend(baseURL string, auth AnthropicAuth) *AnthropicBackend
func (*AnthropicBackend) CompleteText ¶ added in v0.20260521.2
func (b *AnthropicBackend) CompleteText(ctx context.Context, req SimpleCompletionRequest) (string, error)
func (*AnthropicBackend) ListModels ¶ added in v0.20260521.2
func (b *AnthropicBackend) ListModels(ctx context.Context) ([]string, error)
func (*AnthropicBackend) Protocol ¶ added in v0.20260521.2
func (b *AnthropicBackend) Protocol() Protocol
func (*AnthropicBackend) StreamText ¶ added in v0.20260521.2
func (b *AnthropicBackend) StreamText(ctx context.Context, req SimpleCompletionRequest, contentOut io.Writer, opts StreamOpts) (string, UsageStats, error)
func (*AnthropicBackend) StreamTurn ¶ added in v0.20260521.2
func (b *AnthropicBackend) StreamTurn(ctx context.Context, req TurnRequest, contentOut io.Writer, opts StreamOpts) (AssistantTurnResult, error)
type AnthropicUsagePayload ¶ added in v0.20260521.2
type AssistantToolCall ¶
type AssistantTurnResult ¶
type AssistantTurnResult struct {
Content string
ReasoningText string
ToolCalls []AssistantToolCall
Usage UsageStats
}
func StreamAssistantTurn ¶
func StreamAssistantTurn(ctx context.Context, client openai.Client, params openai.ChatCompletionNewParams, contentOut io.Writer, opts StreamOpts) (AssistantTurnResult, error)
type CompletionBackend ¶ added in v0.20260521.2
type CompletionBackend interface {
Protocol() Protocol
StreamTurn(ctx context.Context, req TurnRequest, contentOut io.Writer, opts StreamOpts) (AssistantTurnResult, error)
StreamText(ctx context.Context, req SimpleCompletionRequest, contentOut io.Writer, opts StreamOpts) (string, UsageStats, error)
CompleteText(ctx context.Context, req SimpleCompletionRequest) (string, error)
ListModels(ctx context.Context) ([]string, error)
}
func NewCompletionBackend ¶ added in v0.20260521.2
type OpenAIBackend ¶ added in v0.20260521.2
func (*OpenAIBackend) CompleteText ¶ added in v0.20260521.2
func (b *OpenAIBackend) CompleteText(ctx context.Context, req SimpleCompletionRequest) (string, error)
func (*OpenAIBackend) ListModels ¶ added in v0.20260521.2
func (b *OpenAIBackend) ListModels(ctx context.Context) ([]string, error)
func (*OpenAIBackend) Protocol ¶ added in v0.20260521.2
func (b *OpenAIBackend) Protocol() Protocol
func (*OpenAIBackend) StreamText ¶ added in v0.20260521.2
func (b *OpenAIBackend) StreamText(ctx context.Context, req SimpleCompletionRequest, contentOut io.Writer, opts StreamOpts) (string, UsageStats, error)
func (*OpenAIBackend) StreamTurn ¶ added in v0.20260521.2
func (b *OpenAIBackend) StreamTurn(ctx context.Context, req TurnRequest, contentOut io.Writer, opts StreamOpts) (AssistantTurnResult, error)
type SimpleCompletionRequest ¶ added in v0.20260521.2
type StreamOpts ¶
type ToolDef ¶ added in v0.20260521.2
func ToolDefsFromOpenAI ¶ added in v0.20260521.2
func ToolDefsFromOpenAI(tools []openai.ChatCompletionToolUnionParam) []ToolDef
type TurnRequest ¶ added in v0.20260521.2
type UsageStats ¶
type UsageStats struct {
PromptTokens int64
CachedPromptTokens int64
CacheCreationPromptTokens int64
ReasoningTokens int64
ResponseTokens int64
TotalTokens int64
OutputTPS float64
TTFTSecs float64
PromptTPS float64
TurnWallSecs float64
ThoughtSecs float64
}
func AggregateConsecutiveTurnUsage ¶
func AggregateConsecutiveTurnUsage(usages []UsageStats) UsageStats
func NormalizeAnthropicUsage ¶ added in v0.20260521.2
func NormalizeAnthropicUsage(u AnthropicUsagePayload) UsageStats
func StreamText ¶
func StreamText(ctx context.Context, client openai.Client, params openai.ChatCompletionNewParams, contentOut io.Writer, opts StreamOpts) (string, UsageStats, error)