Documentation
¶
Index ¶
- func BytesToFloat32(data []byte) []float32
- func CosineSimilarity(a, b []float32) float32
- func Float32ToBytes(data []float32) []byte
- type ClaudeChatRequest
- type ClaudeChatResponse
- type ClaudeMessage
- type ClaudeProvider
- func (p *ClaudeProvider) CheckSimilarity(ctx context.Context, prompt1, prompt2 string) (bool, error)
- func (p *ClaudeProvider) Embed(ctx context.Context, text string) ([]float32, error)
- func (p *ClaudeProvider) ForwardChatCompletion(ctx context.Context, requestBody []byte) ([]byte, int, error)
- func (p *ClaudeProvider) ForwardStreamingChatCompletion(ctx context.Context, requestBody []byte, w http.ResponseWriter) ([]byte, int, error)
- type Config
- type EmbeddingProvider
- type EmbeddingRequest
- type EmbeddingResponse
- type Message
- type MistralChatRequest
- type MistralChatResponse
- type MistralEmbeddingRequest
- type MistralEmbeddingResponse
- type MistralMessage
- type MistralProvider
- func (p *MistralProvider) CheckSimilarity(ctx context.Context, prompt1, prompt2 string) (bool, error)
- func (p *MistralProvider) Embed(ctx context.Context, text string) ([]float32, error)
- func (p *MistralProvider) ForwardChatCompletion(ctx context.Context, requestBody []byte) ([]byte, int, error)
- func (p *MistralProvider) ForwardStreamingChatCompletion(ctx context.Context, requestBody []byte, w http.ResponseWriter) ([]byte, int, error)
- type OpenAIChatCompletionRequest
- type OpenAIChatCompletionResponse
- type OpenAIChoice
- type OpenAIMessage
- type OpenAIProvider
- func (p *OpenAIProvider) CheckSimilarity(ctx context.Context, prompt1, prompt2 string) (bool, error)
- func (p *OpenAIProvider) Embed(ctx context.Context, text string) ([]float32, error)
- func (p *OpenAIProvider) ForwardChatCompletion(ctx context.Context, requestBody []byte) ([]byte, int, error)
- func (p *OpenAIProvider) ForwardStreamingChatCompletion(ctx context.Context, requestBody []byte, w http.ResponseWriter) ([]byte, int, error)
- type Provider
- type ProviderConfig
- type SemanticEngine
- func (se *SemanticEngine) AddToIndex(key string, embedding []float32)
- func (se *SemanticEngine) FindSimilar(ctx context.Context, text string) (string, float32, error)
- func (se *SemanticEngine) ForwardChatCompletion(ctx context.Context, requestBody []byte) ([]byte, int, error)
- func (se *SemanticEngine) ForwardStreamingChatCompletion(ctx context.Context, requestBody []byte, w http.ResponseWriter) ([]byte, int, error)
- func (se *SemanticEngine) GetConfig() map[string]interface{}
- func (se *SemanticEngine) GetCurrentProvider() string
- func (se *SemanticEngine) GetProvider() Provider
- func (se *SemanticEngine) SetProvider(providerName string) error
- func (se *SemanticEngine) UpdateThresholds(high, low float32, enableGrayZone *bool) error
- type Storage
- type VerificationRequest
- type VerificationResponse
- type Verifier
- type VoyageEmbeddingRequest
- type VoyageEmbeddingResponse
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BytesToFloat32 ¶
func CosineSimilarity ¶
func Float32ToBytes ¶
Types ¶
type ClaudeChatRequest ¶ added in v0.2.0
type ClaudeChatRequest struct {
Model string `json:"model"`
MaxTokens int `json:"max_tokens"`
System string `json:"system,omitempty"`
Messages []ClaudeMessage `json:"messages"`
Stream bool `json:"stream"`
}
type ClaudeChatResponse ¶ added in v0.2.0
type ClaudeMessage ¶ added in v0.2.0
type ClaudeProvider ¶ added in v0.2.0
type ClaudeProvider struct {
// contains filtered or unexported fields
}
ClaudeProvider implementation
func NewClaudeProvider ¶ added in v0.2.0
func NewClaudeProvider() *ClaudeProvider
func NewClaudeProviderWithConfig ¶ added in v0.3.0
func NewClaudeProviderWithConfig(cfg *ProviderConfig) *ClaudeProvider
func (*ClaudeProvider) CheckSimilarity ¶ added in v0.2.0
func (*ClaudeProvider) ForwardChatCompletion ¶ added in v0.3.0
func (*ClaudeProvider) ForwardStreamingChatCompletion ¶ added in v0.4.0
func (p *ClaudeProvider) ForwardStreamingChatCompletion(ctx context.Context, requestBody []byte, w http.ResponseWriter) ([]byte, int, error)
type Config ¶ added in v0.2.0
type Config struct {
HighThreshold float32
LowThreshold float32
EnableGrayZoneVerifier bool
EmbeddingDimension int // Dimension of embeddings (e.g., 1536 for OpenAI, 1024 for Voyage)
UseANNIndex bool // Whether to use ANN index for similarity search
}
Config holds configuration for the semantic engine
func LoadConfig ¶ added in v0.2.0
func LoadConfig() *Config
LoadConfig loads configuration from environment variables with sensible defaults
type EmbeddingProvider ¶
type EmbeddingRequest ¶
type EmbeddingResponse ¶
type EmbeddingResponse struct {
Data []struct {
Embedding []float64 `json:"embedding"`
} `json:"data"`
}
type MistralChatRequest ¶ added in v0.2.0
type MistralChatRequest struct {
Model string `json:"model"`
Messages []MistralMessage `json:"messages"`
}
type MistralChatResponse ¶ added in v0.2.0
type MistralChatResponse struct {
Choices []struct {
Message MistralMessage `json:"message"`
} `json:"choices"`
}
type MistralEmbeddingRequest ¶ added in v0.2.0
type MistralEmbeddingResponse ¶ added in v0.2.0
type MistralEmbeddingResponse struct {
Data []struct {
Embedding []float64 `json:"embedding"`
} `json:"data"`
}
type MistralMessage ¶ added in v0.2.0
type MistralProvider ¶ added in v0.2.0
type MistralProvider struct {
// contains filtered or unexported fields
}
MistralProvider implementation
func NewMistralProvider ¶ added in v0.2.0
func NewMistralProvider() *MistralProvider
func NewMistralProviderWithConfig ¶ added in v0.3.0
func NewMistralProviderWithConfig(cfg *ProviderConfig) *MistralProvider
func (*MistralProvider) CheckSimilarity ¶ added in v0.2.0
func (*MistralProvider) ForwardChatCompletion ¶ added in v0.3.0
func (*MistralProvider) ForwardStreamingChatCompletion ¶ added in v0.4.0
func (p *MistralProvider) ForwardStreamingChatCompletion(ctx context.Context, requestBody []byte, w http.ResponseWriter) ([]byte, int, error)
type OpenAIChatCompletionRequest ¶ added in v0.3.0
type OpenAIChatCompletionRequest struct {
Model string `json:"model"`
Messages []OpenAIMessage `json:"messages"`
Stream bool `json:"stream"`
}
OpenAI-compatible structures for translation
type OpenAIChatCompletionResponse ¶ added in v0.3.0
type OpenAIChoice ¶ added in v0.3.0
type OpenAIChoice struct {
Index int `json:"index"`
Message OpenAIMessage `json:"message"`
FinishReason string `json:"finish_reason"`
}
type OpenAIMessage ¶ added in v0.3.0
type OpenAIProvider ¶
type OpenAIProvider struct {
// contains filtered or unexported fields
}
OpenAIProvider implementation
func NewOpenAIProvider ¶
func NewOpenAIProvider() *OpenAIProvider
func NewOpenAIProviderWithConfig ¶ added in v0.3.0
func NewOpenAIProviderWithConfig(cfg *ProviderConfig) *OpenAIProvider
func (*OpenAIProvider) CheckSimilarity ¶
func (*OpenAIProvider) ForwardChatCompletion ¶ added in v0.3.0
func (*OpenAIProvider) ForwardStreamingChatCompletion ¶ added in v0.4.0
func (p *OpenAIProvider) ForwardStreamingChatCompletion(ctx context.Context, requestBody []byte, w http.ResponseWriter) ([]byte, int, error)
type Provider ¶ added in v0.2.0
type Provider interface {
EmbeddingProvider
Verifier
ForwardChatCompletion(ctx context.Context, requestBody []byte) ([]byte, int, error)
// ForwardStreamingChatCompletion streams SSE events to w and returns a buffered
// non-streaming JSON response suitable for caching.
ForwardStreamingChatCompletion(ctx context.Context, requestBody []byte, w http.ResponseWriter) ([]byte, int, error)
}
Provider combines EmbeddingProvider and Verifier interfaces
func NewProvider ¶ added in v0.2.0
NewProvider creates an embedding provider based on the EMBEDDING_PROVIDER environment variable Supported providers: openai (default), mistral, claude
type ProviderConfig ¶ added in v0.3.0
type ProviderConfig struct {
HTTPTimeout time.Duration
HTTPMaxRetries int
HTTPRetryBaseWait time.Duration
// OpenAI settings
OpenAIEmbedModel string
OpenAIVerifyModel string
// Mistral settings
MistralEmbedModel string
MistralVerifyModel string
// Claude settings
ClaudeModel string
ClaudeVerifyModel string
VoyageEmbedModel string
}
ProviderConfig holds configuration for providers
func DefaultProviderConfig ¶ added in v0.3.0
func DefaultProviderConfig() *ProviderConfig
DefaultProviderConfig returns default provider configuration
type SemanticEngine ¶
type SemanticEngine struct {
Provider Provider
Store Storage
Verifier Verifier
HighThreshold float32
LowThreshold float32
EnableGrayZoneVerifier bool
// contains filtered or unexported fields
}
func NewSemanticEngine ¶
func NewSemanticEngine(p Provider, s Storage, v Verifier, config *Config) *SemanticEngine
func (*SemanticEngine) AddToIndex ¶ added in v0.3.0
func (se *SemanticEngine) AddToIndex(key string, embedding []float32)
AddToIndex adds an embedding to the ANN index
func (*SemanticEngine) FindSimilar ¶
func (*SemanticEngine) ForwardChatCompletion ¶ added in v0.3.0
func (se *SemanticEngine) ForwardChatCompletion(ctx context.Context, requestBody []byte) ([]byte, int, error)
ForwardChatCompletion forwards the request to the current provider
func (*SemanticEngine) ForwardStreamingChatCompletion ¶ added in v0.4.0
func (se *SemanticEngine) ForwardStreamingChatCompletion(ctx context.Context, requestBody []byte, w http.ResponseWriter) ([]byte, int, error)
ForwardStreamingChatCompletion streams SSE events to w via the current provider. It returns a buffered full JSON response for caching and the HTTP status code.
func (*SemanticEngine) GetConfig ¶ added in v0.4.0
func (se *SemanticEngine) GetConfig() map[string]interface{}
GetConfig returns the current semantic configuration (thread-safe).
func (*SemanticEngine) GetCurrentProvider ¶ added in v0.2.0
func (se *SemanticEngine) GetCurrentProvider() string
GetCurrentProvider returns the name of the currently active provider
func (*SemanticEngine) GetProvider ¶ added in v0.2.0
func (se *SemanticEngine) GetProvider() Provider
GetProvider returns the current provider instance (thread-safe)
func (*SemanticEngine) SetProvider ¶ added in v0.2.0
func (se *SemanticEngine) SetProvider(providerName string) error
SetProvider dynamically changes the embedding provider at runtime
func (*SemanticEngine) UpdateThresholds ¶ added in v0.4.0
func (se *SemanticEngine) UpdateThresholds(high, low float32, enableGrayZone *bool) error
UpdateThresholds atomically updates the similarity thresholds and optionally the gray-zone verifier toggle. Returns an error if high <= low or values are out of range.
type VerificationRequest ¶
type VerificationResponse ¶
type VerificationResponse struct {
Choices []struct {
Message Message `json:"message"`
} `json:"choices"`
}
type VoyageEmbeddingRequest ¶ added in v0.2.0
type VoyageEmbeddingResponse ¶ added in v0.2.0
type VoyageEmbeddingResponse struct {
Data []struct {
Embedding []float64 `json:"embedding"`
} `json:"data"`
}