Documentation
¶
Overview ¶
Package sigmatest provides deterministic providers and helpers for testing sigma clients without live provider calls.
Index ¶
- Constants
- func EmbeddingModel() sigma.EmbeddingModel
- func EmbeddingRegistry(provider *FauxEmbeddingProvider, models ...sigma.EmbeddingModel) (*sigma.Registry, error)
- func ImageModel() sigma.ImageModel
- func ImageRegistry(provider *FauxImageProvider, models ...sigma.ImageModel) (*sigma.Registry, error)
- func Register(registry *sigma.Registry, provider *FauxProvider, models ...sigma.Model) error
- func RegisterEmbeddings(registry *sigma.Registry, provider *FauxEmbeddingProvider, ...) error
- func RegisterImages(registry *sigma.Registry, provider *FauxImageProvider, ...) error
- func Registry(provider *FauxProvider, models ...sigma.Model) (*sigma.Registry, error)
- func TextModel() sigma.Model
- type EmbeddingRequestCapture
- type EmbeddingScript
- type FauxEmbeddingProvider
- func (p *FauxEmbeddingProvider) API() sigma.EmbeddingAPI
- func (p *FauxEmbeddingProvider) Embed(ctx context.Context, model sigma.EmbeddingModel, req sigma.EmbeddingRequest, ...) (sigma.Embeddings, error)
- func (p *FauxEmbeddingProvider) Enqueue(scripts ...EmbeddingScript)
- func (p *FauxEmbeddingProvider) LastRequest() (EmbeddingRequestCapture, bool)
- func (p *FauxEmbeddingProvider) Requests() []EmbeddingRequestCapture
- type FauxImageProvider
- func (p *FauxImageProvider) API() sigma.ImageAPI
- func (p *FauxImageProvider) Enqueue(scripts ...ImageScript)
- func (p *FauxImageProvider) Generate(ctx context.Context, model sigma.ImageModel, req sigma.ImageRequest, ...) (sigma.AssistantImages, error)
- func (p *FauxImageProvider) LastRequest() (ImageRequestCapture, bool)
- func (p *FauxImageProvider) Requests() []ImageRequestCapture
- type FauxProvider
- func (p *FauxProvider) API() sigma.API
- func (p *FauxProvider) Enqueue(scripts ...Script)
- func (p *FauxProvider) LastRequest() (RequestCapture, bool)
- func (p *FauxProvider) Requests() []RequestCapture
- func (p *FauxProvider) Stream(ctx context.Context, model sigma.Model, req sigma.Request, opts sigma.Options) *sigma.Stream
- type ImageRequestCapture
- type ImageScript
- type RequestCapture
- type Script
Examples ¶
Constants ¶
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" )
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" )
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 ¶
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.
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
func (p *FauxEmbeddingProvider) API() sigma.EmbeddingAPI
API reports the faux embedding API.
func (*FauxEmbeddingProvider) Embed ¶ added in v0.3.0
func (p *FauxEmbeddingProvider) Embed(ctx context.Context, model sigma.EmbeddingModel, req sigma.EmbeddingRequest, opts sigma.Options) (sigma.Embeddings, error)
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
func (p *FauxEmbeddingProvider) LastRequest() (EmbeddingRequestCapture, bool)
LastRequest returns a copy of the most recent embedding request.
func (*FauxEmbeddingProvider) Requests ¶ added in v0.3.0
func (p *FauxEmbeddingProvider) Requests() []EmbeddingRequestCapture
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 ¶
func (p *FauxImageProvider) Generate(ctx context.Context, model sigma.ImageModel, req sigma.ImageRequest, opts sigma.Options) (sigma.AssistantImages, error)
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) 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.
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 ¶
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.