engine

package
v0.8.1 Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2024 License: Apache-2.0 Imports: 25 Imported by: 1

Documentation

Index

Constants

View Source
const DaemonURLSuffix = ".daemon.gptscript.local"

Variables

View Source
var (
	SupportedMIMETypes     = []string{"application/json", "text/plain", "multipart/form-data"}
	SupportedSecurityTypes = []string{"apiKey", "http"}
)

Functions

func CloseDaemons

func CloseDaemons()

func SetPorts added in v0.7.1

func SetPorts(start, end int64)

func WithToolCategory added in v0.7.0

func WithToolCategory(ctx context.Context, toolCategory ToolCategory) context.Context

Types

type Call

type Call struct {
	ToolID string `json:"toolID,omitempty"`
	Input  string `json:"input,omitempty"`
}

type CallContext added in v0.6.0

type CallContext struct {
	ToolName    string `json:"toolName,omitempty"`
	ParentID    string `json:"parentID,omitempty"`
	DisplayText string `json:"displayText,omitempty"`
	// contains filtered or unexported fields
}

type CallResult

type CallResult struct {
	ToolID string `json:"toolID,omitempty"`
	CallID string `json:"callID,omitempty"`
	Result string `json:"result,omitempty"`
	User   string `json:"user,omitempty"`
}

type ChatHistory added in v0.7.0

type ChatHistory struct {
	History []ChatHistoryCall `json:"history,omitempty"`
}

type ChatHistoryCall added in v0.7.0

type ChatHistoryCall struct {
	ID         string                  `json:"id,omitempty"`
	Tool       types.Tool              `json:"tool,omitempty"`
	Completion types.CompletionRequest `json:"completion,omitempty"`
}

type Context

type Context struct {
	Ctx        context.Context
	Parent     *Context
	LastReturn *Return
	Program    *types.Program
	// Input is saved only so that we can render display text, don't use otherwise
	Input string
	// contains filtered or unexported fields
}

func FromContext added in v0.4.2

func FromContext(ctx context.Context) (*Context, bool)

func NewContext

func NewContext(ctx context.Context, prg *types.Program, input string) Context

func (*Context) GetCallContext added in v0.6.0

func (c *Context) GetCallContext() *CallContext

func (*Context) MarshalJSON

func (c *Context) MarshalJSON() ([]byte, error)

func (*Context) ParentID

func (c *Context) ParentID() string

func (*Context) SubCall

func (c *Context) SubCall(ctx context.Context, input, toolID, callID string, toolCategory ToolCategory) (Context, error)

func (*Context) UnmarshalJSON

func (c *Context) UnmarshalJSON([]byte) error

func (*Context) WrappedContext added in v0.4.2

func (c *Context) WrappedContext() context.Context

type Engine

type Engine struct {
	Model          Model
	RuntimeManager RuntimeManager
	Env            []string
	Progress       chan<- types.CompletionStatus
}

func (*Engine) Continue

func (e *Engine) Continue(ctx Context, state *State, results ...CallResult) (*Return, error)

func (*Engine) Start

func (e *Engine) Start(ctx Context, input string) (ret *Return, _ error)

type InputContext added in v0.5.0

type InputContext struct {
	ToolID  string `json:"toolID,omitempty"`
	Content string `json:"content,omitempty"`
}

type Model added in v0.1.4

type Model interface {
	Call(ctx context.Context, messageRequest types.CompletionRequest, status chan<- types.CompletionStatus) (*types.CompletionMessage, error)
}

type OpenAPIInstructions added in v0.4.0

type OpenAPIInstructions struct {
	Server           string           `json:"server"`
	Path             string           `json:"path"`
	Method           string           `json:"method"`
	BodyContentMIME  string           `json:"bodyContentMIME"`
	SecurityInfos    [][]SecurityInfo `json:"apiKeyInfos"`
	QueryParameters  []Parameter      `json:"queryParameters"`
	PathParameters   []Parameter      `json:"pathParameters"`
	HeaderParameters []Parameter      `json:"headerParameters"`
	CookieParameters []Parameter      `json:"cookieParameters"`
}

type Parameter added in v0.4.0

type Parameter struct {
	Name    string `json:"name"`
	Style   string `json:"style"`
	Explode *bool  `json:"explode"`
}

type Ports added in v0.4.0

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

type Return

type Return struct {
	State  *State          `json:"state,omitempty"`
	Calls  map[string]Call `json:"calls,omitempty"`
	Result *string         `json:"result,omitempty"`
}

type RuntimeManager added in v0.2.0

type RuntimeManager interface {
	GetContext(ctx context.Context, tool types.Tool, cmd, env []string) (string, []string, error)
}

type SecurityInfo added in v0.4.0

type SecurityInfo struct {
	Name       string `json:"name"`       // name as defined in the security schemes
	Type       string `json:"type"`       // http or apiKey
	Scheme     string `json:"scheme"`     // bearer or basic, for type==http
	APIKeyName string `json:"apiKeyName"` // name of the API key, for type==apiKey
	In         string `json:"in"`         // header, query, or cookie, for type==apiKey
}

A SecurityInfo represents a security scheme in OpenAPI.

type State

type State struct {
	Input      string                              `json:"input,omitempty"`
	Completion types.CompletionRequest             `json:"completion,omitempty"`
	Pending    map[string]types.CompletionToolCall `json:"pending,omitempty"`
	Results    map[string]CallResult               `json:"results,omitempty"`
}

type ToolCategory added in v0.6.0

type ToolCategory string
const (
	ProviderToolCategory   ToolCategory = "provider"
	CredentialToolCategory ToolCategory = "credential"
	ContextToolCategory    ToolCategory = "context"
	NoCategory             ToolCategory = ""
)

Jump to

Keyboard shortcuts

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