Documentation
¶
Index ¶
- Constants
- func FilterSpecialFields(extras map[string]interface{}) map[string]interface{}
- func HandleAnthropicToGoogleStreamResponse(c *gin.Context, ...) error
- func HandleAnthropicToOpenAIStreamResponse(c *gin.Context, req *anthropic.MessageNewParams, ...) (int, int, error)
- func HandleGoogleToAnthropicBetaStreamResponse(c *gin.Context, stream iter.Seq2[*genai.GenerateContentResponse, error], ...) error
- func HandleGoogleToAnthropicStreamResponse(c *gin.Context, stream iter.Seq2[*genai.GenerateContentResponse, error], ...) error
- func HandleGoogleToOpenAIStreamResponse(c *gin.Context, stream iter.Seq2[*genai.GenerateContentResponse, error], ...) error
- func HandleOpenAIToAnthropicStreamResponse(c *gin.Context, req *openai.ChatCompletionNewParams, ...) error
- func HandleOpenAIToAnthropicV1BetaStreamResponse(c *gin.Context, req *openai.ChatCompletionNewParams, ...) error
- func HandleOpenAIToGoogleStreamResponse(c *gin.Context, stream *openaistream.Stream[openai.ChatCompletionChunk], ...) error
- func HandleResponsesToAnthropicBetaStreamResponse(c *gin.Context, ...) error
- func HandleResponsesToAnthropicStreamResponse(c *gin.Context, ...) error
- func HandleResponsesToAnthropicV1BetaStreamResponse(c *gin.Context, ...) error
- func HandleResponsesToAnthropicV1StreamResponse(c *gin.Context, ...) error
- func NewExampleTool() openai.ChatCompletionToolUnionParam
- type AnthropicStreamAssembler
- func (a *AnthropicStreamAssembler) Finish(model string, inputTokens, outputTokens int) *anthropic.Message
- func (a *AnthropicStreamAssembler) RecordV1BetaEvent(event *anthropic.BetaRawMessageStreamEventUnion)
- func (a *AnthropicStreamAssembler) RecordV1Event(event *anthropic.MessageStreamEventUnion)
- func (a *AnthropicStreamAssembler) SetUsage(inputTokens, outputTokens int)
- type StreamEventRecorder
Constants ¶
const (
// OpenAI extra field names that map to Anthropic content blocks
OpenaiFieldReasoningContent = "reasoning_content"
)
Variables ¶
This section is empty.
Functions ¶
func FilterSpecialFields ¶
FilterSpecialFields removes special fields that have dedicated content blocks e.g., reasoning_content is handled as thinking block, not merged into text_delta
func HandleAnthropicToGoogleStreamResponse ¶
func HandleAnthropicToGoogleStreamResponse(c *gin.Context, stream *anthropicstream.Stream[anthropic.MessageStreamEventUnion], responseModel string) error
HandleAnthropicToGoogleStreamResponse processes Anthropic streaming events and converts them to Google format
func HandleAnthropicToOpenAIStreamResponse ¶ added in v0.260124.900
func HandleAnthropicToOpenAIStreamResponse(c *gin.Context, req *anthropic.MessageNewParams, stream *anthropicstream.Stream[anthropic.MessageStreamEventUnion], responseModel string) (int, int, error)
HandleAnthropicToOpenAIStreamResponse processes Anthropic streaming events and converts them to OpenAI format Returns inputTokens, outputTokens, and error for usage tracking
func HandleGoogleToAnthropicBetaStreamResponse ¶
func HandleGoogleToAnthropicBetaStreamResponse(c *gin.Context, stream iter.Seq2[*genai.GenerateContentResponse, error], responseModel string) error
HandleGoogleToAnthropicBetaStreamResponse processes Google streaming events and converts them to Anthropic beta format
func HandleGoogleToAnthropicStreamResponse ¶
func HandleGoogleToAnthropicStreamResponse(c *gin.Context, stream iter.Seq2[*genai.GenerateContentResponse, error], responseModel string) error
HandleGoogleToAnthropicStreamResponse processes Google streaming events and converts them to Anthropic format
func HandleGoogleToOpenAIStreamResponse ¶
func HandleGoogleToOpenAIStreamResponse(c *gin.Context, stream iter.Seq2[*genai.GenerateContentResponse, error], responseModel string) error
HandleGoogleToOpenAIStreamResponse processes Google streaming events and converts them to OpenAI format
func HandleOpenAIToAnthropicStreamResponse ¶
func HandleOpenAIToAnthropicStreamResponse(c *gin.Context, req *openai.ChatCompletionNewParams, stream *openaistream.Stream[openai.ChatCompletionChunk], responseModel string) error
HandleOpenAIToAnthropicStreamResponse processes OpenAI streaming events and converts them to Anthropic format
func HandleOpenAIToAnthropicV1BetaStreamResponse ¶ added in v0.260124.900
func HandleOpenAIToAnthropicV1BetaStreamResponse(c *gin.Context, req *openai.ChatCompletionNewParams, stream *openaistream.Stream[openai.ChatCompletionChunk], responseModel string) error
HandleOpenAIToAnthropicV1BetaStreamResponse processes OpenAI streaming events and converts them to Anthropic beta format
func HandleOpenAIToGoogleStreamResponse ¶
func HandleOpenAIToGoogleStreamResponse(c *gin.Context, stream *openaistream.Stream[openai.ChatCompletionChunk], responseModel string) error
HandleOpenAIToGoogleStreamResponse processes OpenAI streaming events and converts them to Google format This handler writes Google-format streaming responses to the gin.Context
func HandleResponsesToAnthropicBetaStreamResponse ¶ added in v0.260204.1200
func HandleResponsesToAnthropicBetaStreamResponse(c *gin.Context, stream *openaistream.Stream[responses.ResponseStreamEventUnion], responseModel string) error
HandleResponsesToAnthropicBetaStreamResponse processes OpenAI Responses API streaming events and converts them to Anthropic beta format This is a thin wrapper that uses the shared core logic with beta event senders
func HandleResponsesToAnthropicStreamResponse ¶ added in v0.260204.1200
func HandleResponsesToAnthropicStreamResponse(c *gin.Context, stream *openaistream.Stream[responses.ResponseStreamEventUnion], responseModel string, senders responsesAPIEventSenders) error
HandleResponsesToAnthropicStreamResponse is the shared core logic for processing OpenAI Responses API streams and converting them to Anthropic format (v1 or beta depending on the senders provided)
func HandleResponsesToAnthropicV1BetaStreamResponse ¶ added in v0.260124.900
func HandleResponsesToAnthropicV1BetaStreamResponse(c *gin.Context, stream *openaistream.Stream[responses.ResponseStreamEventUnion], responseModel string) error
HandleResponsesToAnthropicV1BetaStreamResponse processes OpenAI Responses API streaming events and routes to the appropriate handler (v1 or beta) based on the original request format
func HandleResponsesToAnthropicV1StreamResponse ¶ added in v0.260204.1200
func HandleResponsesToAnthropicV1StreamResponse(c *gin.Context, stream *openaistream.Stream[responses.ResponseStreamEventUnion], responseModel string) error
HandleResponsesToAnthropicV1StreamResponse processes OpenAI Responses API streaming events and converts them to Anthropic v1 format This is a thin wrapper that uses the shared core logic with v1 event senders
func NewExampleTool ¶
func NewExampleTool() openai.ChatCompletionToolUnionParam
Types ¶
type AnthropicStreamAssembler ¶
type AnthropicStreamAssembler struct {
// contains filtered or unexported fields
}
AnthropicStreamAssembler assembles Anthropic streaming responses It is a pure assembler that doesn't depend on recording logic
func NewAnthropicStreamAssembler ¶
func NewAnthropicStreamAssembler() *AnthropicStreamAssembler
NewAnthropicStreamAssembler creates a new assembler for Anthropic streams
func (*AnthropicStreamAssembler) Finish ¶
func (a *AnthropicStreamAssembler) Finish(model string, inputTokens, outputTokens int) *anthropic.Message
Finish assembles the final response and returns it as anthropic.Message
func (*AnthropicStreamAssembler) RecordV1BetaEvent ¶
func (a *AnthropicStreamAssembler) RecordV1BetaEvent(event *anthropic.BetaRawMessageStreamEventUnion)
RecordV1BetaEvent processes a v1 beta stream event
func (*AnthropicStreamAssembler) RecordV1Event ¶
func (a *AnthropicStreamAssembler) RecordV1Event(event *anthropic.MessageStreamEventUnion)
RecordV1Event processes a v1 stream event
func (*AnthropicStreamAssembler) SetUsage ¶
func (a *AnthropicStreamAssembler) SetUsage(inputTokens, outputTokens int)
SetUsage sets the usage data
type StreamEventRecorder ¶
type StreamEventRecorder interface {
RecordRawMapEvent(eventType string, event map[string]interface{})
}
StreamEventRecorder is an interface for recording stream events during protocol conversion