sigmatest

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package sigmatest provides deterministic providers and helpers for testing sigma clients without live provider calls.

Index

Examples

Constants

View Source
const (
	// ProviderID is the provider id used by TextModel and registry helpers.
	ProviderID sigma.ProviderID = "sigmatest"
	// TextAPI is the provider API reported by FauxProvider.
	TextAPI sigma.API = "sigmatest-text"
	// TextModelID is the model id returned by TextModel.
	TextModelID sigma.ModelID = "sigmatest-text"
)
View Source
const (
	// EmbeddingAPI is the provider API reported by FauxEmbeddingProvider.
	EmbeddingAPI sigma.EmbeddingAPI = "sigmatest-embeddings"
	// EmbeddingModelID is the model id returned by EmbeddingModel.
	EmbeddingModelID sigma.ModelID = "sigmatest-embedding"
)
View Source
const (
	// ImageAPI is the provider API reported by FauxImageProvider.
	ImageAPI sigma.ImageAPI = "sigmatest-images"
	// ImageModelID is the model id returned by ImageModel.
	ImageModelID sigma.ModelID = "sigmatest-image"
)

Variables

This section is empty.

Functions

func EmbeddingModel added in v0.3.0

func EmbeddingModel() sigma.EmbeddingModel

EmbeddingModel returns an embedding model suitable for isolated sigmatest registries.

func EmbeddingRegistry added in v0.3.0

func EmbeddingRegistry(provider *FauxEmbeddingProvider, models ...sigma.EmbeddingModel) (*sigma.Registry, error)

EmbeddingRegistry constructs an isolated registry containing embedding provider and models.

func ImageModel

func ImageModel() sigma.ImageModel

ImageModel returns an image model suitable for isolated sigmatest registries.

func ImageRegistry

func ImageRegistry(provider *FauxImageProvider, models ...sigma.ImageModel) (*sigma.Registry, error)

ImageRegistry constructs an isolated registry containing image provider and models.

func Register

func Register(registry *sigma.Registry, provider *FauxProvider, models ...sigma.Model) error

Register adds provider and models to registry. If no models are supplied, TextModel is registered.

func RegisterEmbeddings added in v0.3.0

func RegisterEmbeddings(registry *sigma.Registry, provider *FauxEmbeddingProvider, models ...sigma.EmbeddingModel) error

RegisterEmbeddings adds an embedding provider and models to registry.

func RegisterImages

func RegisterImages(registry *sigma.Registry, provider *FauxImageProvider, models ...sigma.ImageModel) error

RegisterImages adds an image provider and image models to registry. If no models are supplied, ImageModel is registered.

func Registry

func Registry(provider *FauxProvider, models ...sigma.Model) (*sigma.Registry, error)

Registry constructs an isolated registry containing provider and models.

func TextModel

func TextModel() sigma.Model

TextModel returns a model suitable for isolated sigmatest registries.

Types

type EmbeddingRequestCapture added in v0.3.0

type EmbeddingRequestCapture struct {
	Model   sigma.EmbeddingModel
	Request sigma.EmbeddingRequest
	Options sigma.Options
}

EmbeddingRequestCapture is an immutable-by-convention copy of one embedding request.

type EmbeddingScript added in v0.3.0

type EmbeddingScript struct {
	Response      sigma.Embeddings
	Err           error
	Delay         time.Duration
	WaitForCancel bool
}

EmbeddingScript describes one deterministic embedding provider response.

type FauxEmbeddingProvider added in v0.3.0

type FauxEmbeddingProvider struct {
	// contains filtered or unexported fields
}

FauxEmbeddingProvider is a deterministic sigma.EmbeddingProvider for tests.

func NewFauxEmbeddingProvider added in v0.3.0

func NewFauxEmbeddingProvider(scripts ...EmbeddingScript) *FauxEmbeddingProvider

NewFauxEmbeddingProvider constructs an embedding provider that consumes scripts in call order.

func (*FauxEmbeddingProvider) API added in v0.3.0

API reports the faux embedding API.

func (*FauxEmbeddingProvider) Embed added in v0.3.0

Embed records the request and returns the next scripted embedding response.

func (*FauxEmbeddingProvider) Enqueue added in v0.3.0

func (p *FauxEmbeddingProvider) Enqueue(scripts ...EmbeddingScript)

Enqueue appends scripts to be consumed by future Embed calls.

func (*FauxEmbeddingProvider) LastRequest added in v0.3.0

LastRequest returns a copy of the most recent embedding request.

func (*FauxEmbeddingProvider) Requests added in v0.3.0

Requests returns copies of embedding requests received by the provider.

type FauxImageProvider

type FauxImageProvider struct {
	// contains filtered or unexported fields
}

FauxImageProvider is a deterministic sigma.ImageProvider for tests and examples.

func NewFauxImageProvider

func NewFauxImageProvider(scripts ...ImageScript) *FauxImageProvider

NewFauxImageProvider constructs an image provider that consumes scripts in call order.

func (*FauxImageProvider) API

func (p *FauxImageProvider) API() sigma.ImageAPI

API reports the faux image API.

func (*FauxImageProvider) Enqueue

func (p *FauxImageProvider) Enqueue(scripts ...ImageScript)

Enqueue appends scripts to be consumed by future Generate calls.

func (*FauxImageProvider) Generate

Generate records the request and returns the next scripted image response.

func (*FauxImageProvider) LastRequest

func (p *FauxImageProvider) LastRequest() (ImageRequestCapture, bool)

LastRequest returns a copy of the most recent image request.

func (*FauxImageProvider) Requests

func (p *FauxImageProvider) Requests() []ImageRequestCapture

Requests returns copies of image requests received by the provider.

type FauxProvider

type FauxProvider struct {
	// contains filtered or unexported fields
}

FauxProvider is a deterministic sigma.TextProvider for tests and examples.

Example
package main

import (
	"context"
	"fmt"

	"github.com/wintermi/sigma"
	"github.com/wintermi/sigma/sigmatest"
)

func main() {
	provider := sigmatest.NewFauxProvider(sigmatest.Script{
		Final: sigma.AssistantMessage{
			Content: []sigma.ContentBlock{sigma.Text("hello")},
		},
	})
	registry, _ := sigmatest.Registry(provider)
	client := sigma.NewClient(sigma.WithRegistry(registry))

	final, _ := client.Complete(context.Background(), sigmatest.TextModel(), sigma.Request{
		Messages: []sigma.Message{sigma.UserText("hi")},
	})
	fmt.Println(final.Content[0].Text)

}
Output:
hello

func NewFauxProvider

func NewFauxProvider(scripts ...Script) *FauxProvider

NewFauxProvider constructs a provider that consumes scripts in call order.

func (*FauxProvider) API

func (p *FauxProvider) API() sigma.API

API reports the faux text API.

func (*FauxProvider) Enqueue

func (p *FauxProvider) Enqueue(scripts ...Script)

Enqueue appends scripts to be consumed by future Stream calls.

func (*FauxProvider) LastRequest

func (p *FauxProvider) LastRequest() (RequestCapture, bool)

LastRequest returns a copy of the most recent provider request.

func (*FauxProvider) Requests

func (p *FauxProvider) Requests() []RequestCapture

Requests returns copies of requests received by the provider.

func (*FauxProvider) Stream

func (p *FauxProvider) Stream(ctx context.Context, model sigma.Model, req sigma.Request, opts sigma.Options) *sigma.Stream

Stream records the request and emits the next scripted stream.

type ImageRequestCapture

type ImageRequestCapture struct {
	Model   sigma.ImageModel
	Request sigma.ImageRequest
	Options sigma.Options
}

ImageRequestCapture is an immutable-by-convention copy of one image request.

type ImageScript

type ImageScript struct {
	Response      sigma.AssistantImages
	Err           error
	Delay         time.Duration
	WaitForCancel bool
}

ImageScript describes one deterministic image provider response.

Each call to FauxImageProvider.Generate consumes one script. Delay waits before the terminal result. WaitForCancel makes the script block until the request context is canceled.

type RequestCapture

type RequestCapture struct {
	Model   sigma.Model
	Request sigma.Request
	Options sigma.Options
}

RequestCapture is an immutable-by-convention copy of one provider request.

type Script

type Script struct {
	Events        []sigma.Event
	Final         sigma.AssistantMessage
	Err           error
	Delay         time.Duration
	WaitForCancel bool
}

Script describes one deterministic provider response.

Each call to FauxProvider.Stream consumes one script. Events are emitted in order, then either Err or Final terminates the stream. Delay waits before each scripted event and before the terminal result. WaitForCancel makes the script block until the request context is canceled.

Jump to

Keyboard shortcuts

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