braintrust

package module
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Mar 18, 2025 License: Apache-2.0 Imports: 16 Imported by: 0

README

Braintrust Go API Library

Go Reference

The Braintrust Go library provides convenient access to the Braintrust REST API from applications written in Go. The full API of this library can be found in api.md.

It is generated with Stainless.

Installation

import (
	"github.com/braintrustdata/braintrust-go" // imported as braintrust
)

Or to pin the version:

go get -u 'github.com/braintrustdata/braintrust-go@v0.7.0'

Requirements

This library requires Go 1.18+.

Usage

The full API of this library can be found in api.md.

package main

import (
	"context"
	"fmt"

	"github.com/braintrustdata/braintrust-go"
	"github.com/braintrustdata/braintrust-go/option"
)

func main() {
	client := braintrust.NewClient(
		option.WithAPIKey("My API Key"), // defaults to os.LookupEnv("BRAINTRUST_API_KEY")
	)
	project, err := client.Projects.New(context.TODO(), braintrust.ProjectNewParams{
		Name: braintrust.F("foobar"),
	})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", project.ID)
}

Request fields

All request parameters are wrapped in a generic Field type, which we use to distinguish zero values from null or omitted fields.

This prevents accidentally sending a zero value if you forget a required parameter, and enables explicitly sending null, false, '', or 0 on optional parameters. Any field not specified is not sent.

To construct fields with values, use the helpers String(), Int(), Float(), or most commonly, the generic F[T](). To send a null, use Null[T](), and to send a nonconforming value, use Raw[T](any). For example:

params := FooParams{
	Name: braintrust.F("hello"),

	// Explicitly send `"description": null`
	Description: braintrust.Null[string](),

	Point: braintrust.F(braintrust.Point{
		X: braintrust.Int(0),
		Y: braintrust.Int(1),

		// In cases where the API specifies a given type,
		// but you want to send something else, use `Raw`:
		Z: braintrust.Raw[int64](0.01), // sends a float
	}),
}
Response objects

All fields in response structs are value types (not pointers or wrappers).

If a given field is null, not present, or invalid, the corresponding field will simply be its zero value.

All response structs also include a special JSON field, containing more detailed information about each property, which you can use like so:

if res.Name == "" {
	// true if `"name"` is either not present or explicitly null
	res.JSON.Name.IsNull()

	// true if the `"name"` key was not present in the response JSON at all
	res.JSON.Name.IsMissing()

	// When the API returns data that cannot be coerced to the expected type:
	if res.JSON.Name.IsInvalid() {
		raw := res.JSON.Name.Raw()

		legacyName := struct{
			First string `json:"first"`
			Last  string `json:"last"`
		}{}
		json.Unmarshal([]byte(raw), &legacyName)
		name = legacyName.First + " " + legacyName.Last
	}
}

These .JSON structs also include an Extras map containing any properties in the json response that were not specified in the struct. This can be useful for API features not yet present in the SDK.

body := res.JSON.ExtraFields["my_unexpected_field"].Raw()
RequestOptions

This library uses the functional options pattern. Functions defined in the option package return a RequestOption, which is a closure that mutates a RequestConfig. These options can be supplied to the client or at individual requests. For example:

client := braintrust.NewClient(
	// Adds a header to every request made by the client
	option.WithHeader("X-Some-Header", "custom_header_info"),
)

client.Projects.New(context.TODO(), ...,
	// Override the header
	option.WithHeader("X-Some-Header", "some_other_custom_header_info"),
	// Add an undocumented field to the request body, using sjson syntax
	option.WithJSONSet("some.json.path", map[string]string{"my": "object"}),
)

See the full list of request options.

Pagination

This library provides some conveniences for working with paginated list endpoints.

You can use .ListAutoPaging() methods to iterate through items across all pages:

iter := client.Projects.ListAutoPaging(context.TODO(), braintrust.ProjectListParams{})
// Automatically fetches more pages as needed.
for iter.Next() {
	project := iter.Current()
	fmt.Printf("%+v\n", project)
}
if err := iter.Err(); err != nil {
	panic(err.Error())
}

Or you can use simple .List() methods to fetch a single page and receive a standard response object with additional helper methods like .GetNextPage(), e.g.:

page, err := client.Projects.List(context.TODO(), braintrust.ProjectListParams{})
for page != nil {
	for _, project := range page.Objects {
		fmt.Printf("%+v\n", project)
	}
	page, err = page.GetNextPage()
}
if err != nil {
	panic(err.Error())
}
Errors

When the API returns a non-success status code, we return an error with type *braintrust.Error. This contains the StatusCode, *http.Request, and *http.Response values of the request, as well as the JSON of the error body (much like other response objects in the SDK).

To handle errors, we recommend that you use the errors.As pattern:

_, err := client.Projects.New(context.TODO(), braintrust.ProjectNewParams{
	Name: braintrust.F("foobar"),
})
if err != nil {
	var apierr *braintrust.Error
	if errors.As(err, &apierr) {
		println(string(apierr.DumpRequest(true)))  // Prints the serialized HTTP request
		println(string(apierr.DumpResponse(true))) // Prints the serialized HTTP response
	}
	panic(err.Error()) // GET "/v1/project": 400 Bad Request { ... }
}

When other errors occur, they are returned unwrapped; for example, if HTTP transport fails, you might receive *url.Error wrapping *net.OpError.

Timeouts

Requests do not time out by default; use context to configure a timeout for a request lifecycle.

Note that if a request is retried, the context timeout does not start over. To set a per-retry timeout, use option.WithRequestTimeout().

// This sets the timeout for the request, including all the retries.
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)
defer cancel()
client.Projects.New(
	ctx,
	braintrust.ProjectNewParams{
		Name: braintrust.F("foobar"),
	},
	// This sets the per-retry timeout
	option.WithRequestTimeout(20*time.Second),
)
File uploads

Request parameters that correspond to file uploads in multipart requests are typed as param.Field[io.Reader]. The contents of the io.Reader will by default be sent as a multipart form part with the file name of "anonymous_file" and content-type of "application/octet-stream".

The file name and content-type can be customized by implementing Name() string or ContentType() string on the run-time type of io.Reader. Note that os.File implements Name() string, so a file returned by os.Open will be sent with the file name on disk.

We also provide a helper braintrust.FileParam(reader io.Reader, filename string, contentType string) which can be used to wrap any io.Reader with the appropriate file name and content type.

Retries

Certain errors will be automatically retried 2 times by default, with a short exponential backoff. We retry by default all connection errors, 408 Request Timeout, 409 Conflict, 429 Rate Limit, and >=500 Internal errors.

You can use the WithMaxRetries option to configure or disable this:

// Configure the default for all requests:
client := braintrust.NewClient(
	option.WithMaxRetries(0), // default is 2
)

// Override per-request:
client.Projects.New(
	context.TODO(),
	braintrust.ProjectNewParams{
		Name: braintrust.F("foobar"),
	},
	option.WithMaxRetries(5),
)
Accessing raw response data (e.g. response headers)

You can access the raw HTTP response data by using the option.WithResponseInto() request option. This is useful when you need to examine response headers, status codes, or other details.

// Create a variable to store the HTTP response
var response *http.Response
project, err := client.Projects.New(
	context.TODO(),
	braintrust.ProjectNewParams{
		Name: braintrust.F("foobar"),
	},
	option.WithResponseInto(&response),
)
if err != nil {
	// handle error
}
fmt.Printf("%+v\n", project)

fmt.Printf("Status Code: %d\n", response.StatusCode)
fmt.Printf("Headers: %+#v\n", response.Header)
Making custom/undocumented requests

This library is typed for convenient access to the documented API. If you need to access undocumented endpoints, params, or response properties, the library can still be used.

Undocumented endpoints

To make requests to undocumented endpoints, you can use client.Get, client.Post, and other HTTP verbs. RequestOptions on the client, such as retries, will be respected when making these requests.

var (
    // params can be an io.Reader, a []byte, an encoding/json serializable object,
    // or a "…Params" struct defined in this library.
    params map[string]interface{}

    // result can be an []byte, *http.Response, a encoding/json deserializable object,
    // or a model defined in this library.
    result *http.Response
)
err := client.Post(context.Background(), "/unspecified", params, &result)
if err != nil {
    …
}
Undocumented request params

To make requests using undocumented parameters, you may use either the option.WithQuerySet() or the option.WithJSONSet() methods.

params := FooNewParams{
    ID:   braintrust.F("id_xxxx"),
    Data: braintrust.F(FooNewParamsData{
        FirstName: braintrust.F("John"),
    }),
}
client.Foo.New(context.Background(), params, option.WithJSONSet("data.last_name", "Doe"))
Undocumented response properties

To access undocumented response properties, you may either access the raw JSON of the response as a string with result.JSON.RawJSON(), or get the raw JSON of a particular field on the result with result.JSON.Foo.Raw().

Any fields that are not present on the response struct will be saved and can be accessed by result.JSON.ExtraFields() which returns the extra fields as a map[string]Field.

Middleware

We provide option.WithMiddleware which applies the given middleware to requests.

func Logger(req *http.Request, next option.MiddlewareNext) (res *http.Response, err error) {
	// Before the request
	start := time.Now()
	LogReq(req)

	// Forward the request to the next handler
	res, err = next(req)

	// Handle stuff after the request
	end := time.Now()
	LogRes(res, err, start - end)

    return res, err
}

client := braintrust.NewClient(
	option.WithMiddleware(Logger),
)

When multiple middlewares are provided as variadic arguments, the middlewares are applied left to right. If option.WithMiddleware is given multiple times, for example first in the client then the method, the middleware in the client will run first and the middleware given in the method will run next.

You may also replace the default http.Client with option.WithHTTPClient(client). Only one http client is accepted (this overwrites any previous client) and receives requests after any middleware has been applied.

Semantic versioning

This package generally follows SemVer conventions, though certain backwards-incompatible changes may be released as minor versions:

  1. Changes to library internals which are technically public but not intended or documented for external use. (Please open a GitHub issue to let us know if you are relying on such internals.)
  2. Changes that we do not expect to impact the vast majority of users in practice.

We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.

We are keen for your feedback; please open an issue with questions, bugs, or suggestions.

Contributing

See the contributing documentation.

Documentation

Index

Constants

View Source
const ACLObjectTypeDataset = shared.ACLObjectTypeDataset

This is an alias to an internal value.

View Source
const ACLObjectTypeExperiment = shared.ACLObjectTypeExperiment

This is an alias to an internal value.

View Source
const ACLObjectTypeGroup = shared.ACLObjectTypeGroup

This is an alias to an internal value.

View Source
const ACLObjectTypeOrgMember = shared.ACLObjectTypeOrgMember

This is an alias to an internal value.

View Source
const ACLObjectTypeOrgProject = shared.ACLObjectTypeOrgProject

This is an alias to an internal value.

View Source
const ACLObjectTypeOrganization = shared.ACLObjectTypeOrganization

This is an alias to an internal value.

View Source
const ACLObjectTypeProject = shared.ACLObjectTypeProject

This is an alias to an internal value.

View Source
const ACLObjectTypeProjectLog = shared.ACLObjectTypeProjectLog

This is an alias to an internal value.

View Source
const ACLObjectTypePrompt = shared.ACLObjectTypePrompt

This is an alias to an internal value.

View Source
const ACLObjectTypePromptSession = shared.ACLObjectTypePromptSession

This is an alias to an internal value.

View Source
const ACLObjectTypeRole = shared.ACLObjectTypeRole

This is an alias to an internal value.

View Source
const ChatCompletionContentPartImageImageURLDetailAuto = shared.ChatCompletionContentPartImageImageURLDetailAuto

This is an alias to an internal value.

View Source
const ChatCompletionContentPartImageImageURLDetailHigh = shared.ChatCompletionContentPartImageImageURLDetailHigh

This is an alias to an internal value.

View Source
const ChatCompletionContentPartImageImageURLDetailLow = shared.ChatCompletionContentPartImageImageURLDetailLow

This is an alias to an internal value.

View Source
const ChatCompletionContentPartImageTypeImageURL = shared.ChatCompletionContentPartImageTypeImageURL

This is an alias to an internal value.

View Source
const ChatCompletionContentPartTextTypeText = shared.ChatCompletionContentPartTextTypeText

This is an alias to an internal value.

View Source
const ChatCompletionMessageToolCallTypeFunction = shared.ChatCompletionMessageToolCallTypeFunction

This is an alias to an internal value.

View Source
const CodeBundleLocationExperimentPositionScorerTypeScorer = shared.CodeBundleLocationExperimentPositionScorerTypeScorer

This is an alias to an internal value.

View Source
const CodeBundleLocationExperimentPositionTypeTypeTask = shared.CodeBundleLocationExperimentPositionTypeTypeTask

This is an alias to an internal value.

View Source
const CodeBundleLocationExperimentTypeExperiment = shared.CodeBundleLocationExperimentTypeExperiment

This is an alias to an internal value.

View Source
const CodeBundleLocationFunctionTypeFunction = shared.CodeBundleLocationFunctionTypeFunction

This is an alias to an internal value.

View Source
const CodeBundleLocationTypeExperiment = shared.CodeBundleLocationTypeExperiment

This is an alias to an internal value.

View Source
const CodeBundleLocationTypeFunction = shared.CodeBundleLocationTypeFunction

This is an alias to an internal value.

View Source
const CodeBundleRuntimeContextRuntimeNode = shared.CodeBundleRuntimeContextRuntimeNode

This is an alias to an internal value.

View Source
const CodeBundleRuntimeContextRuntimePython = shared.CodeBundleRuntimeContextRuntimePython

This is an alias to an internal value.

View Source
const EnvVarObjectTypeFunction = shared.EnvVarObjectTypeFunction

This is an alias to an internal value.

View Source
const EnvVarObjectTypeOrganization = shared.EnvVarObjectTypeOrganization

This is an alias to an internal value.

View Source
const EnvVarObjectTypeProject = shared.EnvVarObjectTypeProject

This is an alias to an internal value.

View Source
const FeedbackDatasetItemSourceAPI = shared.FeedbackDatasetItemSourceAPI

This is an alias to an internal value.

View Source
const FeedbackDatasetItemSourceApp = shared.FeedbackDatasetItemSourceApp

This is an alias to an internal value.

View Source
const FeedbackDatasetItemSourceExternal = shared.FeedbackDatasetItemSourceExternal

This is an alias to an internal value.

View Source
const FeedbackExperimentItemSourceAPI = shared.FeedbackExperimentItemSourceAPI

This is an alias to an internal value.

View Source
const FeedbackExperimentItemSourceApp = shared.FeedbackExperimentItemSourceApp

This is an alias to an internal value.

View Source
const FeedbackExperimentItemSourceExternal = shared.FeedbackExperimentItemSourceExternal

This is an alias to an internal value.

View Source
const FeedbackProjectLogsItemSourceAPI = shared.FeedbackProjectLogsItemSourceAPI

This is an alias to an internal value.

View Source
const FeedbackProjectLogsItemSourceApp = shared.FeedbackProjectLogsItemSourceApp

This is an alias to an internal value.

View Source
const FeedbackProjectLogsItemSourceExternal = shared.FeedbackProjectLogsItemSourceExternal

This is an alias to an internal value.

View Source
const FeedbackResponseSchemaStatusSuccess = shared.FeedbackResponseSchemaStatusSuccess

This is an alias to an internal value.

View Source
const FunctionFunctionDataCodeDataBundleTypeBundle = shared.FunctionFunctionDataCodeDataBundleTypeBundle

This is an alias to an internal value.

View Source
const FunctionFunctionDataCodeDataInlineRuntimeContextRuntimeNode = shared.FunctionFunctionDataCodeDataInlineRuntimeContextRuntimeNode

This is an alias to an internal value.

View Source
const FunctionFunctionDataCodeDataInlineRuntimeContextRuntimePython = shared.FunctionFunctionDataCodeDataInlineRuntimeContextRuntimePython

This is an alias to an internal value.

View Source
const FunctionFunctionDataCodeDataInlineTypeInline = shared.FunctionFunctionDataCodeDataInlineTypeInline

This is an alias to an internal value.

View Source
const FunctionFunctionDataCodeDataTypeBundle = shared.FunctionFunctionDataCodeDataTypeBundle

This is an alias to an internal value.

View Source
const FunctionFunctionDataCodeDataTypeInline = shared.FunctionFunctionDataCodeDataTypeInline

This is an alias to an internal value.

View Source
const FunctionFunctionDataCodeTypeCode = shared.FunctionFunctionDataCodeTypeCode

This is an alias to an internal value.

View Source
const FunctionFunctionDataGlobalTypeGlobal = shared.FunctionFunctionDataGlobalTypeGlobal

This is an alias to an internal value.

View Source
const FunctionFunctionDataPromptTypePrompt = shared.FunctionFunctionDataPromptTypePrompt

This is an alias to an internal value.

View Source
const FunctionFunctionDataTypeCode = shared.FunctionFunctionDataTypeCode

This is an alias to an internal value.

View Source
const FunctionFunctionDataTypeGlobal = shared.FunctionFunctionDataTypeGlobal

This is an alias to an internal value.

View Source
const FunctionFunctionDataTypePrompt = shared.FunctionFunctionDataTypePrompt

This is an alias to an internal value.

View Source
const FunctionFunctionTypeLlm = shared.FunctionFunctionTypeLlm

This is an alias to an internal value.

View Source
const FunctionFunctionTypeScorer = shared.FunctionFunctionTypeScorer

This is an alias to an internal value.

View Source
const FunctionFunctionTypeTask = shared.FunctionFunctionTypeTask

This is an alias to an internal value.

View Source
const FunctionFunctionTypeTool = shared.FunctionFunctionTypeTool

This is an alias to an internal value.

View Source
const FunctionLogIDP = shared.FunctionLogIDP

This is an alias to an internal value.

View Source
const ObjectReferenceObjectTypeDataset = shared.ObjectReferenceObjectTypeDataset

This is an alias to an internal value.

View Source
const ObjectReferenceObjectTypeExperiment = shared.ObjectReferenceObjectTypeExperiment

This is an alias to an internal value.

View Source
const ObjectReferenceObjectTypeFunction = shared.ObjectReferenceObjectTypeFunction

This is an alias to an internal value.

View Source
const ObjectReferenceObjectTypeProjectLogs = shared.ObjectReferenceObjectTypeProjectLogs

This is an alias to an internal value.

View Source
const ObjectReferenceObjectTypePrompt = shared.ObjectReferenceObjectTypePrompt

This is an alias to an internal value.

View Source
const ObjectReferenceObjectTypePromptSession = shared.ObjectReferenceObjectTypePromptSession

This is an alias to an internal value.

View Source
const OnlineScoreConfigScorersFunctionTypeFunction = shared.OnlineScoreConfigScorersFunctionTypeFunction

This is an alias to an internal value.

View Source
const OnlineScoreConfigScorersGlobalTypeGlobal = shared.OnlineScoreConfigScorersGlobalTypeGlobal

This is an alias to an internal value.

View Source
const OnlineScoreConfigScorersTypeFunction = shared.OnlineScoreConfigScorersTypeFunction

This is an alias to an internal value.

View Source
const OnlineScoreConfigScorersTypeGlobal = shared.OnlineScoreConfigScorersTypeGlobal

This is an alias to an internal value.

View Source
const PatchOrganizationMembersOutputStatusSuccess = shared.PatchOrganizationMembersOutputStatusSuccess

This is an alias to an internal value.

View Source
const PermissionCreate = shared.PermissionCreate

This is an alias to an internal value.

View Source
const PermissionCreateACLs = shared.PermissionCreateACLs

This is an alias to an internal value.

View Source
const PermissionDelete = shared.PermissionDelete

This is an alias to an internal value.

View Source
const PermissionDeleteACLs = shared.PermissionDeleteACLs

This is an alias to an internal value.

View Source
const PermissionRead = shared.PermissionRead

This is an alias to an internal value.

View Source
const PermissionReadACLs = shared.PermissionReadACLs

This is an alias to an internal value.

View Source
const PermissionUpdate = shared.PermissionUpdate

This is an alias to an internal value.

View Source
const PermissionUpdateACLs = shared.PermissionUpdateACLs

This is an alias to an internal value.

View Source
const ProjectLogsEventLogIDG = shared.ProjectLogsEventLogIDG

This is an alias to an internal value.

View Source
const ProjectScoreTypeCategorical = shared.ProjectScoreTypeCategorical

This is an alias to an internal value.

View Source
const ProjectScoreTypeFreeForm = shared.ProjectScoreTypeFreeForm

This is an alias to an internal value.

View Source
const ProjectScoreTypeMaximum = shared.ProjectScoreTypeMaximum

This is an alias to an internal value.

View Source
const ProjectScoreTypeMinimum = shared.ProjectScoreTypeMinimum

This is an alias to an internal value.

View Source
const ProjectScoreTypeOnline = shared.ProjectScoreTypeOnline

This is an alias to an internal value.

View Source
const ProjectScoreTypeSlider = shared.ProjectScoreTypeSlider

This is an alias to an internal value.

View Source
const ProjectScoreTypeWeighted = shared.ProjectScoreTypeWeighted

This is an alias to an internal value.

View Source
const ProjectSettingsSpanFieldOrderLayoutFull = shared.ProjectSettingsSpanFieldOrderLayoutFull

This is an alias to an internal value.

View Source
const ProjectSettingsSpanFieldOrderLayoutTwoColumn = shared.ProjectSettingsSpanFieldOrderLayoutTwoColumn

This is an alias to an internal value.

View Source
const PromptDataParserTypeLlmClassifier = shared.PromptDataParserTypeLlmClassifier

This is an alias to an internal value.

View Source
const PromptDataPromptChatMessagesAssistantRoleAssistant = shared.PromptDataPromptChatMessagesAssistantRoleAssistant

This is an alias to an internal value.

View Source
const PromptDataPromptChatMessagesFallbackRoleModel = shared.PromptDataPromptChatMessagesFallbackRoleModel

This is an alias to an internal value.

View Source
const PromptDataPromptChatMessagesFunctionRoleFunction = shared.PromptDataPromptChatMessagesFunctionRoleFunction

This is an alias to an internal value.

View Source
const PromptDataPromptChatMessagesRoleAssistant = shared.PromptDataPromptChatMessagesRoleAssistant

This is an alias to an internal value.

View Source
const PromptDataPromptChatMessagesRoleFunction = shared.PromptDataPromptChatMessagesRoleFunction

This is an alias to an internal value.

View Source
const PromptDataPromptChatMessagesRoleModel = shared.PromptDataPromptChatMessagesRoleModel

This is an alias to an internal value.

View Source
const PromptDataPromptChatMessagesRoleSystem = shared.PromptDataPromptChatMessagesRoleSystem

This is an alias to an internal value.

View Source
const PromptDataPromptChatMessagesRoleTool = shared.PromptDataPromptChatMessagesRoleTool

This is an alias to an internal value.

View Source
const PromptDataPromptChatMessagesRoleUser = shared.PromptDataPromptChatMessagesRoleUser

This is an alias to an internal value.

View Source
const PromptDataPromptChatMessagesSystemRoleSystem = shared.PromptDataPromptChatMessagesSystemRoleSystem

This is an alias to an internal value.

View Source
const PromptDataPromptChatMessagesToolRoleTool = shared.PromptDataPromptChatMessagesToolRoleTool

This is an alias to an internal value.

View Source
const PromptDataPromptChatMessagesUserRoleUser = shared.PromptDataPromptChatMessagesUserRoleUser

This is an alias to an internal value.

View Source
const PromptDataPromptChatTypeChat = shared.PromptDataPromptChatTypeChat

This is an alias to an internal value.

View Source
const PromptDataPromptCompletionTypeCompletion = shared.PromptDataPromptCompletionTypeCompletion

This is an alias to an internal value.

View Source
const PromptDataPromptTypeChat = shared.PromptDataPromptTypeChat

This is an alias to an internal value.

View Source
const PromptDataPromptTypeCompletion = shared.PromptDataPromptTypeCompletion

This is an alias to an internal value.

View Source
const PromptDataToolFunctionsFunctionTypeFunction = shared.PromptDataToolFunctionsFunctionTypeFunction

This is an alias to an internal value.

View Source
const PromptDataToolFunctionsGlobalTypeGlobal = shared.PromptDataToolFunctionsGlobalTypeGlobal

This is an alias to an internal value.

View Source
const PromptDataToolFunctionsTypeFunction = shared.PromptDataToolFunctionsTypeFunction

This is an alias to an internal value.

View Source
const PromptDataToolFunctionsTypeGlobal = shared.PromptDataToolFunctionsTypeGlobal

This is an alias to an internal value.

View Source
const PromptFunctionTypeLlm = shared.PromptFunctionTypeLlm

This is an alias to an internal value.

View Source
const PromptFunctionTypeScorer = shared.PromptFunctionTypeScorer

This is an alias to an internal value.

View Source
const PromptFunctionTypeTask = shared.PromptFunctionTypeTask

This is an alias to an internal value.

View Source
const PromptFunctionTypeTool = shared.PromptFunctionTypeTool

This is an alias to an internal value.

View Source
const PromptLogIDP = shared.PromptLogIDP

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsFunctionCallStringAuto = shared.PromptOptionsParamsOpenAIModelParamsFunctionCallStringAuto

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsFunctionCallStringNone = shared.PromptOptionsParamsOpenAIModelParamsFunctionCallStringNone

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsReasoningEffortHigh = shared.PromptOptionsParamsOpenAIModelParamsReasoningEffortHigh

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsReasoningEffortLow = shared.PromptOptionsParamsOpenAIModelParamsReasoningEffortLow

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsReasoningEffortMedium = shared.PromptOptionsParamsOpenAIModelParamsReasoningEffortMedium

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsResponseFormatJsonObjectTypeJsonObject = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatJsonObjectTypeJsonObject

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaTypeJsonSchema = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaTypeJsonSchema

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsResponseFormatTextTypeText = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatTextTypeText

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsResponseFormatTypeJsonObject = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatTypeJsonObject

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsResponseFormatTypeJsonSchema = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatTypeJsonSchema

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsResponseFormatTypeText = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatTypeText

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionTypeFunction = shared.PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionTypeFunction

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsToolChoiceStringAuto = shared.PromptOptionsParamsOpenAIModelParamsToolChoiceStringAuto

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsToolChoiceStringNone = shared.PromptOptionsParamsOpenAIModelParamsToolChoiceStringNone

This is an alias to an internal value.

View Source
const PromptOptionsParamsOpenAIModelParamsToolChoiceStringRequired = shared.PromptOptionsParamsOpenAIModelParamsToolChoiceStringRequired

This is an alias to an internal value.

View Source
const SpanTypeEval = shared.SpanTypeEval

This is an alias to an internal value.

View Source
const SpanTypeFunction = shared.SpanTypeFunction

This is an alias to an internal value.

View Source
const SpanTypeLlm = shared.SpanTypeLlm

This is an alias to an internal value.

View Source
const SpanTypeScore = shared.SpanTypeScore

This is an alias to an internal value.

View Source
const SpanTypeTask = shared.SpanTypeTask

This is an alias to an internal value.

View Source
const SpanTypeTool = shared.SpanTypeTool

This is an alias to an internal value.

View Source
const ViewTypeDataset = shared.ViewTypeDataset

This is an alias to an internal value.

View Source
const ViewTypeDatasets = shared.ViewTypeDatasets

This is an alias to an internal value.

View Source
const ViewTypeExperiment = shared.ViewTypeExperiment

This is an alias to an internal value.

View Source
const ViewTypeExperiments = shared.ViewTypeExperiments

This is an alias to an internal value.

View Source
const ViewTypeLogs = shared.ViewTypeLogs

This is an alias to an internal value.

View Source
const ViewTypePlayground = shared.ViewTypePlayground

This is an alias to an internal value.

View Source
const ViewTypePlaygrounds = shared.ViewTypePlaygrounds

This is an alias to an internal value.

View Source
const ViewTypeProjects = shared.ViewTypeProjects

This is an alias to an internal value.

View Source
const ViewTypePrompts = shared.ViewTypePrompts

This is an alias to an internal value.

View Source
const ViewTypeScorers = shared.ViewTypeScorers

This is an alias to an internal value.

View Source
const ViewTypeTools = shared.ViewTypeTools

This is an alias to an internal value.

View Source
const ViewViewTypeDataset = shared.ViewViewTypeDataset

This is an alias to an internal value.

View Source
const ViewViewTypeDatasets = shared.ViewViewTypeDatasets

This is an alias to an internal value.

View Source
const ViewViewTypeExperiment = shared.ViewViewTypeExperiment

This is an alias to an internal value.

View Source
const ViewViewTypeExperiments = shared.ViewViewTypeExperiments

This is an alias to an internal value.

View Source
const ViewViewTypeLogs = shared.ViewViewTypeLogs

This is an alias to an internal value.

View Source
const ViewViewTypePlayground = shared.ViewViewTypePlayground

This is an alias to an internal value.

View Source
const ViewViewTypePlaygrounds = shared.ViewViewTypePlaygrounds

This is an alias to an internal value.

View Source
const ViewViewTypeProjects = shared.ViewViewTypeProjects

This is an alias to an internal value.

View Source
const ViewViewTypePrompts = shared.ViewViewTypePrompts

This is an alias to an internal value.

View Source
const ViewViewTypeScorers = shared.ViewViewTypeScorers

This is an alias to an internal value.

View Source
const ViewViewTypeTools = shared.ViewViewTypeTools

This is an alias to an internal value.

Variables

This section is empty.

Functions

func Bool

func Bool(value bool) param.Field[bool]

Bool is a param field helper which helps specify bools.

func DefaultClientOptions added in v0.6.0

func DefaultClientOptions() []option.RequestOption

DefaultClientOptions read from the environment (BRAINTRUST_API_KEY). This should be used to initialize new clients.

func F

func F[T any](value T) param.Field[T]

F is a param field helper used to initialize a param.Field generic struct. This helps specify null, zero values, and overrides, as well as normal values. You can read more about this in our README.

func FileParam added in v0.2.0

func FileParam(reader io.Reader, filename string, contentType string) param.Field[io.Reader]

FileParam is a param field helper which helps files with a mime content-type.

func Float

func Float(value float64) param.Field[float64]

Float is a param field helper which helps specify floats.

func Int

func Int(value int64) param.Field[int64]

Int is a param field helper which helps specify integers. This is particularly helpful when specifying integer constants for fields.

func Null

func Null[T any]() param.Field[T]

Null is a param field helper which explicitly sends null to the API.

func Raw

func Raw[T any](value any) param.Field[T]

Raw is a param field helper for specifying values for fields when the type you are looking to send is different from the type that is specified in the SDK. For example, if the type of the field is an integer, but you want to send a float, you could do that by setting the corresponding field with Raw[int](0.5).

func String

func String(value string) param.Field[string]

String is a param field helper which helps specify strings.

Types

type ACL added in v0.2.0

type ACL = shared.ACL

An ACL grants a certain permission or role to a certain user or group on an object.

ACLs are inherited across the object hierarchy. So for example, if a user has read permissions on a project, they will also have read permissions on any experiment, dataset, etc. created within that project.

To restrict a grant to a particular sub-object, you may specify `restrict_object_type` in the ACL, as part of a direct permission grant or as part of a role.

This is an alias to an internal type.

type ACLBatchUpdateParams added in v0.4.0

type ACLBatchUpdateParams struct {
	// An ACL grants a certain permission or role to a certain user or group on an
	// object.
	//
	// ACLs are inherited across the object hierarchy. So for example, if a user has
	// read permissions on a project, they will also have read permissions on any
	// experiment, dataset, etc. created within that project.
	//
	// To restrict a grant to a particular sub-object, you may specify
	// `restrict_object_type` in the ACL, as part of a direct permission grant or as
	// part of a role.
	AddACLs param.Field[[]ACLBatchUpdateParamsAddACL] `json:"add_acls"`
	// An ACL grants a certain permission or role to a certain user or group on an
	// object.
	//
	// ACLs are inherited across the object hierarchy. So for example, if a user has
	// read permissions on a project, they will also have read permissions on any
	// experiment, dataset, etc. created within that project.
	//
	// To restrict a grant to a particular sub-object, you may specify
	// `restrict_object_type` in the ACL, as part of a direct permission grant or as
	// part of a role.
	RemoveACLs param.Field[[]ACLBatchUpdateParamsRemoveACL] `json:"remove_acls"`
}

func (ACLBatchUpdateParams) MarshalJSON added in v0.4.0

func (r ACLBatchUpdateParams) MarshalJSON() (data []byte, err error)

type ACLBatchUpdateParamsAddACL added in v0.4.0

type ACLBatchUpdateParamsAddACL struct {
	// The id of the object the ACL applies to
	ObjectID param.Field[string] `json:"object_id,required" format:"uuid"`
	// The object type that the ACL applies to
	ObjectType param.Field[shared.ACLObjectType] `json:"object_type,required"`
	// Id of the group the ACL applies to. Exactly one of `user_id` and `group_id` will
	// be provided
	GroupID param.Field[string] `json:"group_id" format:"uuid"`
	// Permission the ACL grants. Exactly one of `permission` and `role_id` will be
	// provided
	Permission param.Field[shared.Permission] `json:"permission"`
	// When setting a permission directly, optionally restricts the permission grant to
	// just the specified object type. Cannot be set alongside a `role_id`.
	RestrictObjectType param.Field[shared.ACLObjectType] `json:"restrict_object_type"`
	// Id of the role the ACL grants. Exactly one of `permission` and `role_id` will be
	// provided
	RoleID param.Field[string] `json:"role_id" format:"uuid"`
	// Id of the user the ACL applies to. Exactly one of `user_id` and `group_id` will
	// be provided
	UserID param.Field[string] `json:"user_id" format:"uuid"`
}

An ACL grants a certain permission or role to a certain user or group on an object.

ACLs are inherited across the object hierarchy. So for example, if a user has read permissions on a project, they will also have read permissions on any experiment, dataset, etc. created within that project.

To restrict a grant to a particular sub-object, you may specify `restrict_object_type` in the ACL, as part of a direct permission grant or as part of a role.

func (ACLBatchUpdateParamsAddACL) MarshalJSON added in v0.4.0

func (r ACLBatchUpdateParamsAddACL) MarshalJSON() (data []byte, err error)

type ACLBatchUpdateParamsRemoveACL added in v0.4.0

type ACLBatchUpdateParamsRemoveACL struct {
	// The id of the object the ACL applies to
	ObjectID param.Field[string] `json:"object_id,required" format:"uuid"`
	// The object type that the ACL applies to
	ObjectType param.Field[shared.ACLObjectType] `json:"object_type,required"`
	// Id of the group the ACL applies to. Exactly one of `user_id` and `group_id` will
	// be provided
	GroupID param.Field[string] `json:"group_id" format:"uuid"`
	// Permission the ACL grants. Exactly one of `permission` and `role_id` will be
	// provided
	Permission param.Field[shared.Permission] `json:"permission"`
	// When setting a permission directly, optionally restricts the permission grant to
	// just the specified object type. Cannot be set alongside a `role_id`.
	RestrictObjectType param.Field[shared.ACLObjectType] `json:"restrict_object_type"`
	// Id of the role the ACL grants. Exactly one of `permission` and `role_id` will be
	// provided
	RoleID param.Field[string] `json:"role_id" format:"uuid"`
	// Id of the user the ACL applies to. Exactly one of `user_id` and `group_id` will
	// be provided
	UserID param.Field[string] `json:"user_id" format:"uuid"`
}

An ACL grants a certain permission or role to a certain user or group on an object.

ACLs are inherited across the object hierarchy. So for example, if a user has read permissions on a project, they will also have read permissions on any experiment, dataset, etc. created within that project.

To restrict a grant to a particular sub-object, you may specify `restrict_object_type` in the ACL, as part of a direct permission grant or as part of a role.

func (ACLBatchUpdateParamsRemoveACL) MarshalJSON added in v0.4.0

func (r ACLBatchUpdateParamsRemoveACL) MarshalJSON() (data []byte, err error)

type ACLBatchUpdateResponse added in v0.4.0

type ACLBatchUpdateResponse = shared.ACLBatchUpdateResponse

This is an alias to an internal type.

type ACLFindAndDeleteParams added in v0.4.0

type ACLFindAndDeleteParams struct {
	// The id of the object the ACL applies to
	ObjectID param.Field[string] `json:"object_id,required" format:"uuid"`
	// The object type that the ACL applies to
	ObjectType param.Field[shared.ACLObjectType] `json:"object_type,required"`
	// Id of the group the ACL applies to. Exactly one of `user_id` and `group_id` will
	// be provided
	GroupID param.Field[string] `json:"group_id" format:"uuid"`
	// Permission the ACL grants. Exactly one of `permission` and `role_id` will be
	// provided
	Permission param.Field[shared.Permission] `json:"permission"`
	// When setting a permission directly, optionally restricts the permission grant to
	// just the specified object type. Cannot be set alongside a `role_id`.
	RestrictObjectType param.Field[shared.ACLObjectType] `json:"restrict_object_type"`
	// Id of the role the ACL grants. Exactly one of `permission` and `role_id` will be
	// provided
	RoleID param.Field[string] `json:"role_id" format:"uuid"`
	// Id of the user the ACL applies to. Exactly one of `user_id` and `group_id` will
	// be provided
	UserID param.Field[string] `json:"user_id" format:"uuid"`
}

func (ACLFindAndDeleteParams) MarshalJSON added in v0.4.0

func (r ACLFindAndDeleteParams) MarshalJSON() (data []byte, err error)

type ACLListParams added in v0.2.0

type ACLListParams struct {
	// The id of the object the ACL applies to
	ObjectID param.Field[string] `query:"object_id,required" format:"uuid"`
	// The object type that the ACL applies to
	ObjectType param.Field[shared.ACLObjectType] `query:"object_type,required"`
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[ACLListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
}

func (ACLListParams) URLQuery added in v0.2.0

func (r ACLListParams) URLQuery() (v url.Values)

URLQuery serializes ACLListParams's query parameters as `url.Values`.

type ACLListParamsIDsArray added in v0.2.0

type ACLListParamsIDsArray []string

func (ACLListParamsIDsArray) ImplementsACLListParamsIDsUnion added in v0.2.0

func (r ACLListParamsIDsArray) ImplementsACLListParamsIDsUnion()

type ACLListParamsIDsUnion added in v0.2.0

type ACLListParamsIDsUnion interface {
	ImplementsACLListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, ACLListParamsIDsArray.

type ACLNewParams added in v0.2.0

type ACLNewParams struct {
	// The id of the object the ACL applies to
	ObjectID param.Field[string] `json:"object_id,required" format:"uuid"`
	// The object type that the ACL applies to
	ObjectType param.Field[shared.ACLObjectType] `json:"object_type,required"`
	// Id of the group the ACL applies to. Exactly one of `user_id` and `group_id` will
	// be provided
	GroupID param.Field[string] `json:"group_id" format:"uuid"`
	// Permission the ACL grants. Exactly one of `permission` and `role_id` will be
	// provided
	Permission param.Field[shared.Permission] `json:"permission"`
	// When setting a permission directly, optionally restricts the permission grant to
	// just the specified object type. Cannot be set alongside a `role_id`.
	RestrictObjectType param.Field[shared.ACLObjectType] `json:"restrict_object_type"`
	// Id of the role the ACL grants. Exactly one of `permission` and `role_id` will be
	// provided
	RoleID param.Field[string] `json:"role_id" format:"uuid"`
	// Id of the user the ACL applies to. Exactly one of `user_id` and `group_id` will
	// be provided
	UserID param.Field[string] `json:"user_id" format:"uuid"`
}

func (ACLNewParams) MarshalJSON added in v0.2.0

func (r ACLNewParams) MarshalJSON() (data []byte, err error)

type ACLObjectType added in v0.2.0

type ACLObjectType = shared.ACLObjectType

The object type that the ACL applies to

This is an alias to an internal type.

type ACLService added in v0.2.0

type ACLService struct {
	Options []option.RequestOption
}

ACLService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewACLService method instead.

func NewACLService added in v0.2.0

func NewACLService(opts ...option.RequestOption) (r *ACLService)

NewACLService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*ACLService) BatchUpdate added in v0.4.0

func (r *ACLService) BatchUpdate(ctx context.Context, body ACLBatchUpdateParams, opts ...option.RequestOption) (res *shared.ACLBatchUpdateResponse, err error)

Batch update acls. This operation is idempotent, so adding acls which already exist will have no effect, and removing acls which do not exist will have no effect.

func (*ACLService) Delete added in v0.2.0

func (r *ACLService) Delete(ctx context.Context, aclID string, opts ...option.RequestOption) (res *shared.ACL, err error)

Delete an acl object by its id

func (*ACLService) FindAndDelete added in v0.4.0

func (r *ACLService) FindAndDelete(ctx context.Context, body ACLFindAndDeleteParams, opts ...option.RequestOption) (res *shared.ACL, err error)

Delete a single acl

func (*ACLService) Get added in v0.2.0

func (r *ACLService) Get(ctx context.Context, aclID string, opts ...option.RequestOption) (res *shared.ACL, err error)

Get an acl object by its id

func (*ACLService) List added in v0.2.0

func (r *ACLService) List(ctx context.Context, query ACLListParams, opts ...option.RequestOption) (res *pagination.ListObjects[shared.ACL], err error)

List out all acls. The acls are sorted by creation date, with the most recently-created acls coming first

func (*ACLService) ListAutoPaging added in v0.2.0

List out all acls. The acls are sorted by creation date, with the most recently-created acls coming first

func (*ACLService) New added in v0.2.0

func (r *ACLService) New(ctx context.Context, body ACLNewParams, opts ...option.RequestOption) (res *shared.ACL, err error)

Create a new acl. If there is an existing acl with the same contents as the one specified in the request, will return the existing acl unmodified

type AISecret added in v0.4.0

type AISecret = shared.AISecret

This is an alias to an internal type.

type AISecretFindAndDeleteParams added in v0.4.0

type AISecretFindAndDeleteParams struct {
	// Name of the AI secret
	Name param.Field[string] `json:"name,required"`
	// For nearly all users, this parameter should be unnecessary. But in the rare case
	// that your API key belongs to multiple organizations, you may specify the name of
	// the organization the AI Secret belongs in.
	OrgName param.Field[string] `json:"org_name"`
}

func (AISecretFindAndDeleteParams) MarshalJSON added in v0.4.0

func (r AISecretFindAndDeleteParams) MarshalJSON() (data []byte, err error)

type AISecretListParams added in v0.4.0

type AISecretListParams struct {
	// Name of the ai_secret to search for
	AISecretName param.Field[string]                              `query:"ai_secret_name"`
	AISecretType param.Field[AISecretListParamsAISecretTypeUnion] `query:"ai_secret_type"`
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[AISecretListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
}

func (AISecretListParams) URLQuery added in v0.4.0

func (r AISecretListParams) URLQuery() (v url.Values)

URLQuery serializes AISecretListParams's query parameters as `url.Values`.

type AISecretListParamsAISecretTypeArray added in v0.4.0

type AISecretListParamsAISecretTypeArray []string

func (AISecretListParamsAISecretTypeArray) ImplementsAISecretListParamsAISecretTypeUnion added in v0.4.0

func (r AISecretListParamsAISecretTypeArray) ImplementsAISecretListParamsAISecretTypeUnion()

type AISecretListParamsAISecretTypeUnion added in v0.4.0

type AISecretListParamsAISecretTypeUnion interface {
	ImplementsAISecretListParamsAISecretTypeUnion()
}

Satisfied by shared.UnionString, AISecretListParamsAISecretTypeArray.

type AISecretListParamsIDsArray added in v0.4.0

type AISecretListParamsIDsArray []string

func (AISecretListParamsIDsArray) ImplementsAISecretListParamsIDsUnion added in v0.4.0

func (r AISecretListParamsIDsArray) ImplementsAISecretListParamsIDsUnion()

type AISecretListParamsIDsUnion added in v0.4.0

type AISecretListParamsIDsUnion interface {
	ImplementsAISecretListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, AISecretListParamsIDsArray.

type AISecretNewParams added in v0.4.0

type AISecretNewParams struct {
	// Name of the AI secret
	Name     param.Field[string]                 `json:"name,required"`
	Metadata param.Field[map[string]interface{}] `json:"metadata"`
	// For nearly all users, this parameter should be unnecessary. But in the rare case
	// that your API key belongs to multiple organizations, you may specify the name of
	// the organization the AI Secret belongs in.
	OrgName param.Field[string] `json:"org_name"`
	// Secret value. If omitted in a PUT request, the existing secret value will be
	// left intact, not replaced with null.
	Secret param.Field[string] `json:"secret"`
	Type   param.Field[string] `json:"type"`
}

func (AISecretNewParams) MarshalJSON added in v0.4.0

func (r AISecretNewParams) MarshalJSON() (data []byte, err error)

type AISecretReplaceParams added in v0.4.0

type AISecretReplaceParams struct {
	// Name of the AI secret
	Name     param.Field[string]                 `json:"name,required"`
	Metadata param.Field[map[string]interface{}] `json:"metadata"`
	// For nearly all users, this parameter should be unnecessary. But in the rare case
	// that your API key belongs to multiple organizations, you may specify the name of
	// the organization the AI Secret belongs in.
	OrgName param.Field[string] `json:"org_name"`
	// Secret value. If omitted in a PUT request, the existing secret value will be
	// left intact, not replaced with null.
	Secret param.Field[string] `json:"secret"`
	Type   param.Field[string] `json:"type"`
}

func (AISecretReplaceParams) MarshalJSON added in v0.4.0

func (r AISecretReplaceParams) MarshalJSON() (data []byte, err error)

type AISecretService added in v0.4.0

type AISecretService struct {
	Options []option.RequestOption
}

AISecretService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewAISecretService method instead.

func NewAISecretService added in v0.4.0

func NewAISecretService(opts ...option.RequestOption) (r *AISecretService)

NewAISecretService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*AISecretService) Delete added in v0.4.0

func (r *AISecretService) Delete(ctx context.Context, aiSecretID string, opts ...option.RequestOption) (res *shared.AISecret, err error)

Delete an ai_secret object by its id

func (*AISecretService) FindAndDelete added in v0.4.0

func (r *AISecretService) FindAndDelete(ctx context.Context, body AISecretFindAndDeleteParams, opts ...option.RequestOption) (res *shared.AISecret, err error)

Delete a single ai_secret

func (*AISecretService) Get added in v0.4.0

func (r *AISecretService) Get(ctx context.Context, aiSecretID string, opts ...option.RequestOption) (res *shared.AISecret, err error)

Get an ai_secret object by its id

func (*AISecretService) List added in v0.4.0

List out all ai_secrets. The ai_secrets are sorted by creation date, with the most recently-created ai_secrets coming first

func (*AISecretService) ListAutoPaging added in v0.4.0

List out all ai_secrets. The ai_secrets are sorted by creation date, with the most recently-created ai_secrets coming first

func (*AISecretService) New added in v0.4.0

func (r *AISecretService) New(ctx context.Context, body AISecretNewParams, opts ...option.RequestOption) (res *shared.AISecret, err error)

Create a new ai_secret. If there is an existing ai_secret with the same name as the one specified in the request, will return the existing ai_secret unmodified

func (*AISecretService) Replace added in v0.4.0

func (r *AISecretService) Replace(ctx context.Context, body AISecretReplaceParams, opts ...option.RequestOption) (res *shared.AISecret, err error)

Create or replace ai_secret. If there is an existing ai_secret with the same name as the one specified in the request, will replace the existing ai_secret with the provided fields

func (*AISecretService) Update added in v0.4.0

func (r *AISecretService) Update(ctx context.Context, aiSecretID string, body AISecretUpdateParams, opts ...option.RequestOption) (res *shared.AISecret, err error)

Partially update an ai_secret object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type AISecretUpdateParams added in v0.4.0

type AISecretUpdateParams struct {
	Metadata param.Field[map[string]interface{}] `json:"metadata"`
	// Name of the AI secret
	Name   param.Field[string] `json:"name"`
	Secret param.Field[string] `json:"secret"`
	Type   param.Field[string] `json:"type"`
}

func (AISecretUpdateParams) MarshalJSON added in v0.4.0

func (r AISecretUpdateParams) MarshalJSON() (data []byte, err error)

type APIKey added in v0.2.0

type APIKey = shared.APIKey

This is an alias to an internal type.

type APIKeyListParams added in v0.2.0

type APIKeyListParams struct {
	// Name of the api_key to search for
	APIKeyName param.Field[string] `query:"api_key_name"`
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[APIKeyListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
}

func (APIKeyListParams) URLQuery added in v0.2.0

func (r APIKeyListParams) URLQuery() (v url.Values)

URLQuery serializes APIKeyListParams's query parameters as `url.Values`.

type APIKeyListParamsIDsArray added in v0.2.0

type APIKeyListParamsIDsArray []string

func (APIKeyListParamsIDsArray) ImplementsAPIKeyListParamsIDsUnion added in v0.2.0

func (r APIKeyListParamsIDsArray) ImplementsAPIKeyListParamsIDsUnion()

type APIKeyListParamsIDsUnion added in v0.2.0

type APIKeyListParamsIDsUnion interface {
	ImplementsAPIKeyListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, APIKeyListParamsIDsArray.

type APIKeyNewParams added in v0.2.0

type APIKeyNewParams struct {
	// Name of the api key. Does not have to be unique
	Name param.Field[string] `json:"name,required"`
	// For nearly all users, this parameter should be unnecessary. But in the rare case
	// that your API key belongs to multiple organizations, you may specify the name of
	// the organization the API key belongs in.
	OrgName param.Field[string] `json:"org_name"`
}

func (APIKeyNewParams) MarshalJSON added in v0.2.0

func (r APIKeyNewParams) MarshalJSON() (data []byte, err error)

type APIKeyService added in v0.2.0

type APIKeyService struct {
	Options []option.RequestOption
}

APIKeyService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewAPIKeyService method instead.

func NewAPIKeyService added in v0.2.0

func NewAPIKeyService(opts ...option.RequestOption) (r *APIKeyService)

NewAPIKeyService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*APIKeyService) Delete added in v0.2.0

func (r *APIKeyService) Delete(ctx context.Context, apiKeyID string, opts ...option.RequestOption) (res *shared.APIKey, err error)

Delete an api_key object by its id

func (*APIKeyService) Get added in v0.2.0

func (r *APIKeyService) Get(ctx context.Context, apiKeyID string, opts ...option.RequestOption) (res *shared.APIKey, err error)

Get an api_key object by its id

func (*APIKeyService) List added in v0.2.0

List out all api_keys. The api_keys are sorted by creation date, with the most recently-created api_keys coming first

func (*APIKeyService) ListAutoPaging added in v0.2.0

List out all api_keys. The api_keys are sorted by creation date, with the most recently-created api_keys coming first

func (*APIKeyService) New added in v0.2.0

Create a new api_key. It is possible to have multiple API keys with the same name. There is no de-duplication

type ChatCompletionContentPartImage added in v0.4.0

type ChatCompletionContentPartImage = shared.ChatCompletionContentPartImage

This is an alias to an internal type.

type ChatCompletionContentPartImageImageURL added in v0.4.0

type ChatCompletionContentPartImageImageURL = shared.ChatCompletionContentPartImageImageURL

This is an alias to an internal type.

type ChatCompletionContentPartImageImageURLDetail added in v0.4.0

type ChatCompletionContentPartImageImageURLDetail = shared.ChatCompletionContentPartImageImageURLDetail

This is an alias to an internal type.

type ChatCompletionContentPartImageImageURLParam added in v0.4.0

type ChatCompletionContentPartImageImageURLParam = shared.ChatCompletionContentPartImageImageURLParam

This is an alias to an internal type.

type ChatCompletionContentPartImageParam added in v0.4.0

type ChatCompletionContentPartImageParam = shared.ChatCompletionContentPartImageParam

This is an alias to an internal type.

type ChatCompletionContentPartImageType added in v0.4.0

type ChatCompletionContentPartImageType = shared.ChatCompletionContentPartImageType

This is an alias to an internal type.

type ChatCompletionContentPartText added in v0.4.0

type ChatCompletionContentPartText = shared.ChatCompletionContentPartText

This is an alias to an internal type.

type ChatCompletionContentPartTextParam added in v0.4.0

type ChatCompletionContentPartTextParam = shared.ChatCompletionContentPartTextParam

This is an alias to an internal type.

type ChatCompletionContentPartTextType added in v0.4.0

type ChatCompletionContentPartTextType = shared.ChatCompletionContentPartTextType

This is an alias to an internal type.

type ChatCompletionMessageToolCall added in v0.4.0

type ChatCompletionMessageToolCall = shared.ChatCompletionMessageToolCall

This is an alias to an internal type.

type ChatCompletionMessageToolCallFunction added in v0.4.0

type ChatCompletionMessageToolCallFunction = shared.ChatCompletionMessageToolCallFunction

This is an alias to an internal type.

type ChatCompletionMessageToolCallFunctionParam added in v0.4.0

type ChatCompletionMessageToolCallFunctionParam = shared.ChatCompletionMessageToolCallFunctionParam

This is an alias to an internal type.

type ChatCompletionMessageToolCallParam added in v0.4.0

type ChatCompletionMessageToolCallParam = shared.ChatCompletionMessageToolCallParam

This is an alias to an internal type.

type ChatCompletionMessageToolCallType added in v0.4.0

type ChatCompletionMessageToolCallType = shared.ChatCompletionMessageToolCallType

This is an alias to an internal type.

type Client

type Client struct {
	Options       []option.RequestOption
	TopLevel      *TopLevelService
	Projects      *ProjectService
	Experiments   *ExperimentService
	Datasets      *DatasetService
	Prompts       *PromptService
	Roles         *RoleService
	Groups        *GroupService
	ACLs          *ACLService
	Users         *UserService
	ProjectScores *ProjectScoreService
	ProjectTags   *ProjectTagService
	SpanIframes   *SpanIframeService
	Functions     *FunctionService
	Views         *ViewService
	Organizations *OrganizationService
	APIKeys       *APIKeyService
	AISecrets     *AISecretService
	EnvVars       *EnvVarService
	Evals         *EvalService
}

Client creates a struct with services and top level methods that help with interacting with the braintrust API. You should not instantiate this client directly, and instead use the NewClient method instead.

func NewClient

func NewClient(opts ...option.RequestOption) (r *Client)

NewClient generates a new client with the default option read from the environment (BRAINTRUST_API_KEY). The option passed in as arguments are applied after these default arguments, and all option will be passed down to the services and requests that this client makes.

func (*Client) Delete added in v0.2.0

func (r *Client) Delete(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error

Delete makes a DELETE request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.

func (*Client) Execute added in v0.2.0

func (r *Client) Execute(ctx context.Context, method string, path string, params interface{}, res interface{}, opts ...option.RequestOption) error

Execute makes a request with the given context, method, URL, request params, response, and request options. This is useful for hitting undocumented endpoints while retaining the base URL, auth, retries, and other options from the client.

If a byte slice or an io.Reader is supplied to params, it will be used as-is for the request body.

The params is by default serialized into the body using encoding/json. If your type implements a MarshalJSON function, it will be used instead to serialize the request. If a URLQuery method is implemented, the returned url.Values will be used as query strings to the url.

If your params struct uses param.Field, you must provide either [MarshalJSON], [URLQuery], and/or [MarshalForm] functions. It is undefined behavior to use a struct uses param.Field without specifying how it is serialized.

Any "…Params" object defined in this library can be used as the request argument. Note that 'path' arguments will not be forwarded into the url.

The response body will be deserialized into the res variable, depending on its type:

  • A pointer to a *http.Response is populated by the raw response.
  • A pointer to a byte array will be populated with the contents of the request body.
  • A pointer to any other type uses this library's default JSON decoding, which respects UnmarshalJSON if it is defined on the type.
  • A nil value will not read the response body.

For even greater flexibility, see option.WithResponseInto and option.WithResponseBodyInto.

func (*Client) Get added in v0.2.0

func (r *Client) Get(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error

Get makes a GET request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.

func (*Client) Patch added in v0.2.0

func (r *Client) Patch(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error

Patch makes a PATCH request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.

func (*Client) Post added in v0.2.0

func (r *Client) Post(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error

Post makes a POST request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.

func (*Client) Put added in v0.2.0

func (r *Client) Put(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error

Put makes a PUT request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.

type CodeBundle added in v0.4.0

type CodeBundle = shared.CodeBundle

This is an alias to an internal type.

type CodeBundleLocation added in v0.4.0

type CodeBundleLocation = shared.CodeBundleLocation

This is an alias to an internal type.

type CodeBundleLocationExperiment added in v0.4.0

type CodeBundleLocationExperiment = shared.CodeBundleLocationExperiment

This is an alias to an internal type.

type CodeBundleLocationExperimentParam added in v0.4.0

type CodeBundleLocationExperimentParam = shared.CodeBundleLocationExperimentParam

This is an alias to an internal type.

type CodeBundleLocationExperimentPosition added in v0.4.0

type CodeBundleLocationExperimentPosition = shared.CodeBundleLocationExperimentPosition

This is an alias to an internal type.

type CodeBundleLocationExperimentPositionScorer added in v0.5.0

type CodeBundleLocationExperimentPositionScorer = shared.CodeBundleLocationExperimentPositionScorer

This is an alias to an internal type.

type CodeBundleLocationExperimentPositionScorerParam added in v0.5.0

type CodeBundleLocationExperimentPositionScorerParam = shared.CodeBundleLocationExperimentPositionScorerParam

This is an alias to an internal type.

type CodeBundleLocationExperimentPositionScorerType added in v0.5.0

type CodeBundleLocationExperimentPositionScorerType = shared.CodeBundleLocationExperimentPositionScorerType

This is an alias to an internal type.

type CodeBundleLocationExperimentPositionType added in v0.4.0

type CodeBundleLocationExperimentPositionType = shared.CodeBundleLocationExperimentPositionType

This is an alias to an internal type.

type CodeBundleLocationExperimentPositionTypeParam added in v0.5.0

type CodeBundleLocationExperimentPositionTypeParam = shared.CodeBundleLocationExperimentPositionTypeParam

This is an alias to an internal type.

type CodeBundleLocationExperimentPositionTypeType added in v0.5.0

type CodeBundleLocationExperimentPositionTypeType = shared.CodeBundleLocationExperimentPositionTypeType

This is an alias to an internal type.

type CodeBundleLocationExperimentPositionUnionParam added in v0.4.0

type CodeBundleLocationExperimentPositionUnionParam = shared.CodeBundleLocationExperimentPositionUnionParam

This is an alias to an internal type.

type CodeBundleLocationExperimentType added in v0.4.0

type CodeBundleLocationExperimentType = shared.CodeBundleLocationExperimentType

This is an alias to an internal type.

type CodeBundleLocationFunction added in v0.4.0

type CodeBundleLocationFunction = shared.CodeBundleLocationFunction

This is an alias to an internal type.

type CodeBundleLocationFunctionParam added in v0.4.0

type CodeBundleLocationFunctionParam = shared.CodeBundleLocationFunctionParam

This is an alias to an internal type.

type CodeBundleLocationFunctionType added in v0.4.0

type CodeBundleLocationFunctionType = shared.CodeBundleLocationFunctionType

This is an alias to an internal type.

type CodeBundleLocationType added in v0.4.0

type CodeBundleLocationType = shared.CodeBundleLocationType

This is an alias to an internal type.

type CodeBundleLocationUnionParam added in v0.4.0

type CodeBundleLocationUnionParam = shared.CodeBundleLocationUnionParam

This is an alias to an internal type.

type CodeBundleParam added in v0.4.0

type CodeBundleParam = shared.CodeBundleParam

This is an alias to an internal type.

type CodeBundleRuntimeContext added in v0.4.0

type CodeBundleRuntimeContext = shared.CodeBundleRuntimeContext

This is an alias to an internal type.

type CodeBundleRuntimeContextParam added in v0.4.0

type CodeBundleRuntimeContextParam = shared.CodeBundleRuntimeContextParam

This is an alias to an internal type.

type CodeBundleRuntimeContextRuntime added in v0.4.0

type CodeBundleRuntimeContextRuntime = shared.CodeBundleRuntimeContextRuntime

This is an alias to an internal type.

type CreateAPIKeyOutput added in v0.2.0

type CreateAPIKeyOutput = shared.CreateAPIKeyOutput

This is an alias to an internal type.

type DataSummary added in v0.2.0

type DataSummary = shared.DataSummary

Summary of a dataset's data

This is an alias to an internal type.

type Dataset

type Dataset = shared.Dataset

This is an alias to an internal type.

type DatasetEvent added in v0.2.0

type DatasetEvent = shared.DatasetEvent

This is an alias to an internal type.

type DatasetEventMetadata added in v0.6.0

type DatasetEventMetadata = shared.DatasetEventMetadata

A dictionary with additional data about the test example, model outputs, or just about anything else that's relevant, that you can use to help find and analyze examples later. For example, you could log the `prompt`, example's `id`, or anything else that would be useful to slice/dice later. The values in `metadata` can be any JSON-serializable type, but its keys must be strings

This is an alias to an internal type.

type DatasetFeedbackParams

type DatasetFeedbackParams struct {
	// A list of dataset feedback items
	Feedback param.Field[[]shared.FeedbackDatasetItemParam] `json:"feedback,required"`
}

func (DatasetFeedbackParams) MarshalJSON

func (r DatasetFeedbackParams) MarshalJSON() (data []byte, err error)

type DatasetFetchParams

type DatasetFetchParams struct {
	// limit the number of traces fetched
	//
	// Fetch queries may be paginated if the total result size is expected to be large
	// (e.g. project_logs which accumulate over a long time). Note that fetch queries
	// only support pagination in descending time order (from latest to earliest
	// `_xact_id`. Furthermore, later pages may return rows which showed up in earlier
	// pages, except with an earlier `_xact_id`. This happens because pagination occurs
	// over the whole version history of the event log. You will most likely want to
	// exclude any such duplicate, outdated rows (by `id`) from your combined result
	// set.
	//
	// The `limit` parameter controls the number of full traces to return. So you may
	// end up with more individual rows than the specified limit if you are fetching
	// events containing traces.
	Limit param.Field[int64] `query:"limit"`
	// DEPRECATION NOTICE: The manually-constructed pagination cursor is deprecated in
	// favor of the explicit 'cursor' returned by object fetch requests. Please prefer
	// the 'cursor' argument going forwards.
	//
	// Together, `max_xact_id` and `max_root_span_id` form a pagination cursor
	//
	// Since a paginated fetch query returns results in order from latest to earliest,
	// the cursor for the next page can be found as the row with the minimum (earliest)
	// value of the tuple `(_xact_id, root_span_id)`. See the documentation of `limit`
	// for an overview of paginating fetch queries.
	MaxRootSpanID param.Field[string] `query:"max_root_span_id"`
	// DEPRECATION NOTICE: The manually-constructed pagination cursor is deprecated in
	// favor of the explicit 'cursor' returned by object fetch requests. Please prefer
	// the 'cursor' argument going forwards.
	//
	// Together, `max_xact_id` and `max_root_span_id` form a pagination cursor
	//
	// Since a paginated fetch query returns results in order from latest to earliest,
	// the cursor for the next page can be found as the row with the minimum (earliest)
	// value of the tuple `(_xact_id, root_span_id)`. See the documentation of `limit`
	// for an overview of paginating fetch queries.
	MaxXactID param.Field[string] `query:"max_xact_id"`
	// Retrieve a snapshot of events from a past time
	//
	// The version id is essentially a filter on the latest event transaction id. You
	// can use the `max_xact_id` returned by a past fetch as the version to reproduce
	// that exact fetch.
	Version param.Field[string] `query:"version"`
}

func (DatasetFetchParams) URLQuery

func (r DatasetFetchParams) URLQuery() (v url.Values)

URLQuery serializes DatasetFetchParams's query parameters as `url.Values`.

type DatasetFetchPostParams

type DatasetFetchPostParams struct {
	// An opaque string to be used as a cursor for the next page of results, in order
	// from latest to earliest.
	//
	// The string can be obtained directly from the `cursor` property of the previous
	// fetch query
	Cursor param.Field[string] `json:"cursor"`
	// limit the number of traces fetched
	//
	// Fetch queries may be paginated if the total result size is expected to be large
	// (e.g. project_logs which accumulate over a long time). Note that fetch queries
	// only support pagination in descending time order (from latest to earliest
	// `_xact_id`. Furthermore, later pages may return rows which showed up in earlier
	// pages, except with an earlier `_xact_id`. This happens because pagination occurs
	// over the whole version history of the event log. You will most likely want to
	// exclude any such duplicate, outdated rows (by `id`) from your combined result
	// set.
	//
	// The `limit` parameter controls the number of full traces to return. So you may
	// end up with more individual rows than the specified limit if you are fetching
	// events containing traces.
	Limit param.Field[int64] `json:"limit"`
	// DEPRECATION NOTICE: The manually-constructed pagination cursor is deprecated in
	// favor of the explicit 'cursor' returned by object fetch requests. Please prefer
	// the 'cursor' argument going forwards.
	//
	// Together, `max_xact_id` and `max_root_span_id` form a pagination cursor
	//
	// Since a paginated fetch query returns results in order from latest to earliest,
	// the cursor for the next page can be found as the row with the minimum (earliest)
	// value of the tuple `(_xact_id, root_span_id)`. See the documentation of `limit`
	// for an overview of paginating fetch queries.
	MaxRootSpanID param.Field[string] `json:"max_root_span_id"`
	// DEPRECATION NOTICE: The manually-constructed pagination cursor is deprecated in
	// favor of the explicit 'cursor' returned by object fetch requests. Please prefer
	// the 'cursor' argument going forwards.
	//
	// Together, `max_xact_id` and `max_root_span_id` form a pagination cursor
	//
	// Since a paginated fetch query returns results in order from latest to earliest,
	// the cursor for the next page can be found as the row with the minimum (earliest)
	// value of the tuple `(_xact_id, root_span_id)`. See the documentation of `limit`
	// for an overview of paginating fetch queries.
	MaxXactID param.Field[string] `json:"max_xact_id"`
	// Retrieve a snapshot of events from a past time
	//
	// The version id is essentially a filter on the latest event transaction id. You
	// can use the `max_xact_id` returned by a past fetch as the version to reproduce
	// that exact fetch.
	Version param.Field[string] `json:"version"`
}

func (DatasetFetchPostParams) MarshalJSON

func (r DatasetFetchPostParams) MarshalJSON() (data []byte, err error)

type DatasetInsertParams

type DatasetInsertParams struct {
	// A list of dataset events to insert
	Events param.Field[[]shared.InsertDatasetEventParam] `json:"events,required"`
}

func (DatasetInsertParams) MarshalJSON

func (r DatasetInsertParams) MarshalJSON() (data []byte, err error)

type DatasetListParams

type DatasetListParams struct {
	// Name of the dataset to search for
	DatasetName param.Field[string] `query:"dataset_name"`
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[DatasetListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Project id
	ProjectID param.Field[string] `query:"project_id" format:"uuid"`
	// Name of the project to search for
	ProjectName param.Field[string] `query:"project_name"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
}

func (DatasetListParams) URLQuery

func (r DatasetListParams) URLQuery() (v url.Values)

URLQuery serializes DatasetListParams's query parameters as `url.Values`.

type DatasetListParamsIDsArray added in v0.2.0

type DatasetListParamsIDsArray []string

func (DatasetListParamsIDsArray) ImplementsDatasetListParamsIDsUnion added in v0.2.0

func (r DatasetListParamsIDsArray) ImplementsDatasetListParamsIDsUnion()

type DatasetListParamsIDsUnion added in v0.2.0

type DatasetListParamsIDsUnion interface {
	ImplementsDatasetListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, DatasetListParamsIDsArray.

type DatasetNewParams

type DatasetNewParams struct {
	// Name of the dataset. Within a project, dataset names are unique
	Name param.Field[string] `json:"name,required"`
	// Unique identifier for the project that the dataset belongs under
	ProjectID param.Field[string] `json:"project_id,required" format:"uuid"`
	// Textual description of the dataset
	Description param.Field[string] `json:"description"`
	// User-controlled metadata about the dataset
	Metadata param.Field[map[string]interface{}] `json:"metadata"`
}

func (DatasetNewParams) MarshalJSON

func (r DatasetNewParams) MarshalJSON() (data []byte, err error)

type DatasetService

type DatasetService struct {
	Options []option.RequestOption
}

DatasetService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewDatasetService method instead.

func NewDatasetService

func NewDatasetService(opts ...option.RequestOption) (r *DatasetService)

NewDatasetService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*DatasetService) Delete

func (r *DatasetService) Delete(ctx context.Context, datasetID string, opts ...option.RequestOption) (res *shared.Dataset, err error)

Delete a dataset object by its id

func (*DatasetService) Feedback

func (r *DatasetService) Feedback(ctx context.Context, datasetID string, body DatasetFeedbackParams, opts ...option.RequestOption) (res *shared.FeedbackResponseSchema, err error)

Log feedback for a set of dataset events

func (*DatasetService) Fetch

Fetch the events in a dataset. Equivalent to the POST form of the same path, but with the parameters in the URL query rather than in the request body. For more complex queries, use the `POST /btql` endpoint.

func (*DatasetService) FetchPost

Fetch the events in a dataset. Equivalent to the GET form of the same path, but with the parameters in the request body rather than in the URL query. For more complex queries, use the `POST /btql` endpoint.

func (*DatasetService) Get

func (r *DatasetService) Get(ctx context.Context, datasetID string, opts ...option.RequestOption) (res *shared.Dataset, err error)

Get a dataset object by its id

func (*DatasetService) Insert

func (r *DatasetService) Insert(ctx context.Context, datasetID string, body DatasetInsertParams, opts ...option.RequestOption) (res *shared.InsertEventsResponse, err error)

Insert a set of events into the dataset

func (*DatasetService) List

List out all datasets. The datasets are sorted by creation date, with the most recently-created datasets coming first

func (*DatasetService) ListAutoPaging

List out all datasets. The datasets are sorted by creation date, with the most recently-created datasets coming first

func (*DatasetService) New

func (r *DatasetService) New(ctx context.Context, body DatasetNewParams, opts ...option.RequestOption) (res *shared.Dataset, err error)

Create a new dataset. If there is an existing dataset in the project with the same name as the one specified in the request, will return the existing dataset unmodified

func (*DatasetService) Summarize added in v0.2.0

func (r *DatasetService) Summarize(ctx context.Context, datasetID string, query DatasetSummarizeParams, opts ...option.RequestOption) (res *shared.SummarizeDatasetResponse, err error)

Summarize dataset

func (*DatasetService) Update

func (r *DatasetService) Update(ctx context.Context, datasetID string, body DatasetUpdateParams, opts ...option.RequestOption) (res *shared.Dataset, err error)

Partially update a dataset object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type DatasetSummarizeParams added in v0.2.0

type DatasetSummarizeParams struct {
	// Whether to summarize the data. If false (or omitted), only the metadata will be
	// returned.
	SummarizeData param.Field[bool] `query:"summarize_data"`
}

func (DatasetSummarizeParams) URLQuery added in v0.2.0

func (r DatasetSummarizeParams) URLQuery() (v url.Values)

URLQuery serializes DatasetSummarizeParams's query parameters as `url.Values`.

type DatasetUpdateParams

type DatasetUpdateParams struct {
	// Textual description of the dataset
	Description param.Field[string] `json:"description"`
	// User-controlled metadata about the dataset
	Metadata param.Field[map[string]interface{}] `json:"metadata"`
	// Name of the dataset. Within a project, dataset names are unique
	Name param.Field[string] `json:"name"`
}

func (DatasetUpdateParams) MarshalJSON

func (r DatasetUpdateParams) MarshalJSON() (data []byte, err error)

type EnvVar added in v0.4.0

type EnvVar = shared.EnvVar

This is an alias to an internal type.

type EnvVarListParams added in v0.4.0

type EnvVarListParams struct {
	// Name of the env_var to search for
	EnvVarName param.Field[string] `query:"env_var_name"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[EnvVarListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// The id of the object the environment variable is scoped for
	ObjectID param.Field[string] `query:"object_id" format:"uuid"`
	// The type of the object the environment variable is scoped for
	ObjectType param.Field[shared.EnvVarObjectType] `query:"object_type"`
}

func (EnvVarListParams) URLQuery added in v0.4.0

func (r EnvVarListParams) URLQuery() (v url.Values)

URLQuery serializes EnvVarListParams's query parameters as `url.Values`.

type EnvVarListParamsIDsArray added in v0.4.0

type EnvVarListParamsIDsArray []string

func (EnvVarListParamsIDsArray) ImplementsEnvVarListParamsIDsUnion added in v0.4.0

func (r EnvVarListParamsIDsArray) ImplementsEnvVarListParamsIDsUnion()

type EnvVarListParamsIDsUnion added in v0.4.0

type EnvVarListParamsIDsUnion interface {
	ImplementsEnvVarListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, EnvVarListParamsIDsArray.

type EnvVarListResponse added in v0.4.0

type EnvVarListResponse struct {
	// A list of env_var objects
	Objects []shared.EnvVar        `json:"objects,required"`
	JSON    envVarListResponseJSON `json:"-"`
}

func (*EnvVarListResponse) UnmarshalJSON added in v0.4.0

func (r *EnvVarListResponse) UnmarshalJSON(data []byte) (err error)

type EnvVarNewParams added in v0.4.0

type EnvVarNewParams struct {
	// The name of the environment variable
	Name param.Field[string] `json:"name,required"`
	// The id of the object the environment variable is scoped for
	ObjectID param.Field[string] `json:"object_id,required" format:"uuid"`
	// The type of the object the environment variable is scoped for
	ObjectType param.Field[EnvVarNewParamsObjectType] `json:"object_type,required"`
	// The value of the environment variable. Will be encrypted at rest.
	Value param.Field[string] `json:"value"`
}

func (EnvVarNewParams) MarshalJSON added in v0.4.0

func (r EnvVarNewParams) MarshalJSON() (data []byte, err error)

type EnvVarNewParamsObjectType added in v0.4.0

type EnvVarNewParamsObjectType string

The type of the object the environment variable is scoped for

const (
	EnvVarNewParamsObjectTypeOrganization EnvVarNewParamsObjectType = "organization"
	EnvVarNewParamsObjectTypeProject      EnvVarNewParamsObjectType = "project"
	EnvVarNewParamsObjectTypeFunction     EnvVarNewParamsObjectType = "function"
)

func (EnvVarNewParamsObjectType) IsKnown added in v0.4.0

func (r EnvVarNewParamsObjectType) IsKnown() bool

type EnvVarObjectType added in v0.4.0

type EnvVarObjectType = shared.EnvVarObjectType

The type of the object the environment variable is scoped for

This is an alias to an internal type.

type EnvVarReplaceParams added in v0.4.0

type EnvVarReplaceParams struct {
	// The name of the environment variable
	Name param.Field[string] `json:"name,required"`
	// The id of the object the environment variable is scoped for
	ObjectID param.Field[string] `json:"object_id,required" format:"uuid"`
	// The type of the object the environment variable is scoped for
	ObjectType param.Field[EnvVarReplaceParamsObjectType] `json:"object_type,required"`
	// The value of the environment variable. Will be encrypted at rest.
	Value param.Field[string] `json:"value"`
}

func (EnvVarReplaceParams) MarshalJSON added in v0.4.0

func (r EnvVarReplaceParams) MarshalJSON() (data []byte, err error)

type EnvVarReplaceParamsObjectType added in v0.4.0

type EnvVarReplaceParamsObjectType string

The type of the object the environment variable is scoped for

const (
	EnvVarReplaceParamsObjectTypeOrganization EnvVarReplaceParamsObjectType = "organization"
	EnvVarReplaceParamsObjectTypeProject      EnvVarReplaceParamsObjectType = "project"
	EnvVarReplaceParamsObjectTypeFunction     EnvVarReplaceParamsObjectType = "function"
)

func (EnvVarReplaceParamsObjectType) IsKnown added in v0.4.0

func (r EnvVarReplaceParamsObjectType) IsKnown() bool

type EnvVarService added in v0.4.0

type EnvVarService struct {
	Options []option.RequestOption
}

EnvVarService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewEnvVarService method instead.

func NewEnvVarService added in v0.4.0

func NewEnvVarService(opts ...option.RequestOption) (r *EnvVarService)

NewEnvVarService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*EnvVarService) Delete added in v0.4.0

func (r *EnvVarService) Delete(ctx context.Context, envVarID string, opts ...option.RequestOption) (res *shared.EnvVar, err error)

Delete an env_var object by its id

func (*EnvVarService) Get added in v0.4.0

func (r *EnvVarService) Get(ctx context.Context, envVarID string, opts ...option.RequestOption) (res *shared.EnvVar, err error)

Get an env_var object by its id

func (*EnvVarService) List added in v0.4.0

func (r *EnvVarService) List(ctx context.Context, query EnvVarListParams, opts ...option.RequestOption) (res *EnvVarListResponse, err error)

List out all env_vars. The env_vars are sorted by creation date, with the most recently-created env_vars coming first

func (*EnvVarService) New added in v0.4.0

func (r *EnvVarService) New(ctx context.Context, body EnvVarNewParams, opts ...option.RequestOption) (res *shared.EnvVar, err error)

Create a new env_var. If there is an existing env_var with the same name as the one specified in the request, will return the existing env_var unmodified

func (*EnvVarService) Replace added in v0.4.0

func (r *EnvVarService) Replace(ctx context.Context, body EnvVarReplaceParams, opts ...option.RequestOption) (res *shared.EnvVar, err error)

Create or replace env_var. If there is an existing env_var with the same name as the one specified in the request, will replace the existing env_var with the provided fields

func (*EnvVarService) Update added in v0.4.0

func (r *EnvVarService) Update(ctx context.Context, envVarID string, body EnvVarUpdateParams, opts ...option.RequestOption) (res *shared.EnvVar, err error)

Partially update an env_var object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type EnvVarUpdateParams added in v0.4.0

type EnvVarUpdateParams struct {
	// The name of the environment variable
	Name param.Field[string] `json:"name,required"`
	// The value of the environment variable. Will be encrypted at rest.
	Value param.Field[string] `json:"value"`
}

func (EnvVarUpdateParams) MarshalJSON added in v0.4.0

func (r EnvVarUpdateParams) MarshalJSON() (data []byte, err error)

type Error

type Error = apierror.Error

type EvalNewParams added in v0.4.0

type EvalNewParams struct {
	// The dataset to use
	Data param.Field[EvalNewParamsDataUnion] `json:"data,required"`
	// Unique identifier for the project to run the eval in
	ProjectID param.Field[string] `json:"project_id,required"`
	// The functions to score the eval on
	Scores param.Field[[]EvalNewParamsScoreUnion] `json:"scores,required"`
	// The function to evaluate
	Task param.Field[EvalNewParamsTaskUnion] `json:"task,required"`
	// An optional experiment id to use as a base. If specified, the new experiment
	// will be summarized and compared to this experiment.
	BaseExperimentID param.Field[string] `json:"base_experiment_id"`
	// An optional experiment name to use as a base. If specified, the new experiment
	// will be summarized and compared to this experiment.
	BaseExperimentName param.Field[string] `json:"base_experiment_name"`
	// An optional name for the experiment created by this eval. If it conflicts with
	// an existing experiment, it will be suffixed with a unique identifier.
	ExperimentName param.Field[string] `json:"experiment_name"`
	// Optional settings for collecting git metadata. By default, will collect all git
	// metadata fields allowed in org-level settings.
	GitMetadataSettings param.Field[EvalNewParamsGitMetadataSettings] `json:"git_metadata_settings"`
	// Whether the experiment should be public. Defaults to false.
	IsPublic param.Field[bool] `json:"is_public"`
	// The maximum number of tasks/scorers that will be run concurrently. Defaults to
	// undefined, in which case there is no max concurrency.
	MaxConcurrency param.Field[float64] `json:"max_concurrency"`
	// Optional experiment-level metadata to store about the evaluation. You can later
	// use this to slice & dice across experiments.
	Metadata param.Field[map[string]interface{}] `json:"metadata"`
	// Options for tracing the evaluation
	Parent param.Field[EvalNewParamsParentUnion] `json:"parent"`
	// Metadata about the state of the repo when the experiment was created
	RepoInfo param.Field[shared.RepoInfoParam] `json:"repo_info"`
	// Whether to stream the results of the eval. If true, the request will return two
	// events: one to indicate the experiment has started, and another upon completion.
	// If false, the request will return the evaluation's summary upon completion.
	Stream param.Field[bool] `json:"stream"`
	// The maximum duration, in milliseconds, to run the evaluation. Defaults to
	// undefined, in which case there is no timeout.
	Timeout param.Field[float64] `json:"timeout"`
	// The number of times to run the evaluator per input. This is useful for
	// evaluating applications that have non-deterministic behavior and gives you both
	// a stronger aggregate measure and a sense of the variance in the results.
	TrialCount param.Field[float64] `json:"trial_count"`
}

func (EvalNewParams) MarshalJSON added in v0.4.0

func (r EvalNewParams) MarshalJSON() (data []byte, err error)

type EvalNewParamsData added in v0.4.0

type EvalNewParamsData struct {
	InternalBtql param.Field[interface{}] `json:"_internal_btql"`
	Data         param.Field[interface{}] `json:"data"`
	DatasetID    param.Field[string]      `json:"dataset_id"`
	DatasetName  param.Field[string]      `json:"dataset_name"`
	ProjectName  param.Field[string]      `json:"project_name"`
}

The dataset to use

func (EvalNewParamsData) MarshalJSON added in v0.4.0

func (r EvalNewParamsData) MarshalJSON() (data []byte, err error)

type EvalNewParamsDataDatasetID added in v0.4.0

type EvalNewParamsDataDatasetID struct {
	DatasetID    param.Field[string]                 `json:"dataset_id,required"`
	InternalBtql param.Field[map[string]interface{}] `json:"_internal_btql"`
}

Dataset id

func (EvalNewParamsDataDatasetID) MarshalJSON added in v0.4.0

func (r EvalNewParamsDataDatasetID) MarshalJSON() (data []byte, err error)

type EvalNewParamsDataDatasetRows added in v0.6.0

type EvalNewParamsDataDatasetRows struct {
	Data param.Field[[]interface{}] `json:"data,required"`
}

Dataset rows

func (EvalNewParamsDataDatasetRows) MarshalJSON added in v0.6.0

func (r EvalNewParamsDataDatasetRows) MarshalJSON() (data []byte, err error)

type EvalNewParamsDataProjectDatasetName added in v0.4.0

type EvalNewParamsDataProjectDatasetName struct {
	DatasetName  param.Field[string]                 `json:"dataset_name,required"`
	ProjectName  param.Field[string]                 `json:"project_name,required"`
	InternalBtql param.Field[map[string]interface{}] `json:"_internal_btql"`
}

Project and dataset name

func (EvalNewParamsDataProjectDatasetName) MarshalJSON added in v0.4.0

func (r EvalNewParamsDataProjectDatasetName) MarshalJSON() (data []byte, err error)

type EvalNewParamsDataUnion added in v0.4.0

type EvalNewParamsDataUnion interface {
	// contains filtered or unexported methods
}

The dataset to use

Satisfied by EvalNewParamsDataDatasetID, EvalNewParamsDataProjectDatasetName, EvalNewParamsDataDatasetRows, EvalNewParamsData.

type EvalNewParamsGitMetadataSettings added in v0.5.0

type EvalNewParamsGitMetadataSettings struct {
	Collect param.Field[EvalNewParamsGitMetadataSettingsCollect] `json:"collect,required"`
	Fields  param.Field[[]EvalNewParamsGitMetadataSettingsField] `json:"fields"`
}

Optional settings for collecting git metadata. By default, will collect all git metadata fields allowed in org-level settings.

func (EvalNewParamsGitMetadataSettings) MarshalJSON added in v0.5.0

func (r EvalNewParamsGitMetadataSettings) MarshalJSON() (data []byte, err error)

type EvalNewParamsGitMetadataSettingsCollect added in v0.5.0

type EvalNewParamsGitMetadataSettingsCollect string
const (
	EvalNewParamsGitMetadataSettingsCollectAll  EvalNewParamsGitMetadataSettingsCollect = "all"
	EvalNewParamsGitMetadataSettingsCollectNone EvalNewParamsGitMetadataSettingsCollect = "none"
	EvalNewParamsGitMetadataSettingsCollectSome EvalNewParamsGitMetadataSettingsCollect = "some"
)

func (EvalNewParamsGitMetadataSettingsCollect) IsKnown added in v0.5.0

type EvalNewParamsGitMetadataSettingsField added in v0.5.0

type EvalNewParamsGitMetadataSettingsField string
const (
	EvalNewParamsGitMetadataSettingsFieldCommit        EvalNewParamsGitMetadataSettingsField = "commit"
	EvalNewParamsGitMetadataSettingsFieldBranch        EvalNewParamsGitMetadataSettingsField = "branch"
	EvalNewParamsGitMetadataSettingsFieldTag           EvalNewParamsGitMetadataSettingsField = "tag"
	EvalNewParamsGitMetadataSettingsFieldDirty         EvalNewParamsGitMetadataSettingsField = "dirty"
	EvalNewParamsGitMetadataSettingsFieldAuthorName    EvalNewParamsGitMetadataSettingsField = "author_name"
	EvalNewParamsGitMetadataSettingsFieldAuthorEmail   EvalNewParamsGitMetadataSettingsField = "author_email"
	EvalNewParamsGitMetadataSettingsFieldCommitMessage EvalNewParamsGitMetadataSettingsField = "commit_message"
	EvalNewParamsGitMetadataSettingsFieldCommitTime    EvalNewParamsGitMetadataSettingsField = "commit_time"
	EvalNewParamsGitMetadataSettingsFieldGitDiff       EvalNewParamsGitMetadataSettingsField = "git_diff"
)

func (EvalNewParamsGitMetadataSettingsField) IsKnown added in v0.5.0

type EvalNewParamsParentSpanParentStruct added in v0.6.0

type EvalNewParamsParentSpanParentStruct struct {
	// The id of the container object you are logging to
	ObjectID   param.Field[string]                                        `json:"object_id,required"`
	ObjectType param.Field[EvalNewParamsParentSpanParentStructObjectType] `json:"object_type,required"`
	// Include these properties in every span created under this parent
	PropagatedEvent param.Field[map[string]interface{}] `json:"propagated_event"`
	// Identifiers for the row to to log a subspan under
	RowIDs param.Field[EvalNewParamsParentSpanParentStructRowIDs] `json:"row_ids"`
}

Span parent properties

func (EvalNewParamsParentSpanParentStruct) ImplementsEvalNewParamsParentUnion added in v0.6.0

func (r EvalNewParamsParentSpanParentStruct) ImplementsEvalNewParamsParentUnion()

func (EvalNewParamsParentSpanParentStruct) MarshalJSON added in v0.6.0

func (r EvalNewParamsParentSpanParentStruct) MarshalJSON() (data []byte, err error)

type EvalNewParamsParentSpanParentStructObjectType added in v0.6.0

type EvalNewParamsParentSpanParentStructObjectType string
const (
	EvalNewParamsParentSpanParentStructObjectTypeProjectLogs    EvalNewParamsParentSpanParentStructObjectType = "project_logs"
	EvalNewParamsParentSpanParentStructObjectTypeExperiment     EvalNewParamsParentSpanParentStructObjectType = "experiment"
	EvalNewParamsParentSpanParentStructObjectTypePlaygroundLogs EvalNewParamsParentSpanParentStructObjectType = "playground_logs"
)

func (EvalNewParamsParentSpanParentStructObjectType) IsKnown added in v0.6.0

type EvalNewParamsParentSpanParentStructRowIDs added in v0.6.0

type EvalNewParamsParentSpanParentStructRowIDs struct {
	// The id of the row
	ID param.Field[string] `json:"id,required"`
	// The root_span_id of the row
	RootSpanID param.Field[string] `json:"root_span_id,required"`
	// The span_id of the row
	SpanID param.Field[string] `json:"span_id,required"`
}

Identifiers for the row to to log a subspan under

func (EvalNewParamsParentSpanParentStructRowIDs) MarshalJSON added in v0.6.0

func (r EvalNewParamsParentSpanParentStructRowIDs) MarshalJSON() (data []byte, err error)

type EvalNewParamsParentUnion added in v0.6.0

type EvalNewParamsParentUnion interface {
	ImplementsEvalNewParamsParentUnion()
}

Options for tracing the evaluation

Satisfied by EvalNewParamsParentSpanParentStruct, shared.UnionString.

type EvalNewParamsScore added in v0.4.0

type EvalNewParamsScore struct {
	// The inline code to execute
	Code param.Field[string] `json:"code"`
	// The ID of the function
	FunctionID param.Field[string] `json:"function_id"`
	// The name of the global function. Currently, the global namespace includes the
	// functions in autoevals
	GlobalFunction param.Field[string]      `json:"global_function"`
	InlineContext  param.Field[interface{}] `json:"inline_context"`
	// The prompt, model, and its parameters
	InlinePrompt param.Field[shared.PromptDataParam] `json:"inline_prompt"`
	// The name of the inline code function
	Name param.Field[string] `json:"name"`
	// The name of the project containing the function
	ProjectName param.Field[string] `json:"project_name"`
	// The ID of the function in the prompt session
	PromptSessionFunctionID param.Field[string] `json:"prompt_session_function_id"`
	// The ID of the prompt session
	PromptSessionID param.Field[string] `json:"prompt_session_id"`
	// The slug of the function
	Slug param.Field[string] `json:"slug"`
	// The version of the function
	Version param.Field[string] `json:"version"`
}

The function to evaluate

func (EvalNewParamsScore) MarshalJSON added in v0.4.0

func (r EvalNewParamsScore) MarshalJSON() (data []byte, err error)

type EvalNewParamsScoreUnion added in v0.4.0

type EvalNewParamsScoreUnion interface {
	// contains filtered or unexported methods
}

The function to evaluate

Satisfied by EvalNewParamsScoresFunctionID, EvalNewParamsScoresProjectSlug, EvalNewParamsScoresGlobalFunction, EvalNewParamsScoresPromptSessionID, EvalNewParamsScoresInlineCode, EvalNewParamsScoresInlinePrompt, EvalNewParamsScore.

type EvalNewParamsScoresFunctionID added in v0.4.0

type EvalNewParamsScoresFunctionID struct {
	// The ID of the function
	FunctionID param.Field[string] `json:"function_id,required"`
	// The version of the function
	Version param.Field[string] `json:"version"`
}

Function id

func (EvalNewParamsScoresFunctionID) MarshalJSON added in v0.4.0

func (r EvalNewParamsScoresFunctionID) MarshalJSON() (data []byte, err error)

type EvalNewParamsScoresGlobalFunction added in v0.4.0

type EvalNewParamsScoresGlobalFunction struct {
	// The name of the global function. Currently, the global namespace includes the
	// functions in autoevals
	GlobalFunction param.Field[string] `json:"global_function,required"`
}

Global function name

func (EvalNewParamsScoresGlobalFunction) MarshalJSON added in v0.4.0

func (r EvalNewParamsScoresGlobalFunction) MarshalJSON() (data []byte, err error)

type EvalNewParamsScoresInlineCode added in v0.4.0

type EvalNewParamsScoresInlineCode struct {
	// The inline code to execute
	Code          param.Field[string]                                     `json:"code,required"`
	InlineContext param.Field[EvalNewParamsScoresInlineCodeInlineContext] `json:"inline_context,required"`
	// The name of the inline code function
	Name param.Field[string] `json:"name"`
}

Inline code function

func (EvalNewParamsScoresInlineCode) MarshalJSON added in v0.4.0

func (r EvalNewParamsScoresInlineCode) MarshalJSON() (data []byte, err error)

type EvalNewParamsScoresInlineCodeInlineContext added in v0.4.0

type EvalNewParamsScoresInlineCodeInlineContext struct {
	Runtime param.Field[EvalNewParamsScoresInlineCodeInlineContextRuntime] `json:"runtime,required"`
	Version param.Field[string]                                            `json:"version,required"`
}

func (EvalNewParamsScoresInlineCodeInlineContext) MarshalJSON added in v0.4.0

func (r EvalNewParamsScoresInlineCodeInlineContext) MarshalJSON() (data []byte, err error)

type EvalNewParamsScoresInlineCodeInlineContextRuntime added in v0.4.0

type EvalNewParamsScoresInlineCodeInlineContextRuntime string
const (
	EvalNewParamsScoresInlineCodeInlineContextRuntimeNode   EvalNewParamsScoresInlineCodeInlineContextRuntime = "node"
	EvalNewParamsScoresInlineCodeInlineContextRuntimePython EvalNewParamsScoresInlineCodeInlineContextRuntime = "python"
)

func (EvalNewParamsScoresInlineCodeInlineContextRuntime) IsKnown added in v0.4.0

type EvalNewParamsScoresInlinePrompt added in v0.4.0

type EvalNewParamsScoresInlinePrompt struct {
	// The prompt, model, and its parameters
	InlinePrompt param.Field[shared.PromptDataParam] `json:"inline_prompt,required"`
	// The name of the inline prompt
	Name param.Field[string] `json:"name"`
}

Inline prompt definition

func (EvalNewParamsScoresInlinePrompt) MarshalJSON added in v0.4.0

func (r EvalNewParamsScoresInlinePrompt) MarshalJSON() (data []byte, err error)

type EvalNewParamsScoresProjectSlug added in v0.4.0

type EvalNewParamsScoresProjectSlug struct {
	// The name of the project containing the function
	ProjectName param.Field[string] `json:"project_name,required"`
	// The slug of the function
	Slug param.Field[string] `json:"slug,required"`
	// The version of the function
	Version param.Field[string] `json:"version"`
}

Project name and slug

func (EvalNewParamsScoresProjectSlug) MarshalJSON added in v0.4.0

func (r EvalNewParamsScoresProjectSlug) MarshalJSON() (data []byte, err error)

type EvalNewParamsScoresPromptSessionID added in v0.4.0

type EvalNewParamsScoresPromptSessionID struct {
	// The ID of the function in the prompt session
	PromptSessionFunctionID param.Field[string] `json:"prompt_session_function_id,required"`
	// The ID of the prompt session
	PromptSessionID param.Field[string] `json:"prompt_session_id,required"`
	// The version of the function
	Version param.Field[string] `json:"version"`
}

Prompt session id

func (EvalNewParamsScoresPromptSessionID) MarshalJSON added in v0.4.0

func (r EvalNewParamsScoresPromptSessionID) MarshalJSON() (data []byte, err error)

type EvalNewParamsTask added in v0.4.0

type EvalNewParamsTask struct {
	// The inline code to execute
	Code param.Field[string] `json:"code"`
	// The ID of the function
	FunctionID param.Field[string] `json:"function_id"`
	// The name of the global function. Currently, the global namespace includes the
	// functions in autoevals
	GlobalFunction param.Field[string]      `json:"global_function"`
	InlineContext  param.Field[interface{}] `json:"inline_context"`
	// The prompt, model, and its parameters
	InlinePrompt param.Field[shared.PromptDataParam] `json:"inline_prompt"`
	// The name of the inline code function
	Name param.Field[string] `json:"name"`
	// The name of the project containing the function
	ProjectName param.Field[string] `json:"project_name"`
	// The ID of the function in the prompt session
	PromptSessionFunctionID param.Field[string] `json:"prompt_session_function_id"`
	// The ID of the prompt session
	PromptSessionID param.Field[string] `json:"prompt_session_id"`
	// The slug of the function
	Slug param.Field[string] `json:"slug"`
	// The version of the function
	Version param.Field[string] `json:"version"`
}

The function to evaluate

func (EvalNewParamsTask) MarshalJSON added in v0.4.0

func (r EvalNewParamsTask) MarshalJSON() (data []byte, err error)

type EvalNewParamsTaskFunctionID added in v0.4.0

type EvalNewParamsTaskFunctionID struct {
	// The ID of the function
	FunctionID param.Field[string] `json:"function_id,required"`
	// The version of the function
	Version param.Field[string] `json:"version"`
}

Function id

func (EvalNewParamsTaskFunctionID) MarshalJSON added in v0.4.0

func (r EvalNewParamsTaskFunctionID) MarshalJSON() (data []byte, err error)

type EvalNewParamsTaskGlobalFunction added in v0.4.0

type EvalNewParamsTaskGlobalFunction struct {
	// The name of the global function. Currently, the global namespace includes the
	// functions in autoevals
	GlobalFunction param.Field[string] `json:"global_function,required"`
}

Global function name

func (EvalNewParamsTaskGlobalFunction) MarshalJSON added in v0.4.0

func (r EvalNewParamsTaskGlobalFunction) MarshalJSON() (data []byte, err error)

type EvalNewParamsTaskInlineCode added in v0.4.0

type EvalNewParamsTaskInlineCode struct {
	// The inline code to execute
	Code          param.Field[string]                                   `json:"code,required"`
	InlineContext param.Field[EvalNewParamsTaskInlineCodeInlineContext] `json:"inline_context,required"`
	// The name of the inline code function
	Name param.Field[string] `json:"name"`
}

Inline code function

func (EvalNewParamsTaskInlineCode) MarshalJSON added in v0.4.0

func (r EvalNewParamsTaskInlineCode) MarshalJSON() (data []byte, err error)

type EvalNewParamsTaskInlineCodeInlineContext added in v0.4.0

type EvalNewParamsTaskInlineCodeInlineContext struct {
	Runtime param.Field[EvalNewParamsTaskInlineCodeInlineContextRuntime] `json:"runtime,required"`
	Version param.Field[string]                                          `json:"version,required"`
}

func (EvalNewParamsTaskInlineCodeInlineContext) MarshalJSON added in v0.4.0

func (r EvalNewParamsTaskInlineCodeInlineContext) MarshalJSON() (data []byte, err error)

type EvalNewParamsTaskInlineCodeInlineContextRuntime added in v0.4.0

type EvalNewParamsTaskInlineCodeInlineContextRuntime string
const (
	EvalNewParamsTaskInlineCodeInlineContextRuntimeNode   EvalNewParamsTaskInlineCodeInlineContextRuntime = "node"
	EvalNewParamsTaskInlineCodeInlineContextRuntimePython EvalNewParamsTaskInlineCodeInlineContextRuntime = "python"
)

func (EvalNewParamsTaskInlineCodeInlineContextRuntime) IsKnown added in v0.4.0

type EvalNewParamsTaskInlinePrompt added in v0.4.0

type EvalNewParamsTaskInlinePrompt struct {
	// The prompt, model, and its parameters
	InlinePrompt param.Field[shared.PromptDataParam] `json:"inline_prompt,required"`
	// The name of the inline prompt
	Name param.Field[string] `json:"name"`
}

Inline prompt definition

func (EvalNewParamsTaskInlinePrompt) MarshalJSON added in v0.4.0

func (r EvalNewParamsTaskInlinePrompt) MarshalJSON() (data []byte, err error)

type EvalNewParamsTaskProjectSlug added in v0.4.0

type EvalNewParamsTaskProjectSlug struct {
	// The name of the project containing the function
	ProjectName param.Field[string] `json:"project_name,required"`
	// The slug of the function
	Slug param.Field[string] `json:"slug,required"`
	// The version of the function
	Version param.Field[string] `json:"version"`
}

Project name and slug

func (EvalNewParamsTaskProjectSlug) MarshalJSON added in v0.4.0

func (r EvalNewParamsTaskProjectSlug) MarshalJSON() (data []byte, err error)

type EvalNewParamsTaskPromptSessionID added in v0.4.0

type EvalNewParamsTaskPromptSessionID struct {
	// The ID of the function in the prompt session
	PromptSessionFunctionID param.Field[string] `json:"prompt_session_function_id,required"`
	// The ID of the prompt session
	PromptSessionID param.Field[string] `json:"prompt_session_id,required"`
	// The version of the function
	Version param.Field[string] `json:"version"`
}

Prompt session id

func (EvalNewParamsTaskPromptSessionID) MarshalJSON added in v0.4.0

func (r EvalNewParamsTaskPromptSessionID) MarshalJSON() (data []byte, err error)

type EvalNewParamsTaskUnion added in v0.4.0

type EvalNewParamsTaskUnion interface {
	// contains filtered or unexported methods
}

The function to evaluate

Satisfied by EvalNewParamsTaskFunctionID, EvalNewParamsTaskProjectSlug, EvalNewParamsTaskGlobalFunction, EvalNewParamsTaskPromptSessionID, EvalNewParamsTaskInlineCode, EvalNewParamsTaskInlinePrompt, EvalNewParamsTask.

type EvalService added in v0.4.0

type EvalService struct {
	Options []option.RequestOption
}

EvalService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewEvalService method instead.

func NewEvalService added in v0.4.0

func NewEvalService(opts ...option.RequestOption) (r *EvalService)

NewEvalService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*EvalService) New added in v0.4.0

Launch an evaluation. This is the API-equivalent of the `Eval` function that is built into the Braintrust SDK. In the Eval API, you provide pointers to a dataset, task function, and scoring functions. The API will then run the evaluation, create an experiment, and return the results along with a link to the experiment. To learn more about evals, see the [Evals guide](https://www.braintrust.dev/docs/guides/evals).

type Experiment

type Experiment = shared.Experiment

This is an alias to an internal type.

type ExperimentEvent added in v0.2.0

type ExperimentEvent = shared.ExperimentEvent

This is an alias to an internal type.

type ExperimentEventContext added in v0.2.0

type ExperimentEventContext = shared.ExperimentEventContext

Context is additional information about the code that produced the experiment event. It is essentially the textual counterpart to `metrics`. Use the `caller_*` attributes to track the location in code which produced the experiment event

This is an alias to an internal type.

type ExperimentEventMetadata added in v0.6.0

type ExperimentEventMetadata = shared.ExperimentEventMetadata

A dictionary with additional data about the test example, model outputs, or just about anything else that's relevant, that you can use to help find and analyze examples later. For example, you could log the `prompt`, example's `id`, or anything else that would be useful to slice/dice later. The values in `metadata` can be any JSON-serializable type, but its keys must be strings

This is an alias to an internal type.

type ExperimentEventMetrics added in v0.2.0

type ExperimentEventMetrics = shared.ExperimentEventMetrics

Metrics are numerical measurements tracking the execution of the code that produced the experiment event. Use "start" and "end" to track the time span over which the experiment event was produced

This is an alias to an internal type.

type ExperimentFeedbackParams

type ExperimentFeedbackParams struct {
	// A list of experiment feedback items
	Feedback param.Field[[]shared.FeedbackExperimentItemParam] `json:"feedback,required"`
}

func (ExperimentFeedbackParams) MarshalJSON

func (r ExperimentFeedbackParams) MarshalJSON() (data []byte, err error)

type ExperimentFetchParams

type ExperimentFetchParams struct {
	// limit the number of traces fetched
	//
	// Fetch queries may be paginated if the total result size is expected to be large
	// (e.g. project_logs which accumulate over a long time). Note that fetch queries
	// only support pagination in descending time order (from latest to earliest
	// `_xact_id`. Furthermore, later pages may return rows which showed up in earlier
	// pages, except with an earlier `_xact_id`. This happens because pagination occurs
	// over the whole version history of the event log. You will most likely want to
	// exclude any such duplicate, outdated rows (by `id`) from your combined result
	// set.
	//
	// The `limit` parameter controls the number of full traces to return. So you may
	// end up with more individual rows than the specified limit if you are fetching
	// events containing traces.
	Limit param.Field[int64] `query:"limit"`
	// DEPRECATION NOTICE: The manually-constructed pagination cursor is deprecated in
	// favor of the explicit 'cursor' returned by object fetch requests. Please prefer
	// the 'cursor' argument going forwards.
	//
	// Together, `max_xact_id` and `max_root_span_id` form a pagination cursor
	//
	// Since a paginated fetch query returns results in order from latest to earliest,
	// the cursor for the next page can be found as the row with the minimum (earliest)
	// value of the tuple `(_xact_id, root_span_id)`. See the documentation of `limit`
	// for an overview of paginating fetch queries.
	MaxRootSpanID param.Field[string] `query:"max_root_span_id"`
	// DEPRECATION NOTICE: The manually-constructed pagination cursor is deprecated in
	// favor of the explicit 'cursor' returned by object fetch requests. Please prefer
	// the 'cursor' argument going forwards.
	//
	// Together, `max_xact_id` and `max_root_span_id` form a pagination cursor
	//
	// Since a paginated fetch query returns results in order from latest to earliest,
	// the cursor for the next page can be found as the row with the minimum (earliest)
	// value of the tuple `(_xact_id, root_span_id)`. See the documentation of `limit`
	// for an overview of paginating fetch queries.
	MaxXactID param.Field[string] `query:"max_xact_id"`
	// Retrieve a snapshot of events from a past time
	//
	// The version id is essentially a filter on the latest event transaction id. You
	// can use the `max_xact_id` returned by a past fetch as the version to reproduce
	// that exact fetch.
	Version param.Field[string] `query:"version"`
}

func (ExperimentFetchParams) URLQuery

func (r ExperimentFetchParams) URLQuery() (v url.Values)

URLQuery serializes ExperimentFetchParams's query parameters as `url.Values`.

type ExperimentFetchPostParams

type ExperimentFetchPostParams struct {
	// An opaque string to be used as a cursor for the next page of results, in order
	// from latest to earliest.
	//
	// The string can be obtained directly from the `cursor` property of the previous
	// fetch query
	Cursor param.Field[string] `json:"cursor"`
	// limit the number of traces fetched
	//
	// Fetch queries may be paginated if the total result size is expected to be large
	// (e.g. project_logs which accumulate over a long time). Note that fetch queries
	// only support pagination in descending time order (from latest to earliest
	// `_xact_id`. Furthermore, later pages may return rows which showed up in earlier
	// pages, except with an earlier `_xact_id`. This happens because pagination occurs
	// over the whole version history of the event log. You will most likely want to
	// exclude any such duplicate, outdated rows (by `id`) from your combined result
	// set.
	//
	// The `limit` parameter controls the number of full traces to return. So you may
	// end up with more individual rows than the specified limit if you are fetching
	// events containing traces.
	Limit param.Field[int64] `json:"limit"`
	// DEPRECATION NOTICE: The manually-constructed pagination cursor is deprecated in
	// favor of the explicit 'cursor' returned by object fetch requests. Please prefer
	// the 'cursor' argument going forwards.
	//
	// Together, `max_xact_id` and `max_root_span_id` form a pagination cursor
	//
	// Since a paginated fetch query returns results in order from latest to earliest,
	// the cursor for the next page can be found as the row with the minimum (earliest)
	// value of the tuple `(_xact_id, root_span_id)`. See the documentation of `limit`
	// for an overview of paginating fetch queries.
	MaxRootSpanID param.Field[string] `json:"max_root_span_id"`
	// DEPRECATION NOTICE: The manually-constructed pagination cursor is deprecated in
	// favor of the explicit 'cursor' returned by object fetch requests. Please prefer
	// the 'cursor' argument going forwards.
	//
	// Together, `max_xact_id` and `max_root_span_id` form a pagination cursor
	//
	// Since a paginated fetch query returns results in order from latest to earliest,
	// the cursor for the next page can be found as the row with the minimum (earliest)
	// value of the tuple `(_xact_id, root_span_id)`. See the documentation of `limit`
	// for an overview of paginating fetch queries.
	MaxXactID param.Field[string] `json:"max_xact_id"`
	// Retrieve a snapshot of events from a past time
	//
	// The version id is essentially a filter on the latest event transaction id. You
	// can use the `max_xact_id` returned by a past fetch as the version to reproduce
	// that exact fetch.
	Version param.Field[string] `json:"version"`
}

func (ExperimentFetchPostParams) MarshalJSON

func (r ExperimentFetchPostParams) MarshalJSON() (data []byte, err error)

type ExperimentInsertParams

type ExperimentInsertParams struct {
	// A list of experiment events to insert
	Events param.Field[[]shared.InsertExperimentEventParam] `json:"events,required"`
}

func (ExperimentInsertParams) MarshalJSON

func (r ExperimentInsertParams) MarshalJSON() (data []byte, err error)

type ExperimentListParams

type ExperimentListParams struct {
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Name of the experiment to search for
	ExperimentName param.Field[string] `query:"experiment_name"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[ExperimentListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Project id
	ProjectID param.Field[string] `query:"project_id" format:"uuid"`
	// Name of the project to search for
	ProjectName param.Field[string] `query:"project_name"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
}

func (ExperimentListParams) URLQuery

func (r ExperimentListParams) URLQuery() (v url.Values)

URLQuery serializes ExperimentListParams's query parameters as `url.Values`.

type ExperimentListParamsIDsArray added in v0.2.0

type ExperimentListParamsIDsArray []string

func (ExperimentListParamsIDsArray) ImplementsExperimentListParamsIDsUnion added in v0.2.0

func (r ExperimentListParamsIDsArray) ImplementsExperimentListParamsIDsUnion()

type ExperimentListParamsIDsUnion added in v0.2.0

type ExperimentListParamsIDsUnion interface {
	ImplementsExperimentListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, ExperimentListParamsIDsArray.

type ExperimentNewParams

type ExperimentNewParams struct {
	// Unique identifier for the project that the experiment belongs under
	ProjectID param.Field[string] `json:"project_id,required" format:"uuid"`
	// Id of default base experiment to compare against when viewing this experiment
	BaseExpID param.Field[string] `json:"base_exp_id" format:"uuid"`
	// Identifier of the linked dataset, or null if the experiment is not linked to a
	// dataset
	DatasetID param.Field[string] `json:"dataset_id" format:"uuid"`
	// Version number of the linked dataset the experiment was run against. This can be
	// used to reproduce the experiment after the dataset has been modified.
	DatasetVersion param.Field[string] `json:"dataset_version"`
	// Textual description of the experiment
	Description param.Field[string] `json:"description"`
	// Normally, creating an experiment with the same name as an existing experiment
	// will return the existing one un-modified. But if `ensure_new` is true,
	// registration will generate a new experiment with a unique name in case of a
	// conflict.
	EnsureNew param.Field[bool] `json:"ensure_new"`
	// User-controlled metadata about the experiment
	Metadata param.Field[map[string]interface{}] `json:"metadata"`
	// Name of the experiment. Within a project, experiment names are unique
	Name param.Field[string] `json:"name"`
	// Whether or not the experiment is public. Public experiments can be viewed by
	// anybody inside or outside the organization
	Public param.Field[bool] `json:"public"`
	// Metadata about the state of the repo when the experiment was created
	RepoInfo param.Field[shared.RepoInfoParam] `json:"repo_info"`
}

func (ExperimentNewParams) MarshalJSON

func (r ExperimentNewParams) MarshalJSON() (data []byte, err error)

type ExperimentService

type ExperimentService struct {
	Options []option.RequestOption
}

ExperimentService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewExperimentService method instead.

func NewExperimentService

func NewExperimentService(opts ...option.RequestOption) (r *ExperimentService)

NewExperimentService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*ExperimentService) Delete

func (r *ExperimentService) Delete(ctx context.Context, experimentID string, opts ...option.RequestOption) (res *shared.Experiment, err error)

Delete an experiment object by its id

func (*ExperimentService) Feedback

func (r *ExperimentService) Feedback(ctx context.Context, experimentID string, body ExperimentFeedbackParams, opts ...option.RequestOption) (res *shared.FeedbackResponseSchema, err error)

Log feedback for a set of experiment events

func (*ExperimentService) Fetch

Fetch the events in an experiment. Equivalent to the POST form of the same path, but with the parameters in the URL query rather than in the request body. For more complex queries, use the `POST /btql` endpoint.

func (*ExperimentService) FetchPost

Fetch the events in an experiment. Equivalent to the GET form of the same path, but with the parameters in the request body rather than in the URL query. For more complex queries, use the `POST /btql` endpoint.

func (*ExperimentService) Get

func (r *ExperimentService) Get(ctx context.Context, experimentID string, opts ...option.RequestOption) (res *shared.Experiment, err error)

Get an experiment object by its id

func (*ExperimentService) Insert

func (r *ExperimentService) Insert(ctx context.Context, experimentID string, body ExperimentInsertParams, opts ...option.RequestOption) (res *shared.InsertEventsResponse, err error)

Insert a set of events into the experiment

func (*ExperimentService) List

List out all experiments. The experiments are sorted by creation date, with the most recently-created experiments coming first

func (*ExperimentService) ListAutoPaging

List out all experiments. The experiments are sorted by creation date, with the most recently-created experiments coming first

func (*ExperimentService) New

Create a new experiment. If there is an existing experiment in the project with the same name as the one specified in the request, will return the existing experiment unmodified

func (*ExperimentService) Summarize added in v0.2.0

Summarize experiment

func (*ExperimentService) Update

func (r *ExperimentService) Update(ctx context.Context, experimentID string, body ExperimentUpdateParams, opts ...option.RequestOption) (res *shared.Experiment, err error)

Partially update an experiment object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type ExperimentSummarizeParams added in v0.2.0

type ExperimentSummarizeParams struct {
	// The experiment to compare against, if summarizing scores and metrics. If
	// omitted, will fall back to the `base_exp_id` stored in the experiment metadata,
	// and then to the most recent experiment run in the same project. Must pass
	// `summarize_scores=true` for this id to be used
	ComparisonExperimentID param.Field[string] `query:"comparison_experiment_id" format:"uuid"`
	// Whether to summarize the scores and metrics. If false (or omitted), only the
	// metadata will be returned.
	SummarizeScores param.Field[bool] `query:"summarize_scores"`
}

func (ExperimentSummarizeParams) URLQuery added in v0.2.0

func (r ExperimentSummarizeParams) URLQuery() (v url.Values)

URLQuery serializes ExperimentSummarizeParams's query parameters as `url.Values`.

type ExperimentUpdateParams

type ExperimentUpdateParams struct {
	// Id of default base experiment to compare against when viewing this experiment
	BaseExpID param.Field[string] `json:"base_exp_id" format:"uuid"`
	// Identifier of the linked dataset, or null if the experiment is not linked to a
	// dataset
	DatasetID param.Field[string] `json:"dataset_id" format:"uuid"`
	// Version number of the linked dataset the experiment was run against. This can be
	// used to reproduce the experiment after the dataset has been modified.
	DatasetVersion param.Field[string] `json:"dataset_version"`
	// Textual description of the experiment
	Description param.Field[string] `json:"description"`
	// User-controlled metadata about the experiment
	Metadata param.Field[map[string]interface{}] `json:"metadata"`
	// Name of the experiment. Within a project, experiment names are unique
	Name param.Field[string] `json:"name"`
	// Whether or not the experiment is public. Public experiments can be viewed by
	// anybody inside or outside the organization
	Public param.Field[bool] `json:"public"`
	// Metadata about the state of the repo when the experiment was created
	RepoInfo param.Field[shared.RepoInfoParam] `json:"repo_info"`
}

func (ExperimentUpdateParams) MarshalJSON

func (r ExperimentUpdateParams) MarshalJSON() (data []byte, err error)

type FeedbackDatasetItemParam added in v0.2.0

type FeedbackDatasetItemParam = shared.FeedbackDatasetItemParam

This is an alias to an internal type.

type FeedbackDatasetItemSource added in v0.2.0

type FeedbackDatasetItemSource = shared.FeedbackDatasetItemSource

The source of the feedback. Must be one of "external" (default), "app", or "api"

This is an alias to an internal type.

type FeedbackExperimentItemParam added in v0.2.0

type FeedbackExperimentItemParam = shared.FeedbackExperimentItemParam

This is an alias to an internal type.

type FeedbackExperimentItemSource added in v0.2.0

type FeedbackExperimentItemSource = shared.FeedbackExperimentItemSource

The source of the feedback. Must be one of "external" (default), "app", or "api"

This is an alias to an internal type.

type FeedbackProjectLogsItemParam added in v0.2.0

type FeedbackProjectLogsItemParam = shared.FeedbackProjectLogsItemParam

This is an alias to an internal type.

type FeedbackProjectLogsItemSource added in v0.2.0

type FeedbackProjectLogsItemSource = shared.FeedbackProjectLogsItemSource

The source of the feedback. Must be one of "external" (default), "app", or "api"

This is an alias to an internal type.

type FeedbackResponseSchema added in v0.4.0

type FeedbackResponseSchema = shared.FeedbackResponseSchema

This is an alias to an internal type.

type FeedbackResponseSchemaStatus added in v0.4.0

type FeedbackResponseSchemaStatus = shared.FeedbackResponseSchemaStatus

This is an alias to an internal type.

type FetchDatasetEventsResponse added in v0.2.0

type FetchDatasetEventsResponse = shared.FetchDatasetEventsResponse

This is an alias to an internal type.

type FetchExperimentEventsResponse added in v0.2.0

type FetchExperimentEventsResponse = shared.FetchExperimentEventsResponse

This is an alias to an internal type.

type FetchProjectLogsEventsResponse added in v0.2.0

type FetchProjectLogsEventsResponse = shared.FetchProjectLogsEventsResponse

This is an alias to an internal type.

type Function added in v0.2.0

type Function = shared.Function

This is an alias to an internal type.

type FunctionFunctionData added in v0.2.0

type FunctionFunctionData = shared.FunctionFunctionData

This is an alias to an internal type.

type FunctionFunctionDataCode added in v0.2.0

type FunctionFunctionDataCode = shared.FunctionFunctionDataCode

This is an alias to an internal type.

type FunctionFunctionDataCodeData added in v0.2.0

type FunctionFunctionDataCodeData = shared.FunctionFunctionDataCodeData

This is an alias to an internal type.

type FunctionFunctionDataCodeDataBundle added in v0.4.0

type FunctionFunctionDataCodeDataBundle = shared.FunctionFunctionDataCodeDataBundle

This is an alias to an internal type.

type FunctionFunctionDataCodeDataBundleType added in v0.4.0

type FunctionFunctionDataCodeDataBundleType = shared.FunctionFunctionDataCodeDataBundleType

This is an alias to an internal type.

type FunctionFunctionDataCodeDataInline added in v0.4.0

type FunctionFunctionDataCodeDataInline = shared.FunctionFunctionDataCodeDataInline

This is an alias to an internal type.

type FunctionFunctionDataCodeDataInlineRuntimeContext added in v0.4.0

type FunctionFunctionDataCodeDataInlineRuntimeContext = shared.FunctionFunctionDataCodeDataInlineRuntimeContext

This is an alias to an internal type.

type FunctionFunctionDataCodeDataInlineRuntimeContextRuntime added in v0.4.0

type FunctionFunctionDataCodeDataInlineRuntimeContextRuntime = shared.FunctionFunctionDataCodeDataInlineRuntimeContextRuntime

This is an alias to an internal type.

type FunctionFunctionDataCodeDataInlineType added in v0.4.0

type FunctionFunctionDataCodeDataInlineType = shared.FunctionFunctionDataCodeDataInlineType

This is an alias to an internal type.

type FunctionFunctionDataCodeDataType added in v0.4.0

type FunctionFunctionDataCodeDataType = shared.FunctionFunctionDataCodeDataType

This is an alias to an internal type.

type FunctionFunctionDataCodeType added in v0.2.0

type FunctionFunctionDataCodeType = shared.FunctionFunctionDataCodeType

This is an alias to an internal type.

type FunctionFunctionDataGlobal added in v0.2.0

type FunctionFunctionDataGlobal = shared.FunctionFunctionDataGlobal

This is an alias to an internal type.

type FunctionFunctionDataGlobalType added in v0.2.0

type FunctionFunctionDataGlobalType = shared.FunctionFunctionDataGlobalType

This is an alias to an internal type.

type FunctionFunctionDataPrompt added in v0.2.0

type FunctionFunctionDataPrompt = shared.FunctionFunctionDataPrompt

This is an alias to an internal type.

type FunctionFunctionDataPromptType added in v0.2.0

type FunctionFunctionDataPromptType = shared.FunctionFunctionDataPromptType

This is an alias to an internal type.

type FunctionFunctionDataType added in v0.2.0

type FunctionFunctionDataType = shared.FunctionFunctionDataType

This is an alias to an internal type.

type FunctionFunctionSchema added in v0.4.0

type FunctionFunctionSchema = shared.FunctionFunctionSchema

JSON schema for the function's parameters and return type

This is an alias to an internal type.

type FunctionFunctionType added in v0.4.0

type FunctionFunctionType = shared.FunctionFunctionType

This is an alias to an internal type.

type FunctionInvokeParams added in v0.4.0

type FunctionInvokeParams struct {
	// The expected output of the function
	Expected param.Field[interface{}] `json:"expected"`
	// Argument to the function, which can be any JSON serializable value
	Input param.Field[interface{}] `json:"input"`
	// If the function is an LLM, additional messages to pass along to it
	Messages param.Field[[]FunctionInvokeParamsMessageUnion] `json:"messages"`
	// Any relevant metadata
	Metadata param.Field[map[string]interface{}] `json:"metadata"`
	// The mode format of the returned value (defaults to 'auto')
	Mode param.Field[FunctionInvokeParamsMode] `json:"mode"`
	// Options for tracing the function call
	Parent param.Field[FunctionInvokeParamsParentUnion] `json:"parent"`
	// Whether to stream the response. If true, results will be returned in the
	// Braintrust SSE format.
	Stream param.Field[bool] `json:"stream"`
	// The version of the function
	Version param.Field[string] `json:"version"`
}

func (FunctionInvokeParams) MarshalJSON added in v0.4.0

func (r FunctionInvokeParams) MarshalJSON() (data []byte, err error)

type FunctionInvokeParamsMessage added in v0.4.0

type FunctionInvokeParamsMessage struct {
	Role         param.Field[FunctionInvokeParamsMessagesRole] `json:"role,required"`
	Content      param.Field[interface{}]                      `json:"content"`
	FunctionCall param.Field[interface{}]                      `json:"function_call"`
	Name         param.Field[string]                           `json:"name"`
	ToolCallID   param.Field[string]                           `json:"tool_call_id"`
	ToolCalls    param.Field[interface{}]                      `json:"tool_calls"`
}

func (FunctionInvokeParamsMessage) MarshalJSON added in v0.4.0

func (r FunctionInvokeParamsMessage) MarshalJSON() (data []byte, err error)

type FunctionInvokeParamsMessagesAssistant added in v0.4.0

type FunctionInvokeParamsMessagesAssistant struct {
	Role         param.Field[FunctionInvokeParamsMessagesAssistantRole]         `json:"role,required"`
	Content      param.Field[string]                                            `json:"content"`
	FunctionCall param.Field[FunctionInvokeParamsMessagesAssistantFunctionCall] `json:"function_call"`
	Name         param.Field[string]                                            `json:"name"`
	ToolCalls    param.Field[[]shared.ChatCompletionMessageToolCallParam]       `json:"tool_calls"`
}

func (FunctionInvokeParamsMessagesAssistant) MarshalJSON added in v0.4.0

func (r FunctionInvokeParamsMessagesAssistant) MarshalJSON() (data []byte, err error)

type FunctionInvokeParamsMessagesAssistantFunctionCall added in v0.4.0

type FunctionInvokeParamsMessagesAssistantFunctionCall struct {
	Arguments param.Field[string] `json:"arguments,required"`
	Name      param.Field[string] `json:"name,required"`
}

func (FunctionInvokeParamsMessagesAssistantFunctionCall) MarshalJSON added in v0.4.0

func (r FunctionInvokeParamsMessagesAssistantFunctionCall) MarshalJSON() (data []byte, err error)

type FunctionInvokeParamsMessagesAssistantRole added in v0.4.0

type FunctionInvokeParamsMessagesAssistantRole string
const (
	FunctionInvokeParamsMessagesAssistantRoleAssistant FunctionInvokeParamsMessagesAssistantRole = "assistant"
)

func (FunctionInvokeParamsMessagesAssistantRole) IsKnown added in v0.4.0

type FunctionInvokeParamsMessagesFallback added in v0.4.0

type FunctionInvokeParamsMessagesFallback struct {
	Role    param.Field[FunctionInvokeParamsMessagesFallbackRole] `json:"role,required"`
	Content param.Field[string]                                   `json:"content"`
}

func (FunctionInvokeParamsMessagesFallback) MarshalJSON added in v0.4.0

func (r FunctionInvokeParamsMessagesFallback) MarshalJSON() (data []byte, err error)

type FunctionInvokeParamsMessagesFallbackRole added in v0.4.0

type FunctionInvokeParamsMessagesFallbackRole string
const (
	FunctionInvokeParamsMessagesFallbackRoleModel FunctionInvokeParamsMessagesFallbackRole = "model"
)

func (FunctionInvokeParamsMessagesFallbackRole) IsKnown added in v0.4.0

type FunctionInvokeParamsMessagesFunction added in v0.4.0

type FunctionInvokeParamsMessagesFunction struct {
	Name    param.Field[string]                                   `json:"name,required"`
	Role    param.Field[FunctionInvokeParamsMessagesFunctionRole] `json:"role,required"`
	Content param.Field[string]                                   `json:"content"`
}

func (FunctionInvokeParamsMessagesFunction) MarshalJSON added in v0.4.0

func (r FunctionInvokeParamsMessagesFunction) MarshalJSON() (data []byte, err error)

type FunctionInvokeParamsMessagesFunctionRole added in v0.4.0

type FunctionInvokeParamsMessagesFunctionRole string
const (
	FunctionInvokeParamsMessagesFunctionRoleFunction FunctionInvokeParamsMessagesFunctionRole = "function"
)

func (FunctionInvokeParamsMessagesFunctionRole) IsKnown added in v0.4.0

type FunctionInvokeParamsMessagesRole added in v0.4.0

type FunctionInvokeParamsMessagesRole string
const (
	FunctionInvokeParamsMessagesRoleSystem    FunctionInvokeParamsMessagesRole = "system"
	FunctionInvokeParamsMessagesRoleUser      FunctionInvokeParamsMessagesRole = "user"
	FunctionInvokeParamsMessagesRoleAssistant FunctionInvokeParamsMessagesRole = "assistant"
	FunctionInvokeParamsMessagesRoleTool      FunctionInvokeParamsMessagesRole = "tool"
	FunctionInvokeParamsMessagesRoleFunction  FunctionInvokeParamsMessagesRole = "function"
	FunctionInvokeParamsMessagesRoleModel     FunctionInvokeParamsMessagesRole = "model"
)

func (FunctionInvokeParamsMessagesRole) IsKnown added in v0.4.0

type FunctionInvokeParamsMessagesSystem added in v0.4.0

type FunctionInvokeParamsMessagesSystem struct {
	Role    param.Field[FunctionInvokeParamsMessagesSystemRole] `json:"role,required"`
	Content param.Field[string]                                 `json:"content"`
	Name    param.Field[string]                                 `json:"name"`
}

func (FunctionInvokeParamsMessagesSystem) MarshalJSON added in v0.4.0

func (r FunctionInvokeParamsMessagesSystem) MarshalJSON() (data []byte, err error)

type FunctionInvokeParamsMessagesSystemRole added in v0.4.0

type FunctionInvokeParamsMessagesSystemRole string
const (
	FunctionInvokeParamsMessagesSystemRoleSystem FunctionInvokeParamsMessagesSystemRole = "system"
)

func (FunctionInvokeParamsMessagesSystemRole) IsKnown added in v0.4.0

type FunctionInvokeParamsMessagesTool added in v0.4.0

type FunctionInvokeParamsMessagesTool struct {
	Role       param.Field[FunctionInvokeParamsMessagesToolRole] `json:"role,required"`
	Content    param.Field[string]                               `json:"content"`
	ToolCallID param.Field[string]                               `json:"tool_call_id"`
}

func (FunctionInvokeParamsMessagesTool) MarshalJSON added in v0.4.0

func (r FunctionInvokeParamsMessagesTool) MarshalJSON() (data []byte, err error)

type FunctionInvokeParamsMessagesToolRole added in v0.4.0

type FunctionInvokeParamsMessagesToolRole string
const (
	FunctionInvokeParamsMessagesToolRoleTool FunctionInvokeParamsMessagesToolRole = "tool"
)

func (FunctionInvokeParamsMessagesToolRole) IsKnown added in v0.4.0

type FunctionInvokeParamsMessagesUser added in v0.4.0

type FunctionInvokeParamsMessagesUser struct {
	Role    param.Field[FunctionInvokeParamsMessagesUserRole]         `json:"role,required"`
	Content param.Field[FunctionInvokeParamsMessagesUserContentUnion] `json:"content"`
	Name    param.Field[string]                                       `json:"name"`
}

func (FunctionInvokeParamsMessagesUser) MarshalJSON added in v0.4.0

func (r FunctionInvokeParamsMessagesUser) MarshalJSON() (data []byte, err error)

type FunctionInvokeParamsMessagesUserContentArray added in v0.4.0

type FunctionInvokeParamsMessagesUserContentArray []FunctionInvokeParamsMessagesUserContentArrayItemUnion

func (FunctionInvokeParamsMessagesUserContentArray) ImplementsFunctionInvokeParamsMessagesUserContentUnion added in v0.4.0

func (r FunctionInvokeParamsMessagesUserContentArray) ImplementsFunctionInvokeParamsMessagesUserContentUnion()

type FunctionInvokeParamsMessagesUserContentArrayItemUnion added in v0.6.0

type FunctionInvokeParamsMessagesUserContentArrayItemUnion interface {
	ImplementsFunctionInvokeParamsMessagesUserContentArrayItemUnion()
}

Satisfied by shared.ChatCompletionContentPartTextParam, shared.ChatCompletionContentPartImageParam.

type FunctionInvokeParamsMessagesUserContentUnion added in v0.4.0

type FunctionInvokeParamsMessagesUserContentUnion interface {
	ImplementsFunctionInvokeParamsMessagesUserContentUnion()
}

Satisfied by shared.UnionString, FunctionInvokeParamsMessagesUserContentArray.

type FunctionInvokeParamsMessagesUserRole added in v0.4.0

type FunctionInvokeParamsMessagesUserRole string
const (
	FunctionInvokeParamsMessagesUserRoleUser FunctionInvokeParamsMessagesUserRole = "user"
)

func (FunctionInvokeParamsMessagesUserRole) IsKnown added in v0.4.0

type FunctionInvokeParamsMode added in v0.4.0

type FunctionInvokeParamsMode string

The mode format of the returned value (defaults to 'auto')

const (
	FunctionInvokeParamsModeAuto     FunctionInvokeParamsMode = "auto"
	FunctionInvokeParamsModeParallel FunctionInvokeParamsMode = "parallel"
)

func (FunctionInvokeParamsMode) IsKnown added in v0.4.0

func (r FunctionInvokeParamsMode) IsKnown() bool

type FunctionInvokeParamsParentSpanParentStruct added in v0.4.0

type FunctionInvokeParamsParentSpanParentStruct struct {
	// The id of the container object you are logging to
	ObjectID   param.Field[string]                                               `json:"object_id,required"`
	ObjectType param.Field[FunctionInvokeParamsParentSpanParentStructObjectType] `json:"object_type,required"`
	// Include these properties in every span created under this parent
	PropagatedEvent param.Field[map[string]interface{}] `json:"propagated_event"`
	// Identifiers for the row to to log a subspan under
	RowIDs param.Field[FunctionInvokeParamsParentSpanParentStructRowIDs] `json:"row_ids"`
}

Span parent properties

func (FunctionInvokeParamsParentSpanParentStruct) ImplementsFunctionInvokeParamsParentUnion added in v0.4.0

func (r FunctionInvokeParamsParentSpanParentStruct) ImplementsFunctionInvokeParamsParentUnion()

func (FunctionInvokeParamsParentSpanParentStruct) MarshalJSON added in v0.4.0

func (r FunctionInvokeParamsParentSpanParentStruct) MarshalJSON() (data []byte, err error)

type FunctionInvokeParamsParentSpanParentStructObjectType added in v0.4.0

type FunctionInvokeParamsParentSpanParentStructObjectType string
const (
	FunctionInvokeParamsParentSpanParentStructObjectTypeProjectLogs    FunctionInvokeParamsParentSpanParentStructObjectType = "project_logs"
	FunctionInvokeParamsParentSpanParentStructObjectTypeExperiment     FunctionInvokeParamsParentSpanParentStructObjectType = "experiment"
	FunctionInvokeParamsParentSpanParentStructObjectTypePlaygroundLogs FunctionInvokeParamsParentSpanParentStructObjectType = "playground_logs"
)

func (FunctionInvokeParamsParentSpanParentStructObjectType) IsKnown added in v0.4.0

type FunctionInvokeParamsParentSpanParentStructRowIDs added in v0.4.0

type FunctionInvokeParamsParentSpanParentStructRowIDs struct {
	// The id of the row
	ID param.Field[string] `json:"id,required"`
	// The root_span_id of the row
	RootSpanID param.Field[string] `json:"root_span_id,required"`
	// The span_id of the row
	SpanID param.Field[string] `json:"span_id,required"`
}

Identifiers for the row to to log a subspan under

func (FunctionInvokeParamsParentSpanParentStructRowIDs) MarshalJSON added in v0.4.0

func (r FunctionInvokeParamsParentSpanParentStructRowIDs) MarshalJSON() (data []byte, err error)

type FunctionInvokeParamsParentUnion added in v0.4.0

type FunctionInvokeParamsParentUnion interface {
	ImplementsFunctionInvokeParamsParentUnion()
}

Options for tracing the function call

Satisfied by FunctionInvokeParamsParentSpanParentStruct, shared.UnionString.

type FunctionInvokeResponse added in v0.4.0

type FunctionInvokeResponse = interface{}

type FunctionListParams added in v0.2.0

type FunctionListParams struct {
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Name of the function to search for
	FunctionName param.Field[string] `query:"function_name"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[FunctionListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Project id
	ProjectID param.Field[string] `query:"project_id" format:"uuid"`
	// Name of the project to search for
	ProjectName param.Field[string] `query:"project_name"`
	// Retrieve prompt with a specific slug
	Slug param.Field[string] `query:"slug"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
	// Retrieve prompt at a specific version.
	//
	// The version id can either be a transaction id (e.g. '1000192656880881099') or a
	// version identifier (e.g. '81cd05ee665fdfb3').
	Version param.Field[string] `query:"version"`
}

func (FunctionListParams) URLQuery added in v0.2.0

func (r FunctionListParams) URLQuery() (v url.Values)

URLQuery serializes FunctionListParams's query parameters as `url.Values`.

type FunctionListParamsIDsArray added in v0.2.0

type FunctionListParamsIDsArray []string

func (FunctionListParamsIDsArray) ImplementsFunctionListParamsIDsUnion added in v0.2.0

func (r FunctionListParamsIDsArray) ImplementsFunctionListParamsIDsUnion()

type FunctionListParamsIDsUnion added in v0.2.0

type FunctionListParamsIDsUnion interface {
	ImplementsFunctionListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, FunctionListParamsIDsArray.

type FunctionLogID added in v0.2.0

type FunctionLogID = shared.FunctionLogID

A literal 'p' which identifies the object as a project prompt

This is an alias to an internal type.

type FunctionNewParams added in v0.2.0

type FunctionNewParams struct {
	FunctionData param.Field[FunctionNewParamsFunctionDataUnion] `json:"function_data,required"`
	// Name of the prompt
	Name param.Field[string] `json:"name,required"`
	// Unique identifier for the project that the prompt belongs under
	ProjectID param.Field[string] `json:"project_id,required" format:"uuid"`
	// Unique identifier for the prompt
	Slug param.Field[string] `json:"slug,required"`
	// Textual description of the prompt
	Description param.Field[string] `json:"description"`
	// JSON schema for the function's parameters and return type
	FunctionSchema param.Field[FunctionNewParamsFunctionSchema] `json:"function_schema"`
	FunctionType   param.Field[FunctionNewParamsFunctionType]   `json:"function_type"`
	Origin         param.Field[FunctionNewParamsOrigin]         `json:"origin"`
	// The prompt, model, and its parameters
	PromptData param.Field[shared.PromptDataParam] `json:"prompt_data"`
	// A list of tags for the prompt
	Tags param.Field[[]string] `json:"tags"`
}

func (FunctionNewParams) MarshalJSON added in v0.2.0

func (r FunctionNewParams) MarshalJSON() (data []byte, err error)

type FunctionNewParamsFunctionData added in v0.3.0

type FunctionNewParamsFunctionData struct {
	Type param.Field[FunctionNewParamsFunctionDataType] `json:"type,required"`
	Data param.Field[interface{}]                       `json:"data"`
	Name param.Field[string]                            `json:"name"`
}

func (FunctionNewParamsFunctionData) MarshalJSON added in v0.3.0

func (r FunctionNewParamsFunctionData) MarshalJSON() (data []byte, err error)

type FunctionNewParamsFunctionDataCode added in v0.3.0

type FunctionNewParamsFunctionDataCode struct {
	Data param.Field[FunctionNewParamsFunctionDataCodeDataUnion] `json:"data,required"`
	Type param.Field[FunctionNewParamsFunctionDataCodeType]      `json:"type,required"`
}

func (FunctionNewParamsFunctionDataCode) MarshalJSON added in v0.3.0

func (r FunctionNewParamsFunctionDataCode) MarshalJSON() (data []byte, err error)

type FunctionNewParamsFunctionDataCodeDataBundle added in v0.4.0

type FunctionNewParamsFunctionDataCodeDataBundle struct {
	Type param.Field[FunctionNewParamsFunctionDataCodeDataBundleType] `json:"type,required"`
	shared.CodeBundleParam
}

func (FunctionNewParamsFunctionDataCodeDataBundle) MarshalJSON added in v0.4.0

func (r FunctionNewParamsFunctionDataCodeDataBundle) MarshalJSON() (data []byte, err error)

type FunctionNewParamsFunctionDataCodeDataBundleType added in v0.4.0

type FunctionNewParamsFunctionDataCodeDataBundleType string
const (
	FunctionNewParamsFunctionDataCodeDataBundleTypeBundle FunctionNewParamsFunctionDataCodeDataBundleType = "bundle"
)

func (FunctionNewParamsFunctionDataCodeDataBundleType) IsKnown added in v0.4.0

type FunctionNewParamsFunctionDataCodeDataInline added in v0.4.0

type FunctionNewParamsFunctionDataCodeDataInline struct {
	Code           param.Field[string]                                                    `json:"code,required"`
	RuntimeContext param.Field[FunctionNewParamsFunctionDataCodeDataInlineRuntimeContext] `json:"runtime_context,required"`
	Type           param.Field[FunctionNewParamsFunctionDataCodeDataInlineType]           `json:"type,required"`
}

func (FunctionNewParamsFunctionDataCodeDataInline) MarshalJSON added in v0.4.0

func (r FunctionNewParamsFunctionDataCodeDataInline) MarshalJSON() (data []byte, err error)

type FunctionNewParamsFunctionDataCodeDataInlineRuntimeContext added in v0.4.0

type FunctionNewParamsFunctionDataCodeDataInlineRuntimeContext struct {
	Runtime param.Field[FunctionNewParamsFunctionDataCodeDataInlineRuntimeContextRuntime] `json:"runtime,required"`
	Version param.Field[string]                                                           `json:"version,required"`
}

func (FunctionNewParamsFunctionDataCodeDataInlineRuntimeContext) MarshalJSON added in v0.4.0

type FunctionNewParamsFunctionDataCodeDataInlineRuntimeContextRuntime added in v0.4.0

type FunctionNewParamsFunctionDataCodeDataInlineRuntimeContextRuntime string
const (
	FunctionNewParamsFunctionDataCodeDataInlineRuntimeContextRuntimeNode   FunctionNewParamsFunctionDataCodeDataInlineRuntimeContextRuntime = "node"
	FunctionNewParamsFunctionDataCodeDataInlineRuntimeContextRuntimePython FunctionNewParamsFunctionDataCodeDataInlineRuntimeContextRuntime = "python"
)

func (FunctionNewParamsFunctionDataCodeDataInlineRuntimeContextRuntime) IsKnown added in v0.4.0

type FunctionNewParamsFunctionDataCodeDataInlineType added in v0.4.0

type FunctionNewParamsFunctionDataCodeDataInlineType string
const (
	FunctionNewParamsFunctionDataCodeDataInlineTypeInline FunctionNewParamsFunctionDataCodeDataInlineType = "inline"
)

func (FunctionNewParamsFunctionDataCodeDataInlineType) IsKnown added in v0.4.0

type FunctionNewParamsFunctionDataCodeDataUnion added in v0.4.0

type FunctionNewParamsFunctionDataCodeDataUnion interface {
	// contains filtered or unexported methods
}

Satisfied by FunctionNewParamsFunctionDataCodeDataBundle, FunctionNewParamsFunctionDataCodeDataInline.

type FunctionNewParamsFunctionDataCodeType added in v0.3.0

type FunctionNewParamsFunctionDataCodeType string
const (
	FunctionNewParamsFunctionDataCodeTypeCode FunctionNewParamsFunctionDataCodeType = "code"
)

func (FunctionNewParamsFunctionDataCodeType) IsKnown added in v0.3.0

type FunctionNewParamsFunctionDataGlobal added in v0.3.0

type FunctionNewParamsFunctionDataGlobal struct {
	Name param.Field[string]                                  `json:"name,required"`
	Type param.Field[FunctionNewParamsFunctionDataGlobalType] `json:"type,required"`
}

func (FunctionNewParamsFunctionDataGlobal) MarshalJSON added in v0.3.0

func (r FunctionNewParamsFunctionDataGlobal) MarshalJSON() (data []byte, err error)

type FunctionNewParamsFunctionDataGlobalType added in v0.3.0

type FunctionNewParamsFunctionDataGlobalType string
const (
	FunctionNewParamsFunctionDataGlobalTypeGlobal FunctionNewParamsFunctionDataGlobalType = "global"
)

func (FunctionNewParamsFunctionDataGlobalType) IsKnown added in v0.3.0

type FunctionNewParamsFunctionDataPrompt added in v0.3.0

type FunctionNewParamsFunctionDataPrompt struct {
	Type param.Field[FunctionNewParamsFunctionDataPromptType] `json:"type,required"`
}

func (FunctionNewParamsFunctionDataPrompt) MarshalJSON added in v0.3.0

func (r FunctionNewParamsFunctionDataPrompt) MarshalJSON() (data []byte, err error)

type FunctionNewParamsFunctionDataPromptType added in v0.3.0

type FunctionNewParamsFunctionDataPromptType string
const (
	FunctionNewParamsFunctionDataPromptTypePrompt FunctionNewParamsFunctionDataPromptType = "prompt"
)

func (FunctionNewParamsFunctionDataPromptType) IsKnown added in v0.3.0

type FunctionNewParamsFunctionDataType added in v0.3.0

type FunctionNewParamsFunctionDataType string
const (
	FunctionNewParamsFunctionDataTypePrompt FunctionNewParamsFunctionDataType = "prompt"
	FunctionNewParamsFunctionDataTypeCode   FunctionNewParamsFunctionDataType = "code"
	FunctionNewParamsFunctionDataTypeGlobal FunctionNewParamsFunctionDataType = "global"
)

func (FunctionNewParamsFunctionDataType) IsKnown added in v0.3.0

type FunctionNewParamsFunctionDataUnion added in v0.3.0

type FunctionNewParamsFunctionDataUnion interface {
	// contains filtered or unexported methods
}

Satisfied by FunctionNewParamsFunctionDataPrompt, FunctionNewParamsFunctionDataCode, FunctionNewParamsFunctionDataGlobal, FunctionNewParamsFunctionData.

type FunctionNewParamsFunctionSchema added in v0.4.0

type FunctionNewParamsFunctionSchema struct {
	Parameters param.Field[interface{}] `json:"parameters"`
	Returns    param.Field[interface{}] `json:"returns"`
}

JSON schema for the function's parameters and return type

func (FunctionNewParamsFunctionSchema) MarshalJSON added in v0.4.0

func (r FunctionNewParamsFunctionSchema) MarshalJSON() (data []byte, err error)

type FunctionNewParamsFunctionType added in v0.4.0

type FunctionNewParamsFunctionType string
const (
	FunctionNewParamsFunctionTypeLlm    FunctionNewParamsFunctionType = "llm"
	FunctionNewParamsFunctionTypeScorer FunctionNewParamsFunctionType = "scorer"
	FunctionNewParamsFunctionTypeTask   FunctionNewParamsFunctionType = "task"
	FunctionNewParamsFunctionTypeTool   FunctionNewParamsFunctionType = "tool"
)

func (FunctionNewParamsFunctionType) IsKnown added in v0.4.0

func (r FunctionNewParamsFunctionType) IsKnown() bool

type FunctionNewParamsOrigin added in v0.4.0

type FunctionNewParamsOrigin struct {
	// Id of the object the function is originating from
	ObjectID param.Field[string] `json:"object_id,required" format:"uuid"`
	// The object type that the ACL applies to
	ObjectType param.Field[shared.ACLObjectType] `json:"object_type,required"`
	// The function exists for internal purposes and should not be displayed in the
	// list of functions.
	Internal param.Field[bool] `json:"internal"`
}

func (FunctionNewParamsOrigin) MarshalJSON added in v0.4.0

func (r FunctionNewParamsOrigin) MarshalJSON() (data []byte, err error)

type FunctionOrigin added in v0.4.0

type FunctionOrigin = shared.FunctionOrigin

This is an alias to an internal type.

type FunctionReplaceParams added in v0.2.0

type FunctionReplaceParams struct {
	FunctionData param.Field[FunctionReplaceParamsFunctionDataUnion] `json:"function_data,required"`
	// Name of the prompt
	Name param.Field[string] `json:"name,required"`
	// Unique identifier for the project that the prompt belongs under
	ProjectID param.Field[string] `json:"project_id,required" format:"uuid"`
	// Unique identifier for the prompt
	Slug param.Field[string] `json:"slug,required"`
	// Textual description of the prompt
	Description param.Field[string] `json:"description"`
	// JSON schema for the function's parameters and return type
	FunctionSchema param.Field[FunctionReplaceParamsFunctionSchema] `json:"function_schema"`
	FunctionType   param.Field[FunctionReplaceParamsFunctionType]   `json:"function_type"`
	Origin         param.Field[FunctionReplaceParamsOrigin]         `json:"origin"`
	// The prompt, model, and its parameters
	PromptData param.Field[shared.PromptDataParam] `json:"prompt_data"`
	// A list of tags for the prompt
	Tags param.Field[[]string] `json:"tags"`
}

func (FunctionReplaceParams) MarshalJSON added in v0.2.0

func (r FunctionReplaceParams) MarshalJSON() (data []byte, err error)

type FunctionReplaceParamsFunctionData added in v0.3.0

type FunctionReplaceParamsFunctionData struct {
	Type param.Field[FunctionReplaceParamsFunctionDataType] `json:"type,required"`
	Data param.Field[interface{}]                           `json:"data"`
	Name param.Field[string]                                `json:"name"`
}

func (FunctionReplaceParamsFunctionData) MarshalJSON added in v0.3.0

func (r FunctionReplaceParamsFunctionData) MarshalJSON() (data []byte, err error)

type FunctionReplaceParamsFunctionDataCode added in v0.3.0

type FunctionReplaceParamsFunctionDataCode struct {
	Data param.Field[FunctionReplaceParamsFunctionDataCodeDataUnion] `json:"data,required"`
	Type param.Field[FunctionReplaceParamsFunctionDataCodeType]      `json:"type,required"`
}

func (FunctionReplaceParamsFunctionDataCode) MarshalJSON added in v0.3.0

func (r FunctionReplaceParamsFunctionDataCode) MarshalJSON() (data []byte, err error)

type FunctionReplaceParamsFunctionDataCodeDataBundle added in v0.4.0

type FunctionReplaceParamsFunctionDataCodeDataBundle struct {
	Type param.Field[FunctionReplaceParamsFunctionDataCodeDataBundleType] `json:"type,required"`
	shared.CodeBundleParam
}

func (FunctionReplaceParamsFunctionDataCodeDataBundle) MarshalJSON added in v0.4.0

func (r FunctionReplaceParamsFunctionDataCodeDataBundle) MarshalJSON() (data []byte, err error)

type FunctionReplaceParamsFunctionDataCodeDataBundleType added in v0.4.0

type FunctionReplaceParamsFunctionDataCodeDataBundleType string
const (
	FunctionReplaceParamsFunctionDataCodeDataBundleTypeBundle FunctionReplaceParamsFunctionDataCodeDataBundleType = "bundle"
)

func (FunctionReplaceParamsFunctionDataCodeDataBundleType) IsKnown added in v0.4.0

type FunctionReplaceParamsFunctionDataCodeDataInline added in v0.4.0

type FunctionReplaceParamsFunctionDataCodeDataInline struct {
	Code           param.Field[string]                                                        `json:"code,required"`
	RuntimeContext param.Field[FunctionReplaceParamsFunctionDataCodeDataInlineRuntimeContext] `json:"runtime_context,required"`
	Type           param.Field[FunctionReplaceParamsFunctionDataCodeDataInlineType]           `json:"type,required"`
}

func (FunctionReplaceParamsFunctionDataCodeDataInline) MarshalJSON added in v0.4.0

func (r FunctionReplaceParamsFunctionDataCodeDataInline) MarshalJSON() (data []byte, err error)

type FunctionReplaceParamsFunctionDataCodeDataInlineRuntimeContext added in v0.4.0

type FunctionReplaceParamsFunctionDataCodeDataInlineRuntimeContext struct {
	Runtime param.Field[FunctionReplaceParamsFunctionDataCodeDataInlineRuntimeContextRuntime] `json:"runtime,required"`
	Version param.Field[string]                                                               `json:"version,required"`
}

func (FunctionReplaceParamsFunctionDataCodeDataInlineRuntimeContext) MarshalJSON added in v0.4.0

type FunctionReplaceParamsFunctionDataCodeDataInlineRuntimeContextRuntime added in v0.4.0

type FunctionReplaceParamsFunctionDataCodeDataInlineRuntimeContextRuntime string
const (
	FunctionReplaceParamsFunctionDataCodeDataInlineRuntimeContextRuntimeNode   FunctionReplaceParamsFunctionDataCodeDataInlineRuntimeContextRuntime = "node"
	FunctionReplaceParamsFunctionDataCodeDataInlineRuntimeContextRuntimePython FunctionReplaceParamsFunctionDataCodeDataInlineRuntimeContextRuntime = "python"
)

func (FunctionReplaceParamsFunctionDataCodeDataInlineRuntimeContextRuntime) IsKnown added in v0.4.0

type FunctionReplaceParamsFunctionDataCodeDataInlineType added in v0.4.0

type FunctionReplaceParamsFunctionDataCodeDataInlineType string
const (
	FunctionReplaceParamsFunctionDataCodeDataInlineTypeInline FunctionReplaceParamsFunctionDataCodeDataInlineType = "inline"
)

func (FunctionReplaceParamsFunctionDataCodeDataInlineType) IsKnown added in v0.4.0

type FunctionReplaceParamsFunctionDataCodeDataUnion added in v0.4.0

type FunctionReplaceParamsFunctionDataCodeDataUnion interface {
	// contains filtered or unexported methods
}

Satisfied by FunctionReplaceParamsFunctionDataCodeDataBundle, FunctionReplaceParamsFunctionDataCodeDataInline.

type FunctionReplaceParamsFunctionDataCodeType added in v0.3.0

type FunctionReplaceParamsFunctionDataCodeType string
const (
	FunctionReplaceParamsFunctionDataCodeTypeCode FunctionReplaceParamsFunctionDataCodeType = "code"
)

func (FunctionReplaceParamsFunctionDataCodeType) IsKnown added in v0.3.0

type FunctionReplaceParamsFunctionDataGlobal added in v0.3.0

type FunctionReplaceParamsFunctionDataGlobal struct {
	Name param.Field[string]                                      `json:"name,required"`
	Type param.Field[FunctionReplaceParamsFunctionDataGlobalType] `json:"type,required"`
}

func (FunctionReplaceParamsFunctionDataGlobal) MarshalJSON added in v0.3.0

func (r FunctionReplaceParamsFunctionDataGlobal) MarshalJSON() (data []byte, err error)

type FunctionReplaceParamsFunctionDataGlobalType added in v0.3.0

type FunctionReplaceParamsFunctionDataGlobalType string
const (
	FunctionReplaceParamsFunctionDataGlobalTypeGlobal FunctionReplaceParamsFunctionDataGlobalType = "global"
)

func (FunctionReplaceParamsFunctionDataGlobalType) IsKnown added in v0.3.0

type FunctionReplaceParamsFunctionDataPrompt added in v0.3.0

type FunctionReplaceParamsFunctionDataPrompt struct {
	Type param.Field[FunctionReplaceParamsFunctionDataPromptType] `json:"type,required"`
}

func (FunctionReplaceParamsFunctionDataPrompt) MarshalJSON added in v0.3.0

func (r FunctionReplaceParamsFunctionDataPrompt) MarshalJSON() (data []byte, err error)

type FunctionReplaceParamsFunctionDataPromptType added in v0.3.0

type FunctionReplaceParamsFunctionDataPromptType string
const (
	FunctionReplaceParamsFunctionDataPromptTypePrompt FunctionReplaceParamsFunctionDataPromptType = "prompt"
)

func (FunctionReplaceParamsFunctionDataPromptType) IsKnown added in v0.3.0

type FunctionReplaceParamsFunctionDataType added in v0.3.0

type FunctionReplaceParamsFunctionDataType string
const (
	FunctionReplaceParamsFunctionDataTypePrompt FunctionReplaceParamsFunctionDataType = "prompt"
	FunctionReplaceParamsFunctionDataTypeCode   FunctionReplaceParamsFunctionDataType = "code"
	FunctionReplaceParamsFunctionDataTypeGlobal FunctionReplaceParamsFunctionDataType = "global"
)

func (FunctionReplaceParamsFunctionDataType) IsKnown added in v0.3.0

type FunctionReplaceParamsFunctionDataUnion added in v0.3.0

type FunctionReplaceParamsFunctionDataUnion interface {
	// contains filtered or unexported methods
}

Satisfied by FunctionReplaceParamsFunctionDataPrompt, FunctionReplaceParamsFunctionDataCode, FunctionReplaceParamsFunctionDataGlobal, FunctionReplaceParamsFunctionData.

type FunctionReplaceParamsFunctionSchema added in v0.4.0

type FunctionReplaceParamsFunctionSchema struct {
	Parameters param.Field[interface{}] `json:"parameters"`
	Returns    param.Field[interface{}] `json:"returns"`
}

JSON schema for the function's parameters and return type

func (FunctionReplaceParamsFunctionSchema) MarshalJSON added in v0.4.0

func (r FunctionReplaceParamsFunctionSchema) MarshalJSON() (data []byte, err error)

type FunctionReplaceParamsFunctionType added in v0.4.0

type FunctionReplaceParamsFunctionType string
const (
	FunctionReplaceParamsFunctionTypeLlm    FunctionReplaceParamsFunctionType = "llm"
	FunctionReplaceParamsFunctionTypeScorer FunctionReplaceParamsFunctionType = "scorer"
	FunctionReplaceParamsFunctionTypeTask   FunctionReplaceParamsFunctionType = "task"
	FunctionReplaceParamsFunctionTypeTool   FunctionReplaceParamsFunctionType = "tool"
)

func (FunctionReplaceParamsFunctionType) IsKnown added in v0.4.0

type FunctionReplaceParamsOrigin added in v0.4.0

type FunctionReplaceParamsOrigin struct {
	// Id of the object the function is originating from
	ObjectID param.Field[string] `json:"object_id,required" format:"uuid"`
	// The object type that the ACL applies to
	ObjectType param.Field[shared.ACLObjectType] `json:"object_type,required"`
	// The function exists for internal purposes and should not be displayed in the
	// list of functions.
	Internal param.Field[bool] `json:"internal"`
}

func (FunctionReplaceParamsOrigin) MarshalJSON added in v0.4.0

func (r FunctionReplaceParamsOrigin) MarshalJSON() (data []byte, err error)

type FunctionService added in v0.2.0

type FunctionService struct {
	Options []option.RequestOption
}

FunctionService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewFunctionService method instead.

func NewFunctionService added in v0.2.0

func NewFunctionService(opts ...option.RequestOption) (r *FunctionService)

NewFunctionService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*FunctionService) Delete added in v0.2.0

func (r *FunctionService) Delete(ctx context.Context, functionID string, opts ...option.RequestOption) (res *shared.Function, err error)

Delete a function object by its id

func (*FunctionService) Get added in v0.2.0

func (r *FunctionService) Get(ctx context.Context, functionID string, opts ...option.RequestOption) (res *shared.Function, err error)

Get a function object by its id

func (*FunctionService) Invoke added in v0.4.0

func (r *FunctionService) Invoke(ctx context.Context, functionID string, body FunctionInvokeParams, opts ...option.RequestOption) (res *FunctionInvokeResponse, err error)

Invoke a function.

func (*FunctionService) List added in v0.2.0

List out all functions. The functions are sorted by creation date, with the most recently-created functions coming first

func (*FunctionService) ListAutoPaging added in v0.2.0

List out all functions. The functions are sorted by creation date, with the most recently-created functions coming first

func (*FunctionService) New added in v0.2.0

func (r *FunctionService) New(ctx context.Context, body FunctionNewParams, opts ...option.RequestOption) (res *shared.Function, err error)

Create a new function. If there is an existing function in the project with the same slug as the one specified in the request, will return the existing function unmodified

func (*FunctionService) Replace added in v0.2.0

func (r *FunctionService) Replace(ctx context.Context, body FunctionReplaceParams, opts ...option.RequestOption) (res *shared.Function, err error)

Create or replace function. If there is an existing function in the project with the same slug as the one specified in the request, will replace the existing function with the provided fields

func (*FunctionService) Update added in v0.2.0

func (r *FunctionService) Update(ctx context.Context, functionID string, body FunctionUpdateParams, opts ...option.RequestOption) (res *shared.Function, err error)

Partially update a function object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type FunctionUpdateParams added in v0.2.0

type FunctionUpdateParams struct {
	// Textual description of the prompt
	Description  param.Field[string]                                `json:"description"`
	FunctionData param.Field[FunctionUpdateParamsFunctionDataUnion] `json:"function_data"`
	// Name of the prompt
	Name param.Field[string] `json:"name"`
	// The prompt, model, and its parameters
	PromptData param.Field[shared.PromptDataParam] `json:"prompt_data"`
	// A list of tags for the prompt
	Tags param.Field[[]string] `json:"tags"`
}

func (FunctionUpdateParams) MarshalJSON added in v0.2.0

func (r FunctionUpdateParams) MarshalJSON() (data []byte, err error)

type FunctionUpdateParamsFunctionData added in v0.3.0

type FunctionUpdateParamsFunctionData struct {
	Type param.Field[FunctionUpdateParamsFunctionDataType] `json:"type,required"`
	Data param.Field[interface{}]                          `json:"data"`
	Name param.Field[string]                               `json:"name"`
}

func (FunctionUpdateParamsFunctionData) MarshalJSON added in v0.3.0

func (r FunctionUpdateParamsFunctionData) MarshalJSON() (data []byte, err error)

type FunctionUpdateParamsFunctionDataCode added in v0.3.0

type FunctionUpdateParamsFunctionDataCode struct {
	Data param.Field[FunctionUpdateParamsFunctionDataCodeDataUnion] `json:"data,required"`
	Type param.Field[FunctionUpdateParamsFunctionDataCodeType]      `json:"type,required"`
}

func (FunctionUpdateParamsFunctionDataCode) MarshalJSON added in v0.3.0

func (r FunctionUpdateParamsFunctionDataCode) MarshalJSON() (data []byte, err error)

type FunctionUpdateParamsFunctionDataCodeDataBundle added in v0.4.0

type FunctionUpdateParamsFunctionDataCodeDataBundle struct {
	Type param.Field[FunctionUpdateParamsFunctionDataCodeDataBundleType] `json:"type,required"`
	shared.CodeBundleParam
}

func (FunctionUpdateParamsFunctionDataCodeDataBundle) MarshalJSON added in v0.4.0

func (r FunctionUpdateParamsFunctionDataCodeDataBundle) MarshalJSON() (data []byte, err error)

type FunctionUpdateParamsFunctionDataCodeDataBundleType added in v0.4.0

type FunctionUpdateParamsFunctionDataCodeDataBundleType string
const (
	FunctionUpdateParamsFunctionDataCodeDataBundleTypeBundle FunctionUpdateParamsFunctionDataCodeDataBundleType = "bundle"
)

func (FunctionUpdateParamsFunctionDataCodeDataBundleType) IsKnown added in v0.4.0

type FunctionUpdateParamsFunctionDataCodeDataInline added in v0.4.0

type FunctionUpdateParamsFunctionDataCodeDataInline struct {
	Code           param.Field[string]                                                       `json:"code,required"`
	RuntimeContext param.Field[FunctionUpdateParamsFunctionDataCodeDataInlineRuntimeContext] `json:"runtime_context,required"`
	Type           param.Field[FunctionUpdateParamsFunctionDataCodeDataInlineType]           `json:"type,required"`
}

func (FunctionUpdateParamsFunctionDataCodeDataInline) MarshalJSON added in v0.4.0

func (r FunctionUpdateParamsFunctionDataCodeDataInline) MarshalJSON() (data []byte, err error)

type FunctionUpdateParamsFunctionDataCodeDataInlineRuntimeContext added in v0.4.0

type FunctionUpdateParamsFunctionDataCodeDataInlineRuntimeContext struct {
	Runtime param.Field[FunctionUpdateParamsFunctionDataCodeDataInlineRuntimeContextRuntime] `json:"runtime,required"`
	Version param.Field[string]                                                              `json:"version,required"`
}

func (FunctionUpdateParamsFunctionDataCodeDataInlineRuntimeContext) MarshalJSON added in v0.4.0

type FunctionUpdateParamsFunctionDataCodeDataInlineRuntimeContextRuntime added in v0.4.0

type FunctionUpdateParamsFunctionDataCodeDataInlineRuntimeContextRuntime string
const (
	FunctionUpdateParamsFunctionDataCodeDataInlineRuntimeContextRuntimeNode   FunctionUpdateParamsFunctionDataCodeDataInlineRuntimeContextRuntime = "node"
	FunctionUpdateParamsFunctionDataCodeDataInlineRuntimeContextRuntimePython FunctionUpdateParamsFunctionDataCodeDataInlineRuntimeContextRuntime = "python"
)

func (FunctionUpdateParamsFunctionDataCodeDataInlineRuntimeContextRuntime) IsKnown added in v0.4.0

type FunctionUpdateParamsFunctionDataCodeDataInlineType added in v0.4.0

type FunctionUpdateParamsFunctionDataCodeDataInlineType string
const (
	FunctionUpdateParamsFunctionDataCodeDataInlineTypeInline FunctionUpdateParamsFunctionDataCodeDataInlineType = "inline"
)

func (FunctionUpdateParamsFunctionDataCodeDataInlineType) IsKnown added in v0.4.0

type FunctionUpdateParamsFunctionDataCodeDataUnion added in v0.4.0

type FunctionUpdateParamsFunctionDataCodeDataUnion interface {
	// contains filtered or unexported methods
}

Satisfied by FunctionUpdateParamsFunctionDataCodeDataBundle, FunctionUpdateParamsFunctionDataCodeDataInline.

type FunctionUpdateParamsFunctionDataCodeType added in v0.3.0

type FunctionUpdateParamsFunctionDataCodeType string
const (
	FunctionUpdateParamsFunctionDataCodeTypeCode FunctionUpdateParamsFunctionDataCodeType = "code"
)

func (FunctionUpdateParamsFunctionDataCodeType) IsKnown added in v0.3.0

type FunctionUpdateParamsFunctionDataGlobal added in v0.3.0

type FunctionUpdateParamsFunctionDataGlobal struct {
	Name param.Field[string]                                     `json:"name,required"`
	Type param.Field[FunctionUpdateParamsFunctionDataGlobalType] `json:"type,required"`
}

func (FunctionUpdateParamsFunctionDataGlobal) MarshalJSON added in v0.3.0

func (r FunctionUpdateParamsFunctionDataGlobal) MarshalJSON() (data []byte, err error)

type FunctionUpdateParamsFunctionDataGlobalType added in v0.3.0

type FunctionUpdateParamsFunctionDataGlobalType string
const (
	FunctionUpdateParamsFunctionDataGlobalTypeGlobal FunctionUpdateParamsFunctionDataGlobalType = "global"
)

func (FunctionUpdateParamsFunctionDataGlobalType) IsKnown added in v0.3.0

type FunctionUpdateParamsFunctionDataPrompt added in v0.3.0

type FunctionUpdateParamsFunctionDataPrompt struct {
	Type param.Field[FunctionUpdateParamsFunctionDataPromptType] `json:"type,required"`
}

func (FunctionUpdateParamsFunctionDataPrompt) MarshalJSON added in v0.3.0

func (r FunctionUpdateParamsFunctionDataPrompt) MarshalJSON() (data []byte, err error)

type FunctionUpdateParamsFunctionDataPromptType added in v0.3.0

type FunctionUpdateParamsFunctionDataPromptType string
const (
	FunctionUpdateParamsFunctionDataPromptTypePrompt FunctionUpdateParamsFunctionDataPromptType = "prompt"
)

func (FunctionUpdateParamsFunctionDataPromptType) IsKnown added in v0.3.0

type FunctionUpdateParamsFunctionDataType added in v0.3.0

type FunctionUpdateParamsFunctionDataType string
const (
	FunctionUpdateParamsFunctionDataTypePrompt FunctionUpdateParamsFunctionDataType = "prompt"
	FunctionUpdateParamsFunctionDataTypeCode   FunctionUpdateParamsFunctionDataType = "code"
	FunctionUpdateParamsFunctionDataTypeGlobal FunctionUpdateParamsFunctionDataType = "global"
)

func (FunctionUpdateParamsFunctionDataType) IsKnown added in v0.3.0

type FunctionUpdateParamsFunctionDataUnion added in v0.3.0

type FunctionUpdateParamsFunctionDataUnion interface {
	// contains filtered or unexported methods
}

Satisfied by FunctionUpdateParamsFunctionDataPrompt, FunctionUpdateParamsFunctionDataCode, FunctionUpdateParamsFunctionDataGlobal, FunctionUpdateParamsFunctionData.

type Group added in v0.2.0

type Group = shared.Group

A group is a collection of users which can be assigned an ACL

Groups can consist of individual users, as well as a set of groups they inherit from

This is an alias to an internal type.

type GroupListParams added in v0.2.0

type GroupListParams struct {
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Name of the group to search for
	GroupName param.Field[string] `query:"group_name"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[GroupListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
}

func (GroupListParams) URLQuery added in v0.2.0

func (r GroupListParams) URLQuery() (v url.Values)

URLQuery serializes GroupListParams's query parameters as `url.Values`.

type GroupListParamsIDsArray added in v0.2.0

type GroupListParamsIDsArray []string

func (GroupListParamsIDsArray) ImplementsGroupListParamsIDsUnion added in v0.2.0

func (r GroupListParamsIDsArray) ImplementsGroupListParamsIDsUnion()

type GroupListParamsIDsUnion added in v0.2.0

type GroupListParamsIDsUnion interface {
	ImplementsGroupListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, GroupListParamsIDsArray.

type GroupNewParams added in v0.2.0

type GroupNewParams struct {
	// Name of the group
	Name param.Field[string] `json:"name,required"`
	// Textual description of the group
	Description param.Field[string] `json:"description"`
	// Ids of the groups this group inherits from
	//
	// An inheriting group has all the users contained in its member groups, as well as
	// all of their inherited users
	MemberGroups param.Field[[]string] `json:"member_groups" format:"uuid"`
	// Ids of users which belong to this group
	MemberUsers param.Field[[]string] `json:"member_users" format:"uuid"`
	// For nearly all users, this parameter should be unnecessary. But in the rare case
	// that your API key belongs to multiple organizations, you may specify the name of
	// the organization the group belongs in.
	OrgName param.Field[string] `json:"org_name"`
}

func (GroupNewParams) MarshalJSON added in v0.2.0

func (r GroupNewParams) MarshalJSON() (data []byte, err error)

type GroupReplaceParams added in v0.2.0

type GroupReplaceParams struct {
	// Name of the group
	Name param.Field[string] `json:"name,required"`
	// Textual description of the group
	Description param.Field[string] `json:"description"`
	// Ids of the groups this group inherits from
	//
	// An inheriting group has all the users contained in its member groups, as well as
	// all of their inherited users
	MemberGroups param.Field[[]string] `json:"member_groups" format:"uuid"`
	// Ids of users which belong to this group
	MemberUsers param.Field[[]string] `json:"member_users" format:"uuid"`
	// For nearly all users, this parameter should be unnecessary. But in the rare case
	// that your API key belongs to multiple organizations, you may specify the name of
	// the organization the group belongs in.
	OrgName param.Field[string] `json:"org_name"`
}

func (GroupReplaceParams) MarshalJSON added in v0.2.0

func (r GroupReplaceParams) MarshalJSON() (data []byte, err error)

type GroupService added in v0.2.0

type GroupService struct {
	Options []option.RequestOption
}

GroupService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewGroupService method instead.

func NewGroupService added in v0.2.0

func NewGroupService(opts ...option.RequestOption) (r *GroupService)

NewGroupService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*GroupService) Delete added in v0.2.0

func (r *GroupService) Delete(ctx context.Context, groupID string, opts ...option.RequestOption) (res *shared.Group, err error)

Delete a group object by its id

func (*GroupService) Get added in v0.2.0

func (r *GroupService) Get(ctx context.Context, groupID string, opts ...option.RequestOption) (res *shared.Group, err error)

Get a group object by its id

func (*GroupService) List added in v0.2.0

List out all groups. The groups are sorted by creation date, with the most recently-created groups coming first

func (*GroupService) ListAutoPaging added in v0.2.0

List out all groups. The groups are sorted by creation date, with the most recently-created groups coming first

func (*GroupService) New added in v0.2.0

func (r *GroupService) New(ctx context.Context, body GroupNewParams, opts ...option.RequestOption) (res *shared.Group, err error)

Create a new group. If there is an existing group with the same name as the one specified in the request, will return the existing group unmodified

func (*GroupService) Replace added in v0.2.0

func (r *GroupService) Replace(ctx context.Context, body GroupReplaceParams, opts ...option.RequestOption) (res *shared.Group, err error)

Create or replace group. If there is an existing group with the same name as the one specified in the request, will replace the existing group with the provided fields

func (*GroupService) Update added in v0.2.0

func (r *GroupService) Update(ctx context.Context, groupID string, body GroupUpdateParams, opts ...option.RequestOption) (res *shared.Group, err error)

Partially update a group object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type GroupUpdateParams added in v0.2.0

type GroupUpdateParams struct {
	// A list of group IDs to add to the group's inheriting-from set
	AddMemberGroups param.Field[[]string] `json:"add_member_groups" format:"uuid"`
	// A list of user IDs to add to the group
	AddMemberUsers param.Field[[]string] `json:"add_member_users" format:"uuid"`
	// Textual description of the group
	Description param.Field[string] `json:"description"`
	// Name of the group
	Name param.Field[string] `json:"name"`
	// A list of group IDs to remove from the group's inheriting-from set
	RemoveMemberGroups param.Field[[]string] `json:"remove_member_groups" format:"uuid"`
	// A list of user IDs to remove from the group
	RemoveMemberUsers param.Field[[]string] `json:"remove_member_users" format:"uuid"`
}

func (GroupUpdateParams) MarshalJSON added in v0.2.0

func (r GroupUpdateParams) MarshalJSON() (data []byte, err error)

type InsertDatasetEventMetadataParam added in v0.6.0

type InsertDatasetEventMetadataParam = shared.InsertDatasetEventMetadataParam

A dictionary with additional data about the test example, model outputs, or just about anything else that's relevant, that you can use to help find and analyze examples later. For example, you could log the `prompt`, example's `id`, or anything else that would be useful to slice/dice later. The values in `metadata` can be any JSON-serializable type, but its keys must be strings

This is an alias to an internal type.

type InsertDatasetEventParam added in v0.5.0

type InsertDatasetEventParam = shared.InsertDatasetEventParam

A dataset event

This is an alias to an internal type.

type InsertEventsResponse added in v0.2.0

type InsertEventsResponse = shared.InsertEventsResponse

This is an alias to an internal type.

type InsertExperimentEventContextParam added in v0.5.0

type InsertExperimentEventContextParam = shared.InsertExperimentEventContextParam

Context is additional information about the code that produced the experiment event. It is essentially the textual counterpart to `metrics`. Use the `caller_*` attributes to track the location in code which produced the experiment event

This is an alias to an internal type.

type InsertExperimentEventMetadataParam added in v0.6.0

type InsertExperimentEventMetadataParam = shared.InsertExperimentEventMetadataParam

A dictionary with additional data about the test example, model outputs, or just about anything else that's relevant, that you can use to help find and analyze examples later. For example, you could log the `prompt`, example's `id`, or anything else that would be useful to slice/dice later. The values in `metadata` can be any JSON-serializable type, but its keys must be strings

This is an alias to an internal type.

type InsertExperimentEventMetricsParam added in v0.5.0

type InsertExperimentEventMetricsParam = shared.InsertExperimentEventMetricsParam

Metrics are numerical measurements tracking the execution of the code that produced the experiment event. Use "start" and "end" to track the time span over which the experiment event was produced

This is an alias to an internal type.

type InsertExperimentEventParam added in v0.5.0

type InsertExperimentEventParam = shared.InsertExperimentEventParam

An experiment event

This is an alias to an internal type.

type InsertProjectLogsEventContextParam added in v0.5.0

type InsertProjectLogsEventContextParam = shared.InsertProjectLogsEventContextParam

Context is additional information about the code that produced the project logs event. It is essentially the textual counterpart to `metrics`. Use the `caller_*` attributes to track the location in code which produced the project logs event

This is an alias to an internal type.

type InsertProjectLogsEventMetadataParam added in v0.6.0

type InsertProjectLogsEventMetadataParam = shared.InsertProjectLogsEventMetadataParam

A dictionary with additional data about the test example, model outputs, or just about anything else that's relevant, that you can use to help find and analyze examples later. For example, you could log the `prompt`, example's `id`, or anything else that would be useful to slice/dice later. The values in `metadata` can be any JSON-serializable type, but its keys must be strings

This is an alias to an internal type.

type InsertProjectLogsEventMetricsParam added in v0.5.0

type InsertProjectLogsEventMetricsParam = shared.InsertProjectLogsEventMetricsParam

Metrics are numerical measurements tracking the execution of the code that produced the project logs event. Use "start" and "end" to track the time span over which the project logs event was produced

This is an alias to an internal type.

type InsertProjectLogsEventParam added in v0.5.0

type InsertProjectLogsEventParam = shared.InsertProjectLogsEventParam

A project logs event

This is an alias to an internal type.

type MetricSummary added in v0.2.0

type MetricSummary = shared.MetricSummary

Summary of a metric's performance

This is an alias to an internal type.

type ObjectReference added in v0.6.0

type ObjectReference = shared.ObjectReference

Indicates the event was copied from another object.

This is an alias to an internal type.

type ObjectReferenceObjectType added in v0.6.0

type ObjectReferenceObjectType = shared.ObjectReferenceObjectType

Type of the object the event is originating from.

This is an alias to an internal type.

type ObjectReferenceParam added in v0.6.0

type ObjectReferenceParam = shared.ObjectReferenceParam

Indicates the event was copied from another object.

This is an alias to an internal type.

type OnlineScoreConfig added in v0.4.0

type OnlineScoreConfig = shared.OnlineScoreConfig

This is an alias to an internal type.

type OnlineScoreConfigParam added in v0.4.0

type OnlineScoreConfigParam = shared.OnlineScoreConfigParam

This is an alias to an internal type.

type OnlineScoreConfigScorer added in v0.4.0

type OnlineScoreConfigScorer = shared.OnlineScoreConfigScorer

This is an alias to an internal type.

type OnlineScoreConfigScorersFunction added in v0.4.0

type OnlineScoreConfigScorersFunction = shared.OnlineScoreConfigScorersFunction

This is an alias to an internal type.

type OnlineScoreConfigScorersFunctionParam added in v0.4.0

type OnlineScoreConfigScorersFunctionParam = shared.OnlineScoreConfigScorersFunctionParam

This is an alias to an internal type.

type OnlineScoreConfigScorersFunctionType added in v0.4.0

type OnlineScoreConfigScorersFunctionType = shared.OnlineScoreConfigScorersFunctionType

This is an alias to an internal type.

type OnlineScoreConfigScorersGlobal added in v0.4.0

type OnlineScoreConfigScorersGlobal = shared.OnlineScoreConfigScorersGlobal

This is an alias to an internal type.

type OnlineScoreConfigScorersGlobalParam added in v0.4.0

type OnlineScoreConfigScorersGlobalParam = shared.OnlineScoreConfigScorersGlobalParam

This is an alias to an internal type.

type OnlineScoreConfigScorersGlobalType added in v0.4.0

type OnlineScoreConfigScorersGlobalType = shared.OnlineScoreConfigScorersGlobalType

This is an alias to an internal type.

type OnlineScoreConfigScorersType added in v0.4.0

type OnlineScoreConfigScorersType = shared.OnlineScoreConfigScorersType

This is an alias to an internal type.

type OnlineScoreConfigScorersUnionParam added in v0.4.0

type OnlineScoreConfigScorersUnionParam = shared.OnlineScoreConfigScorersUnionParam

This is an alias to an internal type.

type Organization added in v0.2.0

type Organization = shared.Organization

This is an alias to an internal type.

type OrganizationListParams added in v0.2.0

type OrganizationListParams struct {
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[OrganizationListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
}

func (OrganizationListParams) URLQuery added in v0.2.0

func (r OrganizationListParams) URLQuery() (v url.Values)

URLQuery serializes OrganizationListParams's query parameters as `url.Values`.

type OrganizationListParamsIDsArray added in v0.2.0

type OrganizationListParamsIDsArray []string

func (OrganizationListParamsIDsArray) ImplementsOrganizationListParamsIDsUnion added in v0.2.0

func (r OrganizationListParamsIDsArray) ImplementsOrganizationListParamsIDsUnion()

type OrganizationListParamsIDsUnion added in v0.2.0

type OrganizationListParamsIDsUnion interface {
	ImplementsOrganizationListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, OrganizationListParamsIDsArray.

type OrganizationMemberService added in v0.2.0

type OrganizationMemberService struct {
	Options []option.RequestOption
}

OrganizationMemberService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewOrganizationMemberService method instead.

func NewOrganizationMemberService added in v0.2.0

func NewOrganizationMemberService(opts ...option.RequestOption) (r *OrganizationMemberService)

NewOrganizationMemberService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*OrganizationMemberService) Update added in v0.2.0

Modify organization membership

type OrganizationMemberUpdateParams added in v0.2.0

type OrganizationMemberUpdateParams struct {
	// Users to invite to the organization
	InviteUsers param.Field[OrganizationMemberUpdateParamsInviteUsers] `json:"invite_users"`
	// For nearly all users, this parameter should be unnecessary. But in the rare case
	// that your API key belongs to multiple organizations, or in case you want to
	// explicitly assert the organization you are modifying, you may specify the id of
	// the organization.
	OrgID param.Field[string] `json:"org_id"`
	// For nearly all users, this parameter should be unnecessary. But in the rare case
	// that your API key belongs to multiple organizations, or in case you want to
	// explicitly assert the organization you are modifying, you may specify the name
	// of the organization.
	OrgName param.Field[string] `json:"org_name"`
	// Users to remove from the organization
	RemoveUsers param.Field[OrganizationMemberUpdateParamsRemoveUsers] `json:"remove_users"`
}

func (OrganizationMemberUpdateParams) MarshalJSON added in v0.2.0

func (r OrganizationMemberUpdateParams) MarshalJSON() (data []byte, err error)

type OrganizationMemberUpdateParamsInviteUsers added in v0.3.0

type OrganizationMemberUpdateParamsInviteUsers struct {
	// Emails of users to invite
	Emails param.Field[[]string] `json:"emails"`
	// Singular form of group_ids
	GroupID param.Field[string] `json:"group_id" format:"uuid"`
	// Optional list of group ids to add newly-invited users to.
	GroupIDs param.Field[[]string] `json:"group_ids" format:"uuid"`
	// Singular form of group_names
	GroupName param.Field[string] `json:"group_name"`
	// Optional list of group names to add newly-invited users to.
	GroupNames param.Field[[]string] `json:"group_names"`
	// Ids of existing users to invite
	IDs param.Field[[]string] `json:"ids" format:"uuid"`
	// If true, send invite emails to the users who wore actually added
	SendInviteEmails param.Field[bool] `json:"send_invite_emails"`
}

Users to invite to the organization

func (OrganizationMemberUpdateParamsInviteUsers) MarshalJSON added in v0.3.0

func (r OrganizationMemberUpdateParamsInviteUsers) MarshalJSON() (data []byte, err error)

type OrganizationMemberUpdateParamsRemoveUsers added in v0.3.0

type OrganizationMemberUpdateParamsRemoveUsers struct {
	// Emails of users to remove
	Emails param.Field[[]string] `json:"emails"`
	// Ids of users to remove
	IDs param.Field[[]string] `json:"ids" format:"uuid"`
}

Users to remove from the organization

func (OrganizationMemberUpdateParamsRemoveUsers) MarshalJSON added in v0.3.0

func (r OrganizationMemberUpdateParamsRemoveUsers) MarshalJSON() (data []byte, err error)

type OrganizationService added in v0.2.0

type OrganizationService struct {
	Options []option.RequestOption
	Members *OrganizationMemberService
}

OrganizationService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewOrganizationService method instead.

func NewOrganizationService added in v0.2.0

func NewOrganizationService(opts ...option.RequestOption) (r *OrganizationService)

NewOrganizationService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*OrganizationService) Delete added in v0.2.0

func (r *OrganizationService) Delete(ctx context.Context, organizationID string, opts ...option.RequestOption) (res *shared.Organization, err error)

Delete an organization object by its id

func (*OrganizationService) Get added in v0.2.0

func (r *OrganizationService) Get(ctx context.Context, organizationID string, opts ...option.RequestOption) (res *shared.Organization, err error)

Get an organization object by its id

func (*OrganizationService) List added in v0.2.0

List out all organizations. The organizations are sorted by creation date, with the most recently-created organizations coming first

func (*OrganizationService) ListAutoPaging added in v0.2.0

List out all organizations. The organizations are sorted by creation date, with the most recently-created organizations coming first

func (*OrganizationService) Update added in v0.2.0

func (r *OrganizationService) Update(ctx context.Context, organizationID string, body OrganizationUpdateParams, opts ...option.RequestOption) (res *shared.Organization, err error)

Partially update an organization object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type OrganizationUpdateParams added in v0.2.0

type OrganizationUpdateParams struct {
	APIURL         param.Field[string] `json:"api_url"`
	IsUniversalAPI param.Field[bool]   `json:"is_universal_api"`
	// Name of the organization
	Name        param.Field[string] `json:"name"`
	ProxyURL    param.Field[string] `json:"proxy_url"`
	RealtimeURL param.Field[string] `json:"realtime_url"`
}

func (OrganizationUpdateParams) MarshalJSON added in v0.2.0

func (r OrganizationUpdateParams) MarshalJSON() (data []byte, err error)

type PatchOrganizationMembersOutput added in v0.4.0

type PatchOrganizationMembersOutput = shared.PatchOrganizationMembersOutput

This is an alias to an internal type.

type PatchOrganizationMembersOutputStatus added in v0.4.0

type PatchOrganizationMembersOutputStatus = shared.PatchOrganizationMembersOutputStatus

This is an alias to an internal type.

type Permission added in v0.7.0

type Permission = shared.Permission

Each permission permits a certain type of operation on an object in the system

Permissions can be assigned to to objects on an individual basis, or grouped into roles

This is an alias to an internal type.

type Project

type Project = shared.Project

This is an alias to an internal type.

type ProjectListParams

type ProjectListParams struct {
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[ProjectListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Name of the project to search for
	ProjectName param.Field[string] `query:"project_name"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
}

func (ProjectListParams) URLQuery

func (r ProjectListParams) URLQuery() (v url.Values)

URLQuery serializes ProjectListParams's query parameters as `url.Values`.

type ProjectListParamsIDsArray added in v0.2.0

type ProjectListParamsIDsArray []string

func (ProjectListParamsIDsArray) ImplementsProjectListParamsIDsUnion added in v0.2.0

func (r ProjectListParamsIDsArray) ImplementsProjectListParamsIDsUnion()

type ProjectListParamsIDsUnion added in v0.2.0

type ProjectListParamsIDsUnion interface {
	ImplementsProjectListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, ProjectListParamsIDsArray.

type ProjectLogFeedbackParams

type ProjectLogFeedbackParams struct {
	// A list of project logs feedback items
	Feedback param.Field[[]shared.FeedbackProjectLogsItemParam] `json:"feedback,required"`
}

func (ProjectLogFeedbackParams) MarshalJSON

func (r ProjectLogFeedbackParams) MarshalJSON() (data []byte, err error)

type ProjectLogFetchParams

type ProjectLogFetchParams struct {
	// limit the number of traces fetched
	//
	// Fetch queries may be paginated if the total result size is expected to be large
	// (e.g. project_logs which accumulate over a long time). Note that fetch queries
	// only support pagination in descending time order (from latest to earliest
	// `_xact_id`. Furthermore, later pages may return rows which showed up in earlier
	// pages, except with an earlier `_xact_id`. This happens because pagination occurs
	// over the whole version history of the event log. You will most likely want to
	// exclude any such duplicate, outdated rows (by `id`) from your combined result
	// set.
	//
	// The `limit` parameter controls the number of full traces to return. So you may
	// end up with more individual rows than the specified limit if you are fetching
	// events containing traces.
	Limit param.Field[int64] `query:"limit"`
	// DEPRECATION NOTICE: The manually-constructed pagination cursor is deprecated in
	// favor of the explicit 'cursor' returned by object fetch requests. Please prefer
	// the 'cursor' argument going forwards.
	//
	// Together, `max_xact_id` and `max_root_span_id` form a pagination cursor
	//
	// Since a paginated fetch query returns results in order from latest to earliest,
	// the cursor for the next page can be found as the row with the minimum (earliest)
	// value of the tuple `(_xact_id, root_span_id)`. See the documentation of `limit`
	// for an overview of paginating fetch queries.
	MaxRootSpanID param.Field[string] `query:"max_root_span_id"`
	// DEPRECATION NOTICE: The manually-constructed pagination cursor is deprecated in
	// favor of the explicit 'cursor' returned by object fetch requests. Please prefer
	// the 'cursor' argument going forwards.
	//
	// Together, `max_xact_id` and `max_root_span_id` form a pagination cursor
	//
	// Since a paginated fetch query returns results in order from latest to earliest,
	// the cursor for the next page can be found as the row with the minimum (earliest)
	// value of the tuple `(_xact_id, root_span_id)`. See the documentation of `limit`
	// for an overview of paginating fetch queries.
	MaxXactID param.Field[string] `query:"max_xact_id"`
	// Retrieve a snapshot of events from a past time
	//
	// The version id is essentially a filter on the latest event transaction id. You
	// can use the `max_xact_id` returned by a past fetch as the version to reproduce
	// that exact fetch.
	Version param.Field[string] `query:"version"`
}

func (ProjectLogFetchParams) URLQuery

func (r ProjectLogFetchParams) URLQuery() (v url.Values)

URLQuery serializes ProjectLogFetchParams's query parameters as `url.Values`.

type ProjectLogFetchPostParams

type ProjectLogFetchPostParams struct {
	// An opaque string to be used as a cursor for the next page of results, in order
	// from latest to earliest.
	//
	// The string can be obtained directly from the `cursor` property of the previous
	// fetch query
	Cursor param.Field[string] `json:"cursor"`
	// limit the number of traces fetched
	//
	// Fetch queries may be paginated if the total result size is expected to be large
	// (e.g. project_logs which accumulate over a long time). Note that fetch queries
	// only support pagination in descending time order (from latest to earliest
	// `_xact_id`. Furthermore, later pages may return rows which showed up in earlier
	// pages, except with an earlier `_xact_id`. This happens because pagination occurs
	// over the whole version history of the event log. You will most likely want to
	// exclude any such duplicate, outdated rows (by `id`) from your combined result
	// set.
	//
	// The `limit` parameter controls the number of full traces to return. So you may
	// end up with more individual rows than the specified limit if you are fetching
	// events containing traces.
	Limit param.Field[int64] `json:"limit"`
	// DEPRECATION NOTICE: The manually-constructed pagination cursor is deprecated in
	// favor of the explicit 'cursor' returned by object fetch requests. Please prefer
	// the 'cursor' argument going forwards.
	//
	// Together, `max_xact_id` and `max_root_span_id` form a pagination cursor
	//
	// Since a paginated fetch query returns results in order from latest to earliest,
	// the cursor for the next page can be found as the row with the minimum (earliest)
	// value of the tuple `(_xact_id, root_span_id)`. See the documentation of `limit`
	// for an overview of paginating fetch queries.
	MaxRootSpanID param.Field[string] `json:"max_root_span_id"`
	// DEPRECATION NOTICE: The manually-constructed pagination cursor is deprecated in
	// favor of the explicit 'cursor' returned by object fetch requests. Please prefer
	// the 'cursor' argument going forwards.
	//
	// Together, `max_xact_id` and `max_root_span_id` form a pagination cursor
	//
	// Since a paginated fetch query returns results in order from latest to earliest,
	// the cursor for the next page can be found as the row with the minimum (earliest)
	// value of the tuple `(_xact_id, root_span_id)`. See the documentation of `limit`
	// for an overview of paginating fetch queries.
	MaxXactID param.Field[string] `json:"max_xact_id"`
	// Retrieve a snapshot of events from a past time
	//
	// The version id is essentially a filter on the latest event transaction id. You
	// can use the `max_xact_id` returned by a past fetch as the version to reproduce
	// that exact fetch.
	Version param.Field[string] `json:"version"`
}

func (ProjectLogFetchPostParams) MarshalJSON

func (r ProjectLogFetchPostParams) MarshalJSON() (data []byte, err error)

type ProjectLogInsertParams

type ProjectLogInsertParams struct {
	// A list of project logs events to insert
	Events param.Field[[]shared.InsertProjectLogsEventParam] `json:"events,required"`
}

func (ProjectLogInsertParams) MarshalJSON

func (r ProjectLogInsertParams) MarshalJSON() (data []byte, err error)

type ProjectLogService

type ProjectLogService struct {
	Options []option.RequestOption
}

ProjectLogService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewProjectLogService method instead.

func NewProjectLogService

func NewProjectLogService(opts ...option.RequestOption) (r *ProjectLogService)

NewProjectLogService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*ProjectLogService) Feedback

Log feedback for a set of project logs events

func (*ProjectLogService) Fetch

Fetch the events in a project logs. Equivalent to the POST form of the same path, but with the parameters in the URL query rather than in the request body. For more complex queries, use the `POST /btql` endpoint.

func (*ProjectLogService) FetchPost

Fetch the events in a project logs. Equivalent to the GET form of the same path, but with the parameters in the request body rather than in the URL query. For more complex queries, use the `POST /btql` endpoint.

func (*ProjectLogService) Insert

Insert a set of events into the project logs

type ProjectLogsEvent added in v0.2.0

type ProjectLogsEvent = shared.ProjectLogsEvent

This is an alias to an internal type.

type ProjectLogsEventContext added in v0.2.0

type ProjectLogsEventContext = shared.ProjectLogsEventContext

Context is additional information about the code that produced the project logs event. It is essentially the textual counterpart to `metrics`. Use the `caller_*` attributes to track the location in code which produced the project logs event

This is an alias to an internal type.

type ProjectLogsEventLogID added in v0.2.0

type ProjectLogsEventLogID = shared.ProjectLogsEventLogID

A literal 'g' which identifies the log as a project log

This is an alias to an internal type.

type ProjectLogsEventMetadata added in v0.6.0

type ProjectLogsEventMetadata = shared.ProjectLogsEventMetadata

A dictionary with additional data about the test example, model outputs, or just about anything else that's relevant, that you can use to help find and analyze examples later. For example, you could log the `prompt`, example's `id`, or anything else that would be useful to slice/dice later. The values in `metadata` can be any JSON-serializable type, but its keys must be strings

This is an alias to an internal type.

type ProjectLogsEventMetrics added in v0.2.0

type ProjectLogsEventMetrics = shared.ProjectLogsEventMetrics

Metrics are numerical measurements tracking the execution of the code that produced the project logs event. Use "start" and "end" to track the time span over which the project logs event was produced

This is an alias to an internal type.

type ProjectNewParams

type ProjectNewParams struct {
	// Name of the project
	Name param.Field[string] `json:"name,required"`
	// For nearly all users, this parameter should be unnecessary. But in the rare case
	// that your API key belongs to multiple organizations, you may specify the name of
	// the organization the project belongs in.
	OrgName param.Field[string] `json:"org_name"`
}

func (ProjectNewParams) MarshalJSON

func (r ProjectNewParams) MarshalJSON() (data []byte, err error)

type ProjectScore added in v0.2.0

type ProjectScore = shared.ProjectScore

A project score is a user-configured score, which can be manually-labeled through the UI

This is an alias to an internal type.

type ProjectScoreCategoriesCategorical added in v0.2.0

type ProjectScoreCategoriesCategorical = shared.ProjectScoreCategoriesCategorical

For categorical-type project scores, the list of all categories

This is an alias to an internal type.

type ProjectScoreCategoriesMinimum added in v0.2.0

type ProjectScoreCategoriesMinimum = shared.ProjectScoreCategoriesMinimum

For minimum-type project scores, the list of included scores

This is an alias to an internal type.

type ProjectScoreCategoriesUnion added in v0.2.0

type ProjectScoreCategoriesUnion = shared.ProjectScoreCategoriesUnion

For categorical-type project scores, the list of all categories

This is an alias to an internal type.

type ProjectScoreCategory added in v0.2.0

type ProjectScoreCategory = shared.ProjectScoreCategory

For categorical-type project scores, defines a single category

This is an alias to an internal type.

type ProjectScoreCategoryParam added in v0.2.0

type ProjectScoreCategoryParam = shared.ProjectScoreCategoryParam

For categorical-type project scores, defines a single category

This is an alias to an internal type.

type ProjectScoreConfig added in v0.2.0

type ProjectScoreConfig = shared.ProjectScoreConfig

This is an alias to an internal type.

type ProjectScoreConfigParam added in v0.4.0

type ProjectScoreConfigParam = shared.ProjectScoreConfigParam

This is an alias to an internal type.

type ProjectScoreListParams added in v0.2.0

type ProjectScoreListParams struct {
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[ProjectScoreListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Project id
	ProjectID param.Field[string] `query:"project_id" format:"uuid"`
	// Name of the project to search for
	ProjectName param.Field[string] `query:"project_name"`
	// Name of the project_score to search for
	ProjectScoreName param.Field[string] `query:"project_score_name"`
	// The type of the configured score
	ScoreType param.Field[ProjectScoreListParamsScoreTypeUnion] `query:"score_type"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
}

func (ProjectScoreListParams) URLQuery added in v0.2.0

func (r ProjectScoreListParams) URLQuery() (v url.Values)

URLQuery serializes ProjectScoreListParams's query parameters as `url.Values`.

type ProjectScoreListParamsIDsArray added in v0.2.0

type ProjectScoreListParamsIDsArray []string

func (ProjectScoreListParamsIDsArray) ImplementsProjectScoreListParamsIDsUnion added in v0.2.0

func (r ProjectScoreListParamsIDsArray) ImplementsProjectScoreListParamsIDsUnion()

type ProjectScoreListParamsIDsUnion added in v0.2.0

type ProjectScoreListParamsIDsUnion interface {
	ImplementsProjectScoreListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, ProjectScoreListParamsIDsArray.

type ProjectScoreListParamsScoreTypeArray added in v0.4.0

type ProjectScoreListParamsScoreTypeArray []shared.ProjectScoreType

func (ProjectScoreListParamsScoreTypeArray) ImplementsProjectScoreListParamsScoreTypeUnion added in v0.4.0

func (r ProjectScoreListParamsScoreTypeArray) ImplementsProjectScoreListParamsScoreTypeUnion()

type ProjectScoreListParamsScoreTypeUnion added in v0.4.0

type ProjectScoreListParamsScoreTypeUnion interface {
	ImplementsProjectScoreListParamsScoreTypeUnion()
}

The type of the configured score

Satisfied by shared.ProjectScoreType, ProjectScoreListParamsScoreTypeArray.

type ProjectScoreNewParams added in v0.2.0

type ProjectScoreNewParams struct {
	// Name of the project score
	Name param.Field[string] `json:"name,required"`
	// Unique identifier for the project that the project score belongs under
	ProjectID param.Field[string] `json:"project_id,required" format:"uuid"`
	// The type of the configured score
	ScoreType param.Field[shared.ProjectScoreType] `json:"score_type,required"`
	// For categorical-type project scores, the list of all categories
	Categories param.Field[ProjectScoreNewParamsCategoriesUnion] `json:"categories"`
	Config     param.Field[shared.ProjectScoreConfigParam]       `json:"config"`
	// Textual description of the project score
	Description param.Field[string] `json:"description"`
}

func (ProjectScoreNewParams) MarshalJSON added in v0.2.0

func (r ProjectScoreNewParams) MarshalJSON() (data []byte, err error)

type ProjectScoreNewParamsCategoriesCategorical added in v0.3.0

type ProjectScoreNewParamsCategoriesCategorical []shared.ProjectScoreCategoryParam

type ProjectScoreNewParamsCategoriesMinimum added in v0.3.0

type ProjectScoreNewParamsCategoriesMinimum []string

type ProjectScoreNewParamsCategoriesUnion added in v0.3.0

type ProjectScoreNewParamsCategoriesUnion interface {
	// contains filtered or unexported methods
}

For categorical-type project scores, the list of all categories

Satisfied by ProjectScoreNewParamsCategoriesCategorical, ProjectScoreNewParamsCategoriesMinimum.

type ProjectScoreReplaceParams added in v0.2.0

type ProjectScoreReplaceParams struct {
	// Name of the project score
	Name param.Field[string] `json:"name,required"`
	// Unique identifier for the project that the project score belongs under
	ProjectID param.Field[string] `json:"project_id,required" format:"uuid"`
	// The type of the configured score
	ScoreType param.Field[shared.ProjectScoreType] `json:"score_type,required"`
	// For categorical-type project scores, the list of all categories
	Categories param.Field[ProjectScoreReplaceParamsCategoriesUnion] `json:"categories"`
	Config     param.Field[shared.ProjectScoreConfigParam]           `json:"config"`
	// Textual description of the project score
	Description param.Field[string] `json:"description"`
}

func (ProjectScoreReplaceParams) MarshalJSON added in v0.2.0

func (r ProjectScoreReplaceParams) MarshalJSON() (data []byte, err error)

type ProjectScoreReplaceParamsCategoriesCategorical added in v0.3.0

type ProjectScoreReplaceParamsCategoriesCategorical []shared.ProjectScoreCategoryParam

type ProjectScoreReplaceParamsCategoriesMinimum added in v0.3.0

type ProjectScoreReplaceParamsCategoriesMinimum []string

type ProjectScoreReplaceParamsCategoriesUnion added in v0.3.0

type ProjectScoreReplaceParamsCategoriesUnion interface {
	// contains filtered or unexported methods
}

For categorical-type project scores, the list of all categories

Satisfied by ProjectScoreReplaceParamsCategoriesCategorical, ProjectScoreReplaceParamsCategoriesMinimum.

type ProjectScoreService added in v0.2.0

type ProjectScoreService struct {
	Options []option.RequestOption
}

ProjectScoreService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewProjectScoreService method instead.

func NewProjectScoreService added in v0.2.0

func NewProjectScoreService(opts ...option.RequestOption) (r *ProjectScoreService)

NewProjectScoreService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*ProjectScoreService) Delete added in v0.2.0

func (r *ProjectScoreService) Delete(ctx context.Context, projectScoreID string, opts ...option.RequestOption) (res *shared.ProjectScore, err error)

Delete a project_score object by its id

func (*ProjectScoreService) Get added in v0.2.0

func (r *ProjectScoreService) Get(ctx context.Context, projectScoreID string, opts ...option.RequestOption) (res *shared.ProjectScore, err error)

Get a project_score object by its id

func (*ProjectScoreService) List added in v0.2.0

List out all project_scores. The project_scores are sorted by creation date, with the most recently-created project_scores coming first

func (*ProjectScoreService) ListAutoPaging added in v0.2.0

List out all project_scores. The project_scores are sorted by creation date, with the most recently-created project_scores coming first

func (*ProjectScoreService) New added in v0.2.0

Create a new project_score. If there is an existing project_score in the project with the same name as the one specified in the request, will return the existing project_score unmodified

func (*ProjectScoreService) Replace added in v0.2.0

Create or replace project_score. If there is an existing project_score in the project with the same name as the one specified in the request, will replace the existing project_score with the provided fields

func (*ProjectScoreService) Update added in v0.2.0

func (r *ProjectScoreService) Update(ctx context.Context, projectScoreID string, body ProjectScoreUpdateParams, opts ...option.RequestOption) (res *shared.ProjectScore, err error)

Partially update a project_score object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type ProjectScoreType added in v0.4.0

type ProjectScoreType = shared.ProjectScoreType

The type of the configured score

This is an alias to an internal type.

type ProjectScoreUpdateParams added in v0.2.0

type ProjectScoreUpdateParams struct {
	// For categorical-type project scores, the list of all categories
	Categories param.Field[ProjectScoreUpdateParamsCategoriesUnion] `json:"categories"`
	Config     param.Field[shared.ProjectScoreConfigParam]          `json:"config"`
	// Textual description of the project score
	Description param.Field[string] `json:"description"`
	// Name of the project score
	Name param.Field[string] `json:"name"`
	// The type of the configured score
	ScoreType param.Field[shared.ProjectScoreType] `json:"score_type"`
}

func (ProjectScoreUpdateParams) MarshalJSON added in v0.2.0

func (r ProjectScoreUpdateParams) MarshalJSON() (data []byte, err error)

type ProjectScoreUpdateParamsCategoriesCategorical added in v0.3.0

type ProjectScoreUpdateParamsCategoriesCategorical []shared.ProjectScoreCategoryParam

type ProjectScoreUpdateParamsCategoriesMinimum added in v0.3.0

type ProjectScoreUpdateParamsCategoriesMinimum []string

type ProjectScoreUpdateParamsCategoriesUnion added in v0.3.0

type ProjectScoreUpdateParamsCategoriesUnion interface {
	// contains filtered or unexported methods
}

For categorical-type project scores, the list of all categories

Satisfied by ProjectScoreUpdateParamsCategoriesCategorical, ProjectScoreUpdateParamsCategoriesMinimum.

type ProjectService

type ProjectService struct {
	Options []option.RequestOption
	Logs    *ProjectLogService
}

ProjectService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewProjectService method instead.

func NewProjectService

func NewProjectService(opts ...option.RequestOption) (r *ProjectService)

NewProjectService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*ProjectService) Delete

func (r *ProjectService) Delete(ctx context.Context, projectID string, opts ...option.RequestOption) (res *shared.Project, err error)

Delete a project object by its id

func (*ProjectService) Get

func (r *ProjectService) Get(ctx context.Context, projectID string, opts ...option.RequestOption) (res *shared.Project, err error)

Get a project object by its id

func (*ProjectService) List

List out all projects. The projects are sorted by creation date, with the most recently-created projects coming first

func (*ProjectService) ListAutoPaging

List out all projects. The projects are sorted by creation date, with the most recently-created projects coming first

func (*ProjectService) New

func (r *ProjectService) New(ctx context.Context, body ProjectNewParams, opts ...option.RequestOption) (res *shared.Project, err error)

Create a new project. If there is an existing project with the same name as the one specified in the request, will return the existing project unmodified

func (*ProjectService) Update

func (r *ProjectService) Update(ctx context.Context, projectID string, body ProjectUpdateParams, opts ...option.RequestOption) (res *shared.Project, err error)

Partially update a project object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type ProjectSettings added in v0.2.0

type ProjectSettings = shared.ProjectSettings

This is an alias to an internal type.

type ProjectSettingsParam added in v0.4.0

type ProjectSettingsParam = shared.ProjectSettingsParam

This is an alias to an internal type.

type ProjectSettingsSpanFieldOrder added in v0.6.0

type ProjectSettingsSpanFieldOrder = shared.ProjectSettingsSpanFieldOrder

This is an alias to an internal type.

type ProjectSettingsSpanFieldOrderLayout added in v0.6.0

type ProjectSettingsSpanFieldOrderLayout = shared.ProjectSettingsSpanFieldOrderLayout

This is an alias to an internal type.

type ProjectSettingsSpanFieldOrderParam added in v0.6.0

type ProjectSettingsSpanFieldOrderParam = shared.ProjectSettingsSpanFieldOrderParam

This is an alias to an internal type.

type ProjectTag added in v0.2.0

type ProjectTag = shared.ProjectTag

A project tag is a user-configured tag for tracking and filtering your experiments, logs, and other data

This is an alias to an internal type.

type ProjectTagListParams added in v0.2.0

type ProjectTagListParams struct {
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[ProjectTagListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Project id
	ProjectID param.Field[string] `query:"project_id" format:"uuid"`
	// Name of the project to search for
	ProjectName param.Field[string] `query:"project_name"`
	// Name of the project_tag to search for
	ProjectTagName param.Field[string] `query:"project_tag_name"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
}

func (ProjectTagListParams) URLQuery added in v0.2.0

func (r ProjectTagListParams) URLQuery() (v url.Values)

URLQuery serializes ProjectTagListParams's query parameters as `url.Values`.

type ProjectTagListParamsIDsArray added in v0.2.0

type ProjectTagListParamsIDsArray []string

func (ProjectTagListParamsIDsArray) ImplementsProjectTagListParamsIDsUnion added in v0.2.0

func (r ProjectTagListParamsIDsArray) ImplementsProjectTagListParamsIDsUnion()

type ProjectTagListParamsIDsUnion added in v0.2.0

type ProjectTagListParamsIDsUnion interface {
	ImplementsProjectTagListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, ProjectTagListParamsIDsArray.

type ProjectTagNewParams added in v0.2.0

type ProjectTagNewParams struct {
	// Name of the project tag
	Name param.Field[string] `json:"name,required"`
	// Unique identifier for the project that the project tag belongs under
	ProjectID param.Field[string] `json:"project_id,required" format:"uuid"`
	// Color of the tag for the UI
	Color param.Field[string] `json:"color"`
	// Textual description of the project tag
	Description param.Field[string] `json:"description"`
}

func (ProjectTagNewParams) MarshalJSON added in v0.2.0

func (r ProjectTagNewParams) MarshalJSON() (data []byte, err error)

type ProjectTagReplaceParams added in v0.2.0

type ProjectTagReplaceParams struct {
	// Name of the project tag
	Name param.Field[string] `json:"name,required"`
	// Unique identifier for the project that the project tag belongs under
	ProjectID param.Field[string] `json:"project_id,required" format:"uuid"`
	// Color of the tag for the UI
	Color param.Field[string] `json:"color"`
	// Textual description of the project tag
	Description param.Field[string] `json:"description"`
}

func (ProjectTagReplaceParams) MarshalJSON added in v0.2.0

func (r ProjectTagReplaceParams) MarshalJSON() (data []byte, err error)

type ProjectTagService added in v0.2.0

type ProjectTagService struct {
	Options []option.RequestOption
}

ProjectTagService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewProjectTagService method instead.

func NewProjectTagService added in v0.2.0

func NewProjectTagService(opts ...option.RequestOption) (r *ProjectTagService)

NewProjectTagService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*ProjectTagService) Delete added in v0.2.0

func (r *ProjectTagService) Delete(ctx context.Context, projectTagID string, opts ...option.RequestOption) (res *shared.ProjectTag, err error)

Delete a project_tag object by its id

func (*ProjectTagService) Get added in v0.2.0

func (r *ProjectTagService) Get(ctx context.Context, projectTagID string, opts ...option.RequestOption) (res *shared.ProjectTag, err error)

Get a project_tag object by its id

func (*ProjectTagService) List added in v0.2.0

List out all project_tags. The project_tags are sorted by creation date, with the most recently-created project_tags coming first

func (*ProjectTagService) ListAutoPaging added in v0.2.0

List out all project_tags. The project_tags are sorted by creation date, with the most recently-created project_tags coming first

func (*ProjectTagService) New added in v0.2.0

Create a new project_tag. If there is an existing project_tag in the project with the same name as the one specified in the request, will return the existing project_tag unmodified

func (*ProjectTagService) Replace added in v0.2.0

Create or replace project_tag. If there is an existing project_tag in the project with the same name as the one specified in the request, will replace the existing project_tag with the provided fields

func (*ProjectTagService) Update added in v0.2.0

func (r *ProjectTagService) Update(ctx context.Context, projectTagID string, body ProjectTagUpdateParams, opts ...option.RequestOption) (res *shared.ProjectTag, err error)

Partially update a project_tag object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type ProjectTagUpdateParams added in v0.2.0

type ProjectTagUpdateParams struct {
	// Color of the tag for the UI
	Color param.Field[string] `json:"color"`
	// Textual description of the project tag
	Description param.Field[string] `json:"description"`
	// Name of the project tag
	Name param.Field[string] `json:"name"`
}

func (ProjectTagUpdateParams) MarshalJSON added in v0.2.0

func (r ProjectTagUpdateParams) MarshalJSON() (data []byte, err error)

type ProjectUpdateParams

type ProjectUpdateParams struct {
	// Name of the project
	Name param.Field[string] `json:"name"`
	// Project settings. Patch operations replace all settings, so make sure you
	// include all settings you want to keep.
	Settings param.Field[shared.ProjectSettingsParam] `json:"settings"`
}

func (ProjectUpdateParams) MarshalJSON

func (r ProjectUpdateParams) MarshalJSON() (data []byte, err error)

type Prompt added in v0.2.0

type Prompt = shared.Prompt

This is an alias to an internal type.

type PromptData added in v0.2.0

type PromptData = shared.PromptData

The prompt, model, and its parameters

This is an alias to an internal type.

type PromptDataOrigin added in v0.2.0

type PromptDataOrigin = shared.PromptDataOrigin

This is an alias to an internal type.

type PromptDataOriginParam added in v0.2.0

type PromptDataOriginParam = shared.PromptDataOriginParam

This is an alias to an internal type.

type PromptDataParam added in v0.2.0

type PromptDataParam = shared.PromptDataParam

The prompt, model, and its parameters

This is an alias to an internal type.

type PromptDataParser added in v0.4.0

type PromptDataParser = shared.PromptDataParser

This is an alias to an internal type.

type PromptDataParserParam added in v0.4.0

type PromptDataParserParam = shared.PromptDataParserParam

This is an alias to an internal type.

type PromptDataParserType added in v0.4.0

type PromptDataParserType = shared.PromptDataParserType

This is an alias to an internal type.

type PromptDataPrompt added in v0.2.0

type PromptDataPrompt = shared.PromptDataPrompt

This is an alias to an internal type.

type PromptDataPromptChat added in v0.2.0

type PromptDataPromptChat = shared.PromptDataPromptChat

This is an alias to an internal type.

type PromptDataPromptChatMessage added in v0.2.0

type PromptDataPromptChatMessage = shared.PromptDataPromptChatMessage

This is an alias to an internal type.

type PromptDataPromptChatMessagesAssistant added in v0.2.0

type PromptDataPromptChatMessagesAssistant = shared.PromptDataPromptChatMessagesAssistant

This is an alias to an internal type.

type PromptDataPromptChatMessagesAssistantFunctionCall added in v0.2.0

type PromptDataPromptChatMessagesAssistantFunctionCall = shared.PromptDataPromptChatMessagesAssistantFunctionCall

This is an alias to an internal type.

type PromptDataPromptChatMessagesAssistantFunctionCallParam added in v0.2.0

type PromptDataPromptChatMessagesAssistantFunctionCallParam = shared.PromptDataPromptChatMessagesAssistantFunctionCallParam

This is an alias to an internal type.

type PromptDataPromptChatMessagesAssistantParam added in v0.2.0

type PromptDataPromptChatMessagesAssistantParam = shared.PromptDataPromptChatMessagesAssistantParam

This is an alias to an internal type.

type PromptDataPromptChatMessagesAssistantRole added in v0.2.0

type PromptDataPromptChatMessagesAssistantRole = shared.PromptDataPromptChatMessagesAssistantRole

This is an alias to an internal type.

type PromptDataPromptChatMessagesFallback added in v0.2.0

type PromptDataPromptChatMessagesFallback = shared.PromptDataPromptChatMessagesFallback

This is an alias to an internal type.

type PromptDataPromptChatMessagesFallbackParam added in v0.2.0

type PromptDataPromptChatMessagesFallbackParam = shared.PromptDataPromptChatMessagesFallbackParam

This is an alias to an internal type.

type PromptDataPromptChatMessagesFallbackRole added in v0.2.0

type PromptDataPromptChatMessagesFallbackRole = shared.PromptDataPromptChatMessagesFallbackRole

This is an alias to an internal type.

type PromptDataPromptChatMessagesFunction added in v0.2.0

type PromptDataPromptChatMessagesFunction = shared.PromptDataPromptChatMessagesFunction

This is an alias to an internal type.

type PromptDataPromptChatMessagesFunctionParam added in v0.2.0

type PromptDataPromptChatMessagesFunctionParam = shared.PromptDataPromptChatMessagesFunctionParam

This is an alias to an internal type.

type PromptDataPromptChatMessagesFunctionRole added in v0.2.0

type PromptDataPromptChatMessagesFunctionRole = shared.PromptDataPromptChatMessagesFunctionRole

This is an alias to an internal type.

type PromptDataPromptChatMessagesRole added in v0.2.0

type PromptDataPromptChatMessagesRole = shared.PromptDataPromptChatMessagesRole

This is an alias to an internal type.

type PromptDataPromptChatMessagesSystem added in v0.2.0

type PromptDataPromptChatMessagesSystem = shared.PromptDataPromptChatMessagesSystem

This is an alias to an internal type.

type PromptDataPromptChatMessagesSystemParam added in v0.2.0

type PromptDataPromptChatMessagesSystemParam = shared.PromptDataPromptChatMessagesSystemParam

This is an alias to an internal type.

type PromptDataPromptChatMessagesSystemRole added in v0.2.0

type PromptDataPromptChatMessagesSystemRole = shared.PromptDataPromptChatMessagesSystemRole

This is an alias to an internal type.

type PromptDataPromptChatMessagesTool added in v0.2.0

type PromptDataPromptChatMessagesTool = shared.PromptDataPromptChatMessagesTool

This is an alias to an internal type.

type PromptDataPromptChatMessagesToolParam added in v0.2.0

type PromptDataPromptChatMessagesToolParam = shared.PromptDataPromptChatMessagesToolParam

This is an alias to an internal type.

type PromptDataPromptChatMessagesToolRole added in v0.2.0

type PromptDataPromptChatMessagesToolRole = shared.PromptDataPromptChatMessagesToolRole

This is an alias to an internal type.

type PromptDataPromptChatMessagesUnionParam added in v0.2.0

type PromptDataPromptChatMessagesUnionParam = shared.PromptDataPromptChatMessagesUnionParam

This is an alias to an internal type.

type PromptDataPromptChatMessagesUser added in v0.2.0

type PromptDataPromptChatMessagesUser = shared.PromptDataPromptChatMessagesUser

This is an alias to an internal type.

type PromptDataPromptChatMessagesUserContentArray added in v0.2.0

type PromptDataPromptChatMessagesUserContentArray = shared.PromptDataPromptChatMessagesUserContentArray

This is an alias to an internal type.

type PromptDataPromptChatMessagesUserContentArrayParam added in v0.2.0

type PromptDataPromptChatMessagesUserContentArrayParam = shared.PromptDataPromptChatMessagesUserContentArrayParam

This is an alias to an internal type.

type PromptDataPromptChatMessagesUserContentArrayUnionItem added in v0.5.0

type PromptDataPromptChatMessagesUserContentArrayUnionItem = shared.PromptDataPromptChatMessagesUserContentArrayUnionItem

This is an alias to an internal type.

type PromptDataPromptChatMessagesUserContentArrayUnionItemParam added in v0.2.0

type PromptDataPromptChatMessagesUserContentArrayUnionItemParam = shared.PromptDataPromptChatMessagesUserContentArrayUnionItemParam

This is an alias to an internal type.

type PromptDataPromptChatMessagesUserContentUnion added in v0.2.0

type PromptDataPromptChatMessagesUserContentUnion = shared.PromptDataPromptChatMessagesUserContentUnion

This is an alias to an internal type.

type PromptDataPromptChatMessagesUserContentUnionParam added in v0.2.0

type PromptDataPromptChatMessagesUserContentUnionParam = shared.PromptDataPromptChatMessagesUserContentUnionParam

This is an alias to an internal type.

type PromptDataPromptChatMessagesUserParam added in v0.2.0

type PromptDataPromptChatMessagesUserParam = shared.PromptDataPromptChatMessagesUserParam

This is an alias to an internal type.

type PromptDataPromptChatMessagesUserRole added in v0.2.0

type PromptDataPromptChatMessagesUserRole = shared.PromptDataPromptChatMessagesUserRole

This is an alias to an internal type.

type PromptDataPromptChatParam added in v0.2.0

type PromptDataPromptChatParam = shared.PromptDataPromptChatParam

This is an alias to an internal type.

type PromptDataPromptChatType added in v0.2.0

type PromptDataPromptChatType = shared.PromptDataPromptChatType

This is an alias to an internal type.

type PromptDataPromptCompletion added in v0.2.0

type PromptDataPromptCompletion = shared.PromptDataPromptCompletion

This is an alias to an internal type.

type PromptDataPromptCompletionParam added in v0.2.0

type PromptDataPromptCompletionParam = shared.PromptDataPromptCompletionParam

This is an alias to an internal type.

type PromptDataPromptCompletionType added in v0.2.0

type PromptDataPromptCompletionType = shared.PromptDataPromptCompletionType

This is an alias to an internal type.

type PromptDataPromptType added in v0.2.0

type PromptDataPromptType = shared.PromptDataPromptType

This is an alias to an internal type.

type PromptDataPromptUnionParam added in v0.2.0

type PromptDataPromptUnionParam = shared.PromptDataPromptUnionParam

This is an alias to an internal type.

type PromptDataToolFunction added in v0.4.0

type PromptDataToolFunction = shared.PromptDataToolFunction

This is an alias to an internal type.

type PromptDataToolFunctionsFunction added in v0.4.0

type PromptDataToolFunctionsFunction = shared.PromptDataToolFunctionsFunction

This is an alias to an internal type.

type PromptDataToolFunctionsFunctionParam added in v0.4.0

type PromptDataToolFunctionsFunctionParam = shared.PromptDataToolFunctionsFunctionParam

This is an alias to an internal type.

type PromptDataToolFunctionsFunctionType added in v0.4.0

type PromptDataToolFunctionsFunctionType = shared.PromptDataToolFunctionsFunctionType

This is an alias to an internal type.

type PromptDataToolFunctionsGlobal added in v0.4.0

type PromptDataToolFunctionsGlobal = shared.PromptDataToolFunctionsGlobal

This is an alias to an internal type.

type PromptDataToolFunctionsGlobalParam added in v0.4.0

type PromptDataToolFunctionsGlobalParam = shared.PromptDataToolFunctionsGlobalParam

This is an alias to an internal type.

type PromptDataToolFunctionsGlobalType added in v0.4.0

type PromptDataToolFunctionsGlobalType = shared.PromptDataToolFunctionsGlobalType

This is an alias to an internal type.

type PromptDataToolFunctionsType added in v0.4.0

type PromptDataToolFunctionsType = shared.PromptDataToolFunctionsType

This is an alias to an internal type.

type PromptDataToolFunctionsUnionParam added in v0.4.0

type PromptDataToolFunctionsUnionParam = shared.PromptDataToolFunctionsUnionParam

This is an alias to an internal type.

type PromptFunctionType added in v0.4.0

type PromptFunctionType = shared.PromptFunctionType

This is an alias to an internal type.

type PromptListParams added in v0.2.0

type PromptListParams struct {
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[PromptListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Project id
	ProjectID param.Field[string] `query:"project_id" format:"uuid"`
	// Name of the project to search for
	ProjectName param.Field[string] `query:"project_name"`
	// Name of the prompt to search for
	PromptName param.Field[string] `query:"prompt_name"`
	// Retrieve prompt with a specific slug
	Slug param.Field[string] `query:"slug"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
	// Retrieve prompt at a specific version.
	//
	// The version id can either be a transaction id (e.g. '1000192656880881099') or a
	// version identifier (e.g. '81cd05ee665fdfb3').
	Version param.Field[string] `query:"version"`
}

func (PromptListParams) URLQuery added in v0.2.0

func (r PromptListParams) URLQuery() (v url.Values)

URLQuery serializes PromptListParams's query parameters as `url.Values`.

type PromptListParamsIDsArray added in v0.2.0

type PromptListParamsIDsArray []string

func (PromptListParamsIDsArray) ImplementsPromptListParamsIDsUnion added in v0.2.0

func (r PromptListParamsIDsArray) ImplementsPromptListParamsIDsUnion()

type PromptListParamsIDsUnion added in v0.2.0

type PromptListParamsIDsUnion interface {
	ImplementsPromptListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, PromptListParamsIDsArray.

type PromptLogID added in v0.2.0

type PromptLogID = shared.PromptLogID

A literal 'p' which identifies the object as a project prompt

This is an alias to an internal type.

type PromptNewParams added in v0.2.0

type PromptNewParams struct {
	// Name of the prompt
	Name param.Field[string] `json:"name,required"`
	// Unique identifier for the project that the prompt belongs under
	ProjectID param.Field[string] `json:"project_id,required" format:"uuid"`
	// Unique identifier for the prompt
	Slug param.Field[string] `json:"slug,required"`
	// Textual description of the prompt
	Description  param.Field[string]                      `json:"description"`
	FunctionType param.Field[PromptNewParamsFunctionType] `json:"function_type"`
	// The prompt, model, and its parameters
	PromptData param.Field[shared.PromptDataParam] `json:"prompt_data"`
	// A list of tags for the prompt
	Tags param.Field[[]string] `json:"tags"`
}

func (PromptNewParams) MarshalJSON added in v0.2.0

func (r PromptNewParams) MarshalJSON() (data []byte, err error)

type PromptNewParamsFunctionType added in v0.4.0

type PromptNewParamsFunctionType string
const (
	PromptNewParamsFunctionTypeLlm    PromptNewParamsFunctionType = "llm"
	PromptNewParamsFunctionTypeScorer PromptNewParamsFunctionType = "scorer"
	PromptNewParamsFunctionTypeTask   PromptNewParamsFunctionType = "task"
	PromptNewParamsFunctionTypeTool   PromptNewParamsFunctionType = "tool"
)

func (PromptNewParamsFunctionType) IsKnown added in v0.4.0

func (r PromptNewParamsFunctionType) IsKnown() bool

type PromptOptions added in v0.5.0

type PromptOptions = shared.PromptOptions

This is an alias to an internal type.

type PromptOptionsParam added in v0.5.0

type PromptOptionsParam = shared.PromptOptionsParam

This is an alias to an internal type.

type PromptOptionsParamsAnthropicModelParams added in v0.5.0

type PromptOptionsParamsAnthropicModelParams = shared.PromptOptionsParamsAnthropicModelParams

This is an alias to an internal type.

type PromptOptionsParamsAnthropicModelParamsParam added in v0.5.0

type PromptOptionsParamsAnthropicModelParamsParam = shared.PromptOptionsParamsAnthropicModelParamsParam

This is an alias to an internal type.

type PromptOptionsParamsGoogleModelParams added in v0.5.0

type PromptOptionsParamsGoogleModelParams = shared.PromptOptionsParamsGoogleModelParams

This is an alias to an internal type.

type PromptOptionsParamsGoogleModelParamsParam added in v0.5.0

type PromptOptionsParamsGoogleModelParamsParam = shared.PromptOptionsParamsGoogleModelParamsParam

This is an alias to an internal type.

type PromptOptionsParamsJsCompletionParams added in v0.5.0

type PromptOptionsParamsJsCompletionParams = shared.PromptOptionsParamsJsCompletionParams

This is an alias to an internal type.

type PromptOptionsParamsJsCompletionParamsParam added in v0.5.0

type PromptOptionsParamsJsCompletionParamsParam = shared.PromptOptionsParamsJsCompletionParamsParam

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParams added in v0.5.0

type PromptOptionsParamsOpenAIModelParams = shared.PromptOptionsParamsOpenAIModelParams

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsFunctionCallFunction added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsFunctionCallFunction = shared.PromptOptionsParamsOpenAIModelParamsFunctionCallFunction

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsFunctionCallFunctionParam added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsFunctionCallFunctionParam = shared.PromptOptionsParamsOpenAIModelParamsFunctionCallFunctionParam

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsFunctionCallString added in v0.6.0

type PromptOptionsParamsOpenAIModelParamsFunctionCallString = shared.PromptOptionsParamsOpenAIModelParamsFunctionCallString

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsFunctionCallUnion added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsFunctionCallUnion = shared.PromptOptionsParamsOpenAIModelParamsFunctionCallUnion

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsFunctionCallUnionParam added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsFunctionCallUnionParam = shared.PromptOptionsParamsOpenAIModelParamsFunctionCallUnionParam

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsParam added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsParam = shared.PromptOptionsParamsOpenAIModelParamsParam

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsReasoningEffort added in v0.6.0

type PromptOptionsParamsOpenAIModelParamsReasoningEffort = shared.PromptOptionsParamsOpenAIModelParamsReasoningEffort

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormat added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormat = shared.PromptOptionsParamsOpenAIModelParamsResponseFormat

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonObject added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonObject = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatJsonObject

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonObjectParam added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonObjectParam = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatJsonObjectParam

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonObjectType added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonObjectType = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatJsonObjectType

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchema added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchema = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchema

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaJsonSchema added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaJsonSchema = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaJsonSchema

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaJsonSchemaParam added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaJsonSchemaParam = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaJsonSchemaParam

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaParam added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaParam = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaParam

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaType added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaType = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatJsonSchemaType

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormatText added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormatText = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatText

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormatTextParam added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormatTextParam = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatTextParam

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormatTextType added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormatTextType = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatTextType

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormatType added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormatType = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatType

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsResponseFormatUnionParam added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsResponseFormatUnionParam = shared.PromptOptionsParamsOpenAIModelParamsResponseFormatUnionParam

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsToolChoiceFunction added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsToolChoiceFunction = shared.PromptOptionsParamsOpenAIModelParamsToolChoiceFunction

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionFunction added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionFunction = shared.PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionFunction

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionFunctionParam added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionFunctionParam = shared.PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionFunctionParam

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionParam added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionParam = shared.PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionParam

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionType added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionType = shared.PromptOptionsParamsOpenAIModelParamsToolChoiceFunctionType

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsToolChoiceString added in v0.6.0

type PromptOptionsParamsOpenAIModelParamsToolChoiceString = shared.PromptOptionsParamsOpenAIModelParamsToolChoiceString

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsToolChoiceUnion added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsToolChoiceUnion = shared.PromptOptionsParamsOpenAIModelParamsToolChoiceUnion

This is an alias to an internal type.

type PromptOptionsParamsOpenAIModelParamsToolChoiceUnionParam added in v0.5.0

type PromptOptionsParamsOpenAIModelParamsToolChoiceUnionParam = shared.PromptOptionsParamsOpenAIModelParamsToolChoiceUnionParam

This is an alias to an internal type.

type PromptOptionsParamsUnion added in v0.5.0

type PromptOptionsParamsUnion = shared.PromptOptionsParamsUnion

This is an alias to an internal type.

type PromptOptionsParamsUnionParam added in v0.5.0

type PromptOptionsParamsUnionParam = shared.PromptOptionsParamsUnionParam

This is an alias to an internal type.

type PromptOptionsParamsWindowAIModelParams added in v0.5.0

type PromptOptionsParamsWindowAIModelParams = shared.PromptOptionsParamsWindowAIModelParams

This is an alias to an internal type.

type PromptOptionsParamsWindowAIModelParamsParam added in v0.5.0

type PromptOptionsParamsWindowAIModelParamsParam = shared.PromptOptionsParamsWindowAIModelParamsParam

This is an alias to an internal type.

type PromptReplaceParams added in v0.2.0

type PromptReplaceParams struct {
	// Name of the prompt
	Name param.Field[string] `json:"name,required"`
	// Unique identifier for the project that the prompt belongs under
	ProjectID param.Field[string] `json:"project_id,required" format:"uuid"`
	// Unique identifier for the prompt
	Slug param.Field[string] `json:"slug,required"`
	// Textual description of the prompt
	Description  param.Field[string]                          `json:"description"`
	FunctionType param.Field[PromptReplaceParamsFunctionType] `json:"function_type"`
	// The prompt, model, and its parameters
	PromptData param.Field[shared.PromptDataParam] `json:"prompt_data"`
	// A list of tags for the prompt
	Tags param.Field[[]string] `json:"tags"`
}

func (PromptReplaceParams) MarshalJSON added in v0.2.0

func (r PromptReplaceParams) MarshalJSON() (data []byte, err error)

type PromptReplaceParamsFunctionType added in v0.4.0

type PromptReplaceParamsFunctionType string
const (
	PromptReplaceParamsFunctionTypeLlm    PromptReplaceParamsFunctionType = "llm"
	PromptReplaceParamsFunctionTypeScorer PromptReplaceParamsFunctionType = "scorer"
	PromptReplaceParamsFunctionTypeTask   PromptReplaceParamsFunctionType = "task"
	PromptReplaceParamsFunctionTypeTool   PromptReplaceParamsFunctionType = "tool"
)

func (PromptReplaceParamsFunctionType) IsKnown added in v0.4.0

type PromptService added in v0.2.0

type PromptService struct {
	Options []option.RequestOption
}

PromptService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewPromptService method instead.

func NewPromptService added in v0.2.0

func NewPromptService(opts ...option.RequestOption) (r *PromptService)

NewPromptService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*PromptService) Delete added in v0.2.0

func (r *PromptService) Delete(ctx context.Context, promptID string, opts ...option.RequestOption) (res *shared.Prompt, err error)

Delete a prompt object by its id

func (*PromptService) Get added in v0.2.0

func (r *PromptService) Get(ctx context.Context, promptID string, opts ...option.RequestOption) (res *shared.Prompt, err error)

Get a prompt object by its id

func (*PromptService) List added in v0.2.0

List out all prompts. The prompts are sorted by creation date, with the most recently-created prompts coming first

func (*PromptService) ListAutoPaging added in v0.2.0

List out all prompts. The prompts are sorted by creation date, with the most recently-created prompts coming first

func (*PromptService) New added in v0.2.0

func (r *PromptService) New(ctx context.Context, body PromptNewParams, opts ...option.RequestOption) (res *shared.Prompt, err error)

Create a new prompt. If there is an existing prompt in the project with the same slug as the one specified in the request, will return the existing prompt unmodified

func (*PromptService) Replace added in v0.2.0

func (r *PromptService) Replace(ctx context.Context, body PromptReplaceParams, opts ...option.RequestOption) (res *shared.Prompt, err error)

Create or replace prompt. If there is an existing prompt in the project with the same slug as the one specified in the request, will replace the existing prompt with the provided fields

func (*PromptService) Update added in v0.2.0

func (r *PromptService) Update(ctx context.Context, promptID string, body PromptUpdateParams, opts ...option.RequestOption) (res *shared.Prompt, err error)

Partially update a prompt object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type PromptUpdateParams added in v0.2.0

type PromptUpdateParams struct {
	// Textual description of the prompt
	Description param.Field[string] `json:"description"`
	// Name of the prompt
	Name param.Field[string] `json:"name"`
	// The prompt, model, and its parameters
	PromptData param.Field[shared.PromptDataParam] `json:"prompt_data"`
	// Unique identifier for the prompt
	Slug param.Field[string] `json:"slug"`
	// A list of tags for the prompt
	Tags param.Field[[]string] `json:"tags"`
}

func (PromptUpdateParams) MarshalJSON added in v0.2.0

func (r PromptUpdateParams) MarshalJSON() (data []byte, err error)

type RepoInfo added in v0.2.0

type RepoInfo = shared.RepoInfo

Metadata about the state of the repo when the experiment was created

This is an alias to an internal type.

type RepoInfoParam added in v0.2.0

type RepoInfoParam = shared.RepoInfoParam

Metadata about the state of the repo when the experiment was created

This is an alias to an internal type.

type Role added in v0.2.0

type Role = shared.Role

A role is a collection of permissions which can be granted as part of an ACL

Roles can consist of individual permissions, as well as a set of roles they inherit from

This is an alias to an internal type.

type RoleListParams added in v0.2.0

type RoleListParams struct {
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[RoleListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Name of the role to search for
	RoleName param.Field[string] `query:"role_name"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
}

func (RoleListParams) URLQuery added in v0.2.0

func (r RoleListParams) URLQuery() (v url.Values)

URLQuery serializes RoleListParams's query parameters as `url.Values`.

type RoleListParamsIDsArray added in v0.2.0

type RoleListParamsIDsArray []string

func (RoleListParamsIDsArray) ImplementsRoleListParamsIDsUnion added in v0.2.0

func (r RoleListParamsIDsArray) ImplementsRoleListParamsIDsUnion()

type RoleListParamsIDsUnion added in v0.2.0

type RoleListParamsIDsUnion interface {
	ImplementsRoleListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, RoleListParamsIDsArray.

type RoleMemberPermission added in v0.2.0

type RoleMemberPermission = shared.RoleMemberPermission

This is an alias to an internal type.

type RoleNewParams added in v0.2.0

type RoleNewParams struct {
	// Name of the role
	Name param.Field[string] `json:"name,required"`
	// Textual description of the role
	Description param.Field[string] `json:"description"`
	// (permission, restrict_object_type) tuples which belong to this role
	MemberPermissions param.Field[[]RoleNewParamsMemberPermission] `json:"member_permissions"`
	// Ids of the roles this role inherits from
	//
	// An inheriting role has all the permissions contained in its member roles, as
	// well as all of their inherited permissions
	MemberRoles param.Field[[]string] `json:"member_roles" format:"uuid"`
	// For nearly all users, this parameter should be unnecessary. But in the rare case
	// that your API key belongs to multiple organizations, you may specify the name of
	// the organization the role belongs in.
	OrgName param.Field[string] `json:"org_name"`
}

func (RoleNewParams) MarshalJSON added in v0.2.0

func (r RoleNewParams) MarshalJSON() (data []byte, err error)

type RoleNewParamsMemberPermission added in v0.3.0

type RoleNewParamsMemberPermission struct {
	// Each permission permits a certain type of operation on an object in the system
	//
	// Permissions can be assigned to to objects on an individual basis, or grouped
	// into roles
	Permission param.Field[shared.Permission] `json:"permission,required"`
	// The object type that the ACL applies to
	RestrictObjectType param.Field[shared.ACLObjectType] `json:"restrict_object_type"`
}

func (RoleNewParamsMemberPermission) MarshalJSON added in v0.3.0

func (r RoleNewParamsMemberPermission) MarshalJSON() (data []byte, err error)

type RoleReplaceParams added in v0.2.0

type RoleReplaceParams struct {
	// Name of the role
	Name param.Field[string] `json:"name,required"`
	// Textual description of the role
	Description param.Field[string] `json:"description"`
	// (permission, restrict_object_type) tuples which belong to this role
	MemberPermissions param.Field[[]RoleReplaceParamsMemberPermission] `json:"member_permissions"`
	// Ids of the roles this role inherits from
	//
	// An inheriting role has all the permissions contained in its member roles, as
	// well as all of their inherited permissions
	MemberRoles param.Field[[]string] `json:"member_roles" format:"uuid"`
	// For nearly all users, this parameter should be unnecessary. But in the rare case
	// that your API key belongs to multiple organizations, you may specify the name of
	// the organization the role belongs in.
	OrgName param.Field[string] `json:"org_name"`
}

func (RoleReplaceParams) MarshalJSON added in v0.2.0

func (r RoleReplaceParams) MarshalJSON() (data []byte, err error)

type RoleReplaceParamsMemberPermission added in v0.3.0

type RoleReplaceParamsMemberPermission struct {
	// Each permission permits a certain type of operation on an object in the system
	//
	// Permissions can be assigned to to objects on an individual basis, or grouped
	// into roles
	Permission param.Field[shared.Permission] `json:"permission,required"`
	// The object type that the ACL applies to
	RestrictObjectType param.Field[shared.ACLObjectType] `json:"restrict_object_type"`
}

func (RoleReplaceParamsMemberPermission) MarshalJSON added in v0.3.0

func (r RoleReplaceParamsMemberPermission) MarshalJSON() (data []byte, err error)

type RoleService added in v0.2.0

type RoleService struct {
	Options []option.RequestOption
}

RoleService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewRoleService method instead.

func NewRoleService added in v0.2.0

func NewRoleService(opts ...option.RequestOption) (r *RoleService)

NewRoleService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*RoleService) Delete added in v0.2.0

func (r *RoleService) Delete(ctx context.Context, roleID string, opts ...option.RequestOption) (res *shared.Role, err error)

Delete a role object by its id

func (*RoleService) Get added in v0.2.0

func (r *RoleService) Get(ctx context.Context, roleID string, opts ...option.RequestOption) (res *shared.Role, err error)

Get a role object by its id

func (*RoleService) List added in v0.2.0

List out all roles. The roles are sorted by creation date, with the most recently-created roles coming first

func (*RoleService) ListAutoPaging added in v0.2.0

List out all roles. The roles are sorted by creation date, with the most recently-created roles coming first

func (*RoleService) New added in v0.2.0

func (r *RoleService) New(ctx context.Context, body RoleNewParams, opts ...option.RequestOption) (res *shared.Role, err error)

Create a new role. If there is an existing role with the same name as the one specified in the request, will return the existing role unmodified

func (*RoleService) Replace added in v0.2.0

func (r *RoleService) Replace(ctx context.Context, body RoleReplaceParams, opts ...option.RequestOption) (res *shared.Role, err error)

Create or replace role. If there is an existing role with the same name as the one specified in the request, will replace the existing role with the provided fields

func (*RoleService) Update added in v0.2.0

func (r *RoleService) Update(ctx context.Context, roleID string, body RoleUpdateParams, opts ...option.RequestOption) (res *shared.Role, err error)

Partially update a role object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type RoleUpdateParams added in v0.2.0

type RoleUpdateParams struct {
	// A list of permissions to add to the role
	AddMemberPermissions param.Field[[]RoleUpdateParamsAddMemberPermission] `json:"add_member_permissions"`
	// A list of role IDs to add to the role's inheriting-from set
	AddMemberRoles param.Field[[]string] `json:"add_member_roles" format:"uuid"`
	// Textual description of the role
	Description param.Field[string] `json:"description"`
	// Name of the role
	Name param.Field[string] `json:"name"`
	// A list of permissions to remove from the role
	RemoveMemberPermissions param.Field[[]RoleUpdateParamsRemoveMemberPermission] `json:"remove_member_permissions"`
	// A list of role IDs to remove from the role's inheriting-from set
	RemoveMemberRoles param.Field[[]string] `json:"remove_member_roles" format:"uuid"`
}

func (RoleUpdateParams) MarshalJSON added in v0.2.0

func (r RoleUpdateParams) MarshalJSON() (data []byte, err error)

type RoleUpdateParamsAddMemberPermission added in v0.3.0

type RoleUpdateParamsAddMemberPermission struct {
	// Each permission permits a certain type of operation on an object in the system
	//
	// Permissions can be assigned to to objects on an individual basis, or grouped
	// into roles
	Permission param.Field[shared.Permission] `json:"permission,required"`
	// The object type that the ACL applies to
	RestrictObjectType param.Field[shared.ACLObjectType] `json:"restrict_object_type"`
}

func (RoleUpdateParamsAddMemberPermission) MarshalJSON added in v0.3.0

func (r RoleUpdateParamsAddMemberPermission) MarshalJSON() (data []byte, err error)

type RoleUpdateParamsRemoveMemberPermission added in v0.3.0

type RoleUpdateParamsRemoveMemberPermission struct {
	// Each permission permits a certain type of operation on an object in the system
	//
	// Permissions can be assigned to to objects on an individual basis, or grouped
	// into roles
	Permission param.Field[shared.Permission] `json:"permission,required"`
	// The object type that the ACL applies to
	RestrictObjectType param.Field[shared.ACLObjectType] `json:"restrict_object_type"`
}

func (RoleUpdateParamsRemoveMemberPermission) MarshalJSON added in v0.3.0

func (r RoleUpdateParamsRemoveMemberPermission) MarshalJSON() (data []byte, err error)

type ScoreSummary added in v0.2.0

type ScoreSummary = shared.ScoreSummary

Summary of a score's performance

This is an alias to an internal type.

type SpanAttributes added in v0.5.0

type SpanAttributes = shared.SpanAttributes

Human-identifying attributes of the span, such as name, type, etc.

This is an alias to an internal type.

type SpanAttributesParam added in v0.5.0

type SpanAttributesParam = shared.SpanAttributesParam

Human-identifying attributes of the span, such as name, type, etc.

This is an alias to an internal type.

type SpanIFrame added in v0.5.0

type SpanIFrame = shared.SpanIFrame

This is an alias to an internal type.

type SpanIframeListParams added in v0.5.0

type SpanIframeListParams struct {
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[SpanIframeListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Name of the span_iframe to search for
	SpanIframeName param.Field[string] `query:"span_iframe_name"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
}

func (SpanIframeListParams) URLQuery added in v0.5.0

func (r SpanIframeListParams) URLQuery() (v url.Values)

URLQuery serializes SpanIframeListParams's query parameters as `url.Values`.

type SpanIframeListParamsIDsArray added in v0.5.0

type SpanIframeListParamsIDsArray []string

func (SpanIframeListParamsIDsArray) ImplementsSpanIframeListParamsIDsUnion added in v0.5.0

func (r SpanIframeListParamsIDsArray) ImplementsSpanIframeListParamsIDsUnion()

type SpanIframeListParamsIDsUnion added in v0.5.0

type SpanIframeListParamsIDsUnion interface {
	ImplementsSpanIframeListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, SpanIframeListParamsIDsArray.

type SpanIframeNewParams added in v0.5.0

type SpanIframeNewParams struct {
	// Name of the span iframe
	Name param.Field[string] `json:"name,required"`
	// Unique identifier for the project that the span iframe belongs under
	ProjectID param.Field[string] `json:"project_id,required" format:"uuid"`
	// URL to embed the project viewer in an iframe
	URL param.Field[string] `json:"url,required"`
	// Textual description of the span iframe
	Description param.Field[string] `json:"description"`
	// Whether to post messages to the iframe containing the span's data. This is
	// useful when you want to render more data than fits in the URL.
	PostMessage param.Field[bool] `json:"post_message"`
}

func (SpanIframeNewParams) MarshalJSON added in v0.5.0

func (r SpanIframeNewParams) MarshalJSON() (data []byte, err error)

type SpanIframeReplaceParams added in v0.5.0

type SpanIframeReplaceParams struct {
	// Name of the span iframe
	Name param.Field[string] `json:"name,required"`
	// Unique identifier for the project that the span iframe belongs under
	ProjectID param.Field[string] `json:"project_id,required" format:"uuid"`
	// URL to embed the project viewer in an iframe
	URL param.Field[string] `json:"url,required"`
	// Textual description of the span iframe
	Description param.Field[string] `json:"description"`
	// Whether to post messages to the iframe containing the span's data. This is
	// useful when you want to render more data than fits in the URL.
	PostMessage param.Field[bool] `json:"post_message"`
}

func (SpanIframeReplaceParams) MarshalJSON added in v0.5.0

func (r SpanIframeReplaceParams) MarshalJSON() (data []byte, err error)

type SpanIframeService added in v0.5.0

type SpanIframeService struct {
	Options []option.RequestOption
}

SpanIframeService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewSpanIframeService method instead.

func NewSpanIframeService added in v0.5.0

func NewSpanIframeService(opts ...option.RequestOption) (r *SpanIframeService)

NewSpanIframeService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*SpanIframeService) Delete added in v0.5.0

func (r *SpanIframeService) Delete(ctx context.Context, spanIframeID string, opts ...option.RequestOption) (res *shared.SpanIFrame, err error)

Delete a span_iframe object by its id

func (*SpanIframeService) Get added in v0.5.0

func (r *SpanIframeService) Get(ctx context.Context, spanIframeID string, opts ...option.RequestOption) (res *shared.SpanIFrame, err error)

Get a span_iframe object by its id

func (*SpanIframeService) List added in v0.5.0

List out all span_iframes. The span_iframes are sorted by creation date, with the most recently-created span_iframes coming first

func (*SpanIframeService) ListAutoPaging added in v0.5.0

List out all span_iframes. The span_iframes are sorted by creation date, with the most recently-created span_iframes coming first

func (*SpanIframeService) New added in v0.5.0

Create a new span_iframe. If there is an existing span_iframe with the same name as the one specified in the request, will return the existing span_iframe unmodified

func (*SpanIframeService) Replace added in v0.5.0

Create or replace span_iframe. If there is an existing span_iframe with the same name as the one specified in the request, will replace the existing span_iframe with the provided fields

func (*SpanIframeService) Update added in v0.5.0

func (r *SpanIframeService) Update(ctx context.Context, spanIframeID string, body SpanIframeUpdateParams, opts ...option.RequestOption) (res *shared.SpanIFrame, err error)

Partially update a span_iframe object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type SpanIframeUpdateParams added in v0.5.0

type SpanIframeUpdateParams struct {
	// Textual description of the span iframe
	Description param.Field[string] `json:"description"`
	// Name of the span iframe
	Name param.Field[string] `json:"name"`
	// Whether to post messages to the iframe containing the span's data. This is
	// useful when you want to render more data than fits in the URL.
	PostMessage param.Field[bool] `json:"post_message"`
	// URL to embed the project viewer in an iframe
	URL param.Field[string] `json:"url"`
}

func (SpanIframeUpdateParams) MarshalJSON added in v0.5.0

func (r SpanIframeUpdateParams) MarshalJSON() (data []byte, err error)

type SpanType added in v0.7.0

type SpanType = shared.SpanType

Type of the span, for display purposes only

This is an alias to an internal type.

type SummarizeDatasetResponse added in v0.2.0

type SummarizeDatasetResponse = shared.SummarizeDatasetResponse

Summary of a dataset

This is an alias to an internal type.

type SummarizeExperimentResponse added in v0.2.0

type SummarizeExperimentResponse = shared.SummarizeExperimentResponse

Summary of an experiment

This is an alias to an internal type.

type TopLevelService

type TopLevelService struct {
	Options []option.RequestOption
}

TopLevelService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewTopLevelService method instead.

func NewTopLevelService

func NewTopLevelService(opts ...option.RequestOption) (r *TopLevelService)

NewTopLevelService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*TopLevelService) HelloWorld

func (r *TopLevelService) HelloWorld(ctx context.Context, opts ...option.RequestOption) (res *string, err error)

Default endpoint. Simply replies with 'Hello, World!'. Authorization is not required

type User added in v0.2.0

type User = shared.User

This is an alias to an internal type.

type UserListParams added in v0.2.0

type UserListParams struct {
	// Email of the user to search for. You may pass the param multiple times to filter
	// for more than one email
	Email param.Field[UserListParamsEmailUnion] `query:"email"`
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Family name of the user to search for. You may pass the param multiple times to
	// filter for more than one family name
	FamilyName param.Field[UserListParamsFamilyNameUnion] `query:"family_name"`
	// Given name of the user to search for. You may pass the param multiple times to
	// filter for more than one given name
	GivenName param.Field[UserListParamsGivenNameUnion] `query:"given_name"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[UserListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Filter search results to within a particular organization
	OrgName param.Field[string] `query:"org_name"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
}

func (UserListParams) URLQuery added in v0.2.0

func (r UserListParams) URLQuery() (v url.Values)

URLQuery serializes UserListParams's query parameters as `url.Values`.

type UserListParamsEmailArray added in v0.2.0

type UserListParamsEmailArray []string

func (UserListParamsEmailArray) ImplementsUserListParamsEmailUnion added in v0.2.0

func (r UserListParamsEmailArray) ImplementsUserListParamsEmailUnion()

type UserListParamsEmailUnion added in v0.2.0

type UserListParamsEmailUnion interface {
	ImplementsUserListParamsEmailUnion()
}

Email of the user to search for. You may pass the param multiple times to filter for more than one email

Satisfied by shared.UnionString, UserListParamsEmailArray.

type UserListParamsFamilyNameArray added in v0.2.0

type UserListParamsFamilyNameArray []string

func (UserListParamsFamilyNameArray) ImplementsUserListParamsFamilyNameUnion added in v0.2.0

func (r UserListParamsFamilyNameArray) ImplementsUserListParamsFamilyNameUnion()

type UserListParamsFamilyNameUnion added in v0.2.0

type UserListParamsFamilyNameUnion interface {
	ImplementsUserListParamsFamilyNameUnion()
}

Family name of the user to search for. You may pass the param multiple times to filter for more than one family name

Satisfied by shared.UnionString, UserListParamsFamilyNameArray.

type UserListParamsGivenNameArray added in v0.2.0

type UserListParamsGivenNameArray []string

func (UserListParamsGivenNameArray) ImplementsUserListParamsGivenNameUnion added in v0.2.0

func (r UserListParamsGivenNameArray) ImplementsUserListParamsGivenNameUnion()

type UserListParamsGivenNameUnion added in v0.2.0

type UserListParamsGivenNameUnion interface {
	ImplementsUserListParamsGivenNameUnion()
}

Given name of the user to search for. You may pass the param multiple times to filter for more than one given name

Satisfied by shared.UnionString, UserListParamsGivenNameArray.

type UserListParamsIDsArray added in v0.2.0

type UserListParamsIDsArray []string

func (UserListParamsIDsArray) ImplementsUserListParamsIDsUnion added in v0.2.0

func (r UserListParamsIDsArray) ImplementsUserListParamsIDsUnion()

type UserListParamsIDsUnion added in v0.2.0

type UserListParamsIDsUnion interface {
	ImplementsUserListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, UserListParamsIDsArray.

type UserService added in v0.2.0

type UserService struct {
	Options []option.RequestOption
}

UserService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewUserService method instead.

func NewUserService added in v0.2.0

func NewUserService(opts ...option.RequestOption) (r *UserService)

NewUserService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*UserService) Get added in v0.2.0

func (r *UserService) Get(ctx context.Context, userID string, opts ...option.RequestOption) (res *shared.User, err error)

Get a user object by its id

func (*UserService) List added in v0.2.0

List out all users. The users are sorted by creation date, with the most recently-created users coming first

func (*UserService) ListAutoPaging added in v0.2.0

List out all users. The users are sorted by creation date, with the most recently-created users coming first

type View added in v0.2.0

type View = shared.View

This is an alias to an internal type.

type ViewData added in v0.2.0

type ViewData = shared.ViewData

The view definition

This is an alias to an internal type.

type ViewDataParam added in v0.2.0

type ViewDataParam = shared.ViewDataParam

The view definition

This is an alias to an internal type.

type ViewDataSearch added in v0.2.0

type ViewDataSearch = shared.ViewDataSearch

This is an alias to an internal type.

type ViewDataSearchParam added in v0.2.0

type ViewDataSearchParam = shared.ViewDataSearchParam

This is an alias to an internal type.

type ViewDeleteParams added in v0.2.0

type ViewDeleteParams struct {
	// The id of the object the view applies to
	ObjectID param.Field[string] `json:"object_id,required" format:"uuid"`
	// The object type that the ACL applies to
	ObjectType param.Field[shared.ACLObjectType] `json:"object_type,required"`
}

func (ViewDeleteParams) MarshalJSON added in v0.2.0

func (r ViewDeleteParams) MarshalJSON() (data []byte, err error)

type ViewGetParams added in v0.2.0

type ViewGetParams struct {
	// The id of the object the ACL applies to
	ObjectID param.Field[string] `query:"object_id,required" format:"uuid"`
	// The object type that the ACL applies to
	ObjectType param.Field[shared.ACLObjectType] `query:"object_type,required"`
}

func (ViewGetParams) URLQuery added in v0.2.0

func (r ViewGetParams) URLQuery() (v url.Values)

URLQuery serializes ViewGetParams's query parameters as `url.Values`.

type ViewListParams added in v0.2.0

type ViewListParams struct {
	// The id of the object the ACL applies to
	ObjectID param.Field[string] `query:"object_id,required" format:"uuid"`
	// The object type that the ACL applies to
	ObjectType param.Field[shared.ACLObjectType] `query:"object_type,required"`
	// Pagination cursor id.
	//
	// For example, if the initial item in the last page you fetched had an id of
	// `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only
	// pass one of `starting_after` and `ending_before`
	EndingBefore param.Field[string] `query:"ending_before" format:"uuid"`
	// Filter search results to a particular set of object IDs. To specify a list of
	// IDs, include the query param multiple times
	IDs param.Field[ViewListParamsIDsUnion] `query:"ids" format:"uuid"`
	// Limit the number of objects to return
	Limit param.Field[int64] `query:"limit"`
	// Pagination cursor id.
	//
	// For example, if the final item in the last page you fetched had an id of `foo`,
	// pass `starting_after=foo` to fetch the next page. Note: you may only pass one of
	// `starting_after` and `ending_before`
	StartingAfter param.Field[string] `query:"starting_after" format:"uuid"`
	// Name of the view to search for
	ViewName param.Field[string] `query:"view_name"`
	// Type of table that the view corresponds to.
	ViewType param.Field[shared.ViewType] `query:"view_type"`
}

func (ViewListParams) URLQuery added in v0.2.0

func (r ViewListParams) URLQuery() (v url.Values)

URLQuery serializes ViewListParams's query parameters as `url.Values`.

type ViewListParamsIDsArray added in v0.2.0

type ViewListParamsIDsArray []string

func (ViewListParamsIDsArray) ImplementsViewListParamsIDsUnion added in v0.2.0

func (r ViewListParamsIDsArray) ImplementsViewListParamsIDsUnion()

type ViewListParamsIDsUnion added in v0.2.0

type ViewListParamsIDsUnion interface {
	ImplementsViewListParamsIDsUnion()
}

Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times

Satisfied by shared.UnionString, ViewListParamsIDsArray.

type ViewNewParams added in v0.2.0

type ViewNewParams struct {
	// Name of the view
	Name param.Field[string] `json:"name,required"`
	// The id of the object the view applies to
	ObjectID param.Field[string] `json:"object_id,required" format:"uuid"`
	// The object type that the ACL applies to
	ObjectType param.Field[shared.ACLObjectType] `json:"object_type,required"`
	// Type of table that the view corresponds to.
	ViewType param.Field[ViewNewParamsViewType] `json:"view_type,required"`
	// Date of role deletion, or null if the role is still active
	DeletedAt param.Field[time.Time] `json:"deleted_at" format:"date-time"`
	// Options for the view in the app
	Options param.Field[shared.ViewOptionsParam] `json:"options"`
	// Identifies the user who created the view
	UserID param.Field[string] `json:"user_id" format:"uuid"`
	// The view definition
	ViewData param.Field[shared.ViewDataParam] `json:"view_data"`
}

func (ViewNewParams) MarshalJSON added in v0.2.0

func (r ViewNewParams) MarshalJSON() (data []byte, err error)

type ViewNewParamsViewType added in v0.3.0

type ViewNewParamsViewType string

Type of table that the view corresponds to.

const (
	ViewNewParamsViewTypeProjects    ViewNewParamsViewType = "projects"
	ViewNewParamsViewTypeExperiments ViewNewParamsViewType = "experiments"
	ViewNewParamsViewTypeExperiment  ViewNewParamsViewType = "experiment"
	ViewNewParamsViewTypePlaygrounds ViewNewParamsViewType = "playgrounds"
	ViewNewParamsViewTypePlayground  ViewNewParamsViewType = "playground"
	ViewNewParamsViewTypeDatasets    ViewNewParamsViewType = "datasets"
	ViewNewParamsViewTypeDataset     ViewNewParamsViewType = "dataset"
	ViewNewParamsViewTypePrompts     ViewNewParamsViewType = "prompts"
	ViewNewParamsViewTypeTools       ViewNewParamsViewType = "tools"
	ViewNewParamsViewTypeScorers     ViewNewParamsViewType = "scorers"
	ViewNewParamsViewTypeLogs        ViewNewParamsViewType = "logs"
)

func (ViewNewParamsViewType) IsKnown added in v0.3.0

func (r ViewNewParamsViewType) IsKnown() bool

type ViewOptions added in v0.2.0

type ViewOptions = shared.ViewOptions

Options for the view in the app

This is an alias to an internal type.

type ViewOptionsParam added in v0.2.0

type ViewOptionsParam = shared.ViewOptionsParam

Options for the view in the app

This is an alias to an internal type.

type ViewReplaceParams added in v0.2.0

type ViewReplaceParams struct {
	// Name of the view
	Name param.Field[string] `json:"name,required"`
	// The id of the object the view applies to
	ObjectID param.Field[string] `json:"object_id,required" format:"uuid"`
	// The object type that the ACL applies to
	ObjectType param.Field[shared.ACLObjectType] `json:"object_type,required"`
	// Type of table that the view corresponds to.
	ViewType param.Field[ViewReplaceParamsViewType] `json:"view_type,required"`
	// Date of role deletion, or null if the role is still active
	DeletedAt param.Field[time.Time] `json:"deleted_at" format:"date-time"`
	// Options for the view in the app
	Options param.Field[shared.ViewOptionsParam] `json:"options"`
	// Identifies the user who created the view
	UserID param.Field[string] `json:"user_id" format:"uuid"`
	// The view definition
	ViewData param.Field[shared.ViewDataParam] `json:"view_data"`
}

func (ViewReplaceParams) MarshalJSON added in v0.2.0

func (r ViewReplaceParams) MarshalJSON() (data []byte, err error)

type ViewReplaceParamsViewType added in v0.3.0

type ViewReplaceParamsViewType string

Type of table that the view corresponds to.

const (
	ViewReplaceParamsViewTypeProjects    ViewReplaceParamsViewType = "projects"
	ViewReplaceParamsViewTypeExperiments ViewReplaceParamsViewType = "experiments"
	ViewReplaceParamsViewTypeExperiment  ViewReplaceParamsViewType = "experiment"
	ViewReplaceParamsViewTypePlaygrounds ViewReplaceParamsViewType = "playgrounds"
	ViewReplaceParamsViewTypePlayground  ViewReplaceParamsViewType = "playground"
	ViewReplaceParamsViewTypeDatasets    ViewReplaceParamsViewType = "datasets"
	ViewReplaceParamsViewTypeDataset     ViewReplaceParamsViewType = "dataset"
	ViewReplaceParamsViewTypePrompts     ViewReplaceParamsViewType = "prompts"
	ViewReplaceParamsViewTypeTools       ViewReplaceParamsViewType = "tools"
	ViewReplaceParamsViewTypeScorers     ViewReplaceParamsViewType = "scorers"
	ViewReplaceParamsViewTypeLogs        ViewReplaceParamsViewType = "logs"
)

func (ViewReplaceParamsViewType) IsKnown added in v0.3.0

func (r ViewReplaceParamsViewType) IsKnown() bool

type ViewService added in v0.2.0

type ViewService struct {
	Options []option.RequestOption
}

ViewService contains methods and other services that help with interacting with the braintrust API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewViewService method instead.

func NewViewService added in v0.2.0

func NewViewService(opts ...option.RequestOption) (r *ViewService)

NewViewService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*ViewService) Delete added in v0.2.0

func (r *ViewService) Delete(ctx context.Context, viewID string, body ViewDeleteParams, opts ...option.RequestOption) (res *shared.View, err error)

Delete a view object by its id

func (*ViewService) Get added in v0.2.0

func (r *ViewService) Get(ctx context.Context, viewID string, query ViewGetParams, opts ...option.RequestOption) (res *shared.View, err error)

Get a view object by its id

func (*ViewService) List added in v0.2.0

List out all views. The views are sorted by creation date, with the most recently-created views coming first

func (*ViewService) ListAutoPaging added in v0.2.0

List out all views. The views are sorted by creation date, with the most recently-created views coming first

func (*ViewService) New added in v0.2.0

func (r *ViewService) New(ctx context.Context, body ViewNewParams, opts ...option.RequestOption) (res *shared.View, err error)

Create a new view. If there is an existing view with the same name as the one specified in the request, will return the existing view unmodified

func (*ViewService) Replace added in v0.2.0

func (r *ViewService) Replace(ctx context.Context, body ViewReplaceParams, opts ...option.RequestOption) (res *shared.View, err error)

Create or replace view. If there is an existing view with the same name as the one specified in the request, will replace the existing view with the provided fields

func (*ViewService) Update added in v0.2.0

func (r *ViewService) Update(ctx context.Context, viewID string, body ViewUpdateParams, opts ...option.RequestOption) (res *shared.View, err error)

Partially update a view object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.

type ViewType added in v0.7.0

type ViewType = shared.ViewType

Type of table that the view corresponds to.

This is an alias to an internal type.

type ViewUpdateParams added in v0.2.0

type ViewUpdateParams struct {
	// The id of the object the view applies to
	ObjectID param.Field[string] `json:"object_id,required" format:"uuid"`
	// The object type that the ACL applies to
	ObjectType param.Field[shared.ACLObjectType] `json:"object_type,required"`
	// Name of the view
	Name param.Field[string] `json:"name"`
	// Options for the view in the app
	Options param.Field[shared.ViewOptionsParam] `json:"options"`
	// Identifies the user who created the view
	UserID param.Field[string] `json:"user_id" format:"uuid"`
	// The view definition
	ViewData param.Field[shared.ViewDataParam] `json:"view_data"`
	// Type of table that the view corresponds to.
	ViewType param.Field[ViewUpdateParamsViewType] `json:"view_type"`
}

func (ViewUpdateParams) MarshalJSON added in v0.2.0

func (r ViewUpdateParams) MarshalJSON() (data []byte, err error)

type ViewUpdateParamsViewType added in v0.3.0

type ViewUpdateParamsViewType string

Type of table that the view corresponds to.

const (
	ViewUpdateParamsViewTypeProjects    ViewUpdateParamsViewType = "projects"
	ViewUpdateParamsViewTypeExperiments ViewUpdateParamsViewType = "experiments"
	ViewUpdateParamsViewTypeExperiment  ViewUpdateParamsViewType = "experiment"
	ViewUpdateParamsViewTypePlaygrounds ViewUpdateParamsViewType = "playgrounds"
	ViewUpdateParamsViewTypePlayground  ViewUpdateParamsViewType = "playground"
	ViewUpdateParamsViewTypeDatasets    ViewUpdateParamsViewType = "datasets"
	ViewUpdateParamsViewTypeDataset     ViewUpdateParamsViewType = "dataset"
	ViewUpdateParamsViewTypePrompts     ViewUpdateParamsViewType = "prompts"
	ViewUpdateParamsViewTypeTools       ViewUpdateParamsViewType = "tools"
	ViewUpdateParamsViewTypeScorers     ViewUpdateParamsViewType = "scorers"
	ViewUpdateParamsViewTypeLogs        ViewUpdateParamsViewType = "logs"
)

func (ViewUpdateParamsViewType) IsKnown added in v0.3.0

func (r ViewUpdateParamsViewType) IsKnown() bool

type ViewViewType added in v0.2.0

type ViewViewType = shared.ViewViewType

Type of table that the view corresponds to.

This is an alias to an internal type.

Directories

Path Synopsis
packages

Jump to

Keyboard shortcuts

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