Documentation
¶
Index ¶
- type AdvancedMockOpenAIEmbedder
- func (m *AdvancedMockOpenAIEmbedder) Check(ctx context.Context) error
- func (m *AdvancedMockOpenAIEmbedder) EmbedDocuments(ctx context.Context, documents []string) ([][]float32, error)
- func (m *AdvancedMockOpenAIEmbedder) EmbedQuery(ctx context.Context, text string) ([]float32, error)
- func (m *AdvancedMockOpenAIEmbedder) GetCallCount() int
- func (m *AdvancedMockOpenAIEmbedder) GetDimension(ctx context.Context) (int, error)
- func (m *AdvancedMockOpenAIEmbedder) Reset()
- func (m *AdvancedMockOpenAIEmbedder) SetDelay(delay time.Duration)
- func (m *AdvancedMockOpenAIEmbedder) SetError(shouldError bool, err error)
- func (m *AdvancedMockOpenAIEmbedder) SetRateLimit(enabled bool)
- type Client
- type Config
- type HealthChecker
- type OpenAIEmbedder
- func (e *OpenAIEmbedder) Check(ctx context.Context) error
- func (e *OpenAIEmbedder) EmbedDocuments(ctx context.Context, documents []string) ([][]float32, error)
- func (e *OpenAIEmbedder) EmbedQuery(ctx context.Context, query string) ([]float32, error)
- func (e *OpenAIEmbedder) GetDimension(ctx context.Context) (int, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AdvancedMockOpenAIEmbedder ¶ added in v1.9.1
AdvancedMockOpenAIEmbedder provides a comprehensive mock implementation for testing OpenAI embedder.
func NewAdvancedMockOpenAIEmbedder ¶ added in v1.9.1
func NewAdvancedMockOpenAIEmbedder(dimension int) *AdvancedMockOpenAIEmbedder
NewAdvancedMockOpenAIEmbedder creates a new advanced mock with configurable behavior.
func (*AdvancedMockOpenAIEmbedder) Check ¶ added in v1.9.1
func (m *AdvancedMockOpenAIEmbedder) Check(ctx context.Context) error
Check implements the HealthChecker interface.
func (*AdvancedMockOpenAIEmbedder) EmbedDocuments ¶ added in v1.9.1
func (m *AdvancedMockOpenAIEmbedder) EmbedDocuments(ctx context.Context, documents []string) ([][]float32, error)
EmbedDocuments creates embeddings for a batch of document texts.
func (*AdvancedMockOpenAIEmbedder) EmbedQuery ¶ added in v1.9.1
func (m *AdvancedMockOpenAIEmbedder) EmbedQuery(ctx context.Context, text string) ([]float32, error)
EmbedQuery creates an embedding for a single query text.
func (*AdvancedMockOpenAIEmbedder) GetCallCount ¶ added in v1.9.1
func (m *AdvancedMockOpenAIEmbedder) GetCallCount() int
GetCallCount returns the number of times methods have been called.
func (*AdvancedMockOpenAIEmbedder) GetDimension ¶ added in v1.9.1
func (m *AdvancedMockOpenAIEmbedder) GetDimension(ctx context.Context) (int, error)
GetDimension returns the dimension of embeddings produced by this embedder.
func (*AdvancedMockOpenAIEmbedder) Reset ¶ added in v1.9.1
func (m *AdvancedMockOpenAIEmbedder) Reset()
Reset resets the mock state.
func (*AdvancedMockOpenAIEmbedder) SetDelay ¶ added in v1.9.1
func (m *AdvancedMockOpenAIEmbedder) SetDelay(delay time.Duration)
SetDelay configures the mock to simulate delay.
func (*AdvancedMockOpenAIEmbedder) SetError ¶ added in v1.9.1
func (m *AdvancedMockOpenAIEmbedder) SetError(shouldError bool, err error)
SetError configures the mock to return an error.
func (*AdvancedMockOpenAIEmbedder) SetRateLimit ¶ added in v1.9.1
func (m *AdvancedMockOpenAIEmbedder) SetRateLimit(enabled bool)
SetRateLimit configures the mock to simulate rate limiting.
type Client ¶
type Client interface {
CreateEmbeddings(ctx context.Context, req openaiClient.EmbeddingRequestConverter) (openaiClient.EmbeddingResponse, error)
}
Client defines the interface for OpenAI API client operations.
type Config ¶
type Config struct {
APIKey string
Model string
BaseURL string
APIVersion string
Timeout time.Duration
MaxRetries int
Enabled bool
}
Config holds configuration for OpenAI embedder.
type HealthChecker ¶
HealthChecker interface for health checks.
type OpenAIEmbedder ¶
type OpenAIEmbedder struct {
// contains filtered or unexported fields
}
OpenAIEmbedder implements the iface.Embedder interface using the OpenAI API.
func NewOpenAIEmbedder ¶
func NewOpenAIEmbedder(config *Config, tracer trace.Tracer) (*OpenAIEmbedder, error)
NewOpenAIEmbedder creates a new OpenAIEmbedder with the given configuration. It creates an OpenAI client from the configuration for generating text embeddings.
Parameters:
- config: Configuration containing API key, model name, base URL, and other settings
- tracer: OpenTelemetry tracer for observability (can be nil)
Returns:
- *OpenAIEmbedder: A new OpenAI embedder instance
- error: Configuration validation errors or client creation errors
Example:
config := &openai.Config{
APIKey: "your-api-key",
Model: "text-embedding-3-small",
Timeout: 30 * time.Second,
}
embedder, err := openai.NewOpenAIEmbedder(config, tracer)
if err != nil {
log.Fatal(err)
}
embeddings, err := embedder.EmbedDocuments(ctx, texts)
Example usage can be found in examples/rag/simple/main.go.
func NewOpenAIEmbedderWithClient ¶
func NewOpenAIEmbedderWithClient(config *Config, tracer trace.Tracer, client Client) (*OpenAIEmbedder, error)
NewOpenAIEmbedderWithClient creates a new OpenAIEmbedder with a provided client. This is primarily used for testing with mocked clients or when you need to inject a custom client implementation.
Parameters:
- config: Configuration containing API key, model name, and other settings
- tracer: OpenTelemetry tracer for observability (can be nil)
- client: OpenAI client implementation (must not be nil)
Returns:
- *OpenAIEmbedder: A new OpenAI embedder instance
- error: Configuration validation errors or if client is nil
Example:
mockClient := &MockOpenAIClient{}
embedder, err := openai.NewOpenAIEmbedderWithClient(config, tracer, mockClient)
Example usage can be found in examples/rag/simple/main.go.
func (*OpenAIEmbedder) Check ¶
func (e *OpenAIEmbedder) Check(ctx context.Context) error
Check performs a health check on the OpenAI embedder.
func (*OpenAIEmbedder) EmbedDocuments ¶
func (e *OpenAIEmbedder) EmbedDocuments(ctx context.Context, documents []string) ([][]float32, error)
EmbedDocuments creates embeddings for a batch of document texts.
func (*OpenAIEmbedder) EmbedQuery ¶
EmbedQuery creates an embedding for a single query string.
func (*OpenAIEmbedder) GetDimension ¶
func (e *OpenAIEmbedder) GetDimension(ctx context.Context) (int, error)
GetDimension returns the dimensionality of embeddings.