openai

package
v1.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 26, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AdvancedMockOpenAIEmbedder added in v1.9.1

type AdvancedMockOpenAIEmbedder struct {
	mock.Mock
	// contains filtered or unexported fields
}

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

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

type HealthChecker interface {
	Check(ctx context.Context) error
}

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

func (e *OpenAIEmbedder) EmbedQuery(ctx context.Context, query string) ([]float32, error)

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL