Help us shape the future of Go! Take the 2026 Go Developer Survey

sharedtypes

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2026 License: MIT Imports: 11 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ACSSearchResponse

type ACSSearchResponse struct {
	Physics             string  `json:"physics"`
	SourceTitleLvl3     string  `json:"sourceTitle_lvl3"`
	SourceURLLvl3       string  `json:"sourceURL_lvl3"`
	TokenSize           int     `json:"tokenSize"`
	SourceTitleLvl2     string  `json:"sourceTitle_lvl2"`
	Weight              float64 `json:"weight"`
	SourceURLLvl2       string  `json:"sourceURL_lvl2"`
	Product             string  `json:"product"`
	Content             string  `json:"content"`
	TypeOFasset         string  `json:"typeOFasset"`
	Version             string  `json:"version"`
	SearchScore         float64 `json:"@search.score"`
	SearchRerankerScore float64 `json:"@search.rerankerScore"`
	IndexName           string  `json:"indexName"`
}

ACSSearchResponse represents the response from the ACS search.

type AnsysGPTCitation

type AnsysGPTCitation struct {
	Title     string  `json:"Title"`
	URL       string  `json:"URL"`
	Relevance float64 `json:"Relevance"`
}

AnsysGPTCitation represents the citation from the AnsysGPT.

type AnsysGPTDefaultFields

type AnsysGPTDefaultFields struct {
	QueryWord         string
	FieldName         string
	FieldDefaultValue string
}

DefaultFields represents the default fields for the user query.

type AnsysGPTRetrieverModuleChunk added in v1.0.3

type AnsysGPTRetrieverModuleChunk struct {
	Captions        string  `json:"@search.captions"`
	Highlights      string  `json:"@search.highlights"`
	RerankerScore   float64 `json:"@search.reranker_score"`
	Score           float64 `json:"@search.score"`
	Content         string  `json:"content"`
	IndexName       string  `json:"index_name"`
	Physics         string  `json:"physics"`
	Product         string  `json:"product"`
	SourceTitleLvl2 string  `json:"sourceTitle_lvl2"`
	SourceTitleLvl3 string  `json:"sourceTitle_lvl3"`
	SourceUrlLvl2   string  `json:"sourceURL_lvl2"`
	SourceUrlLvl3   string  `json:"sourceURL_lvl3"`
	TokenSize       int     `json:"token_size"`
	TypeOfAsset     string  `json:"typeOFasset"`
	Version         string  `json:"version"`
	Weight          float64 `json:"weight"`
}

RetrieverModuleChunk represents a chunk of data context received from the retriever module.

type CodeGenerationElement

type CodeGenerationElement struct {
	Guid uuid.UUID          `json:"guid"`
	Type CodeGenerationType `json:"type"`

	NamePseudocode string `json:"name_pseudocode"` // Function name without dependencies
	NameFormatted  string `json:"name_formatted"`  // Name of the function with spaces and without parameters
	Description    string `json:"description"`

	Name              string   `json:"name"`
	Dependencies      []string `json:"dependencies"`
	Summary           string   `json:"summary"`
	ReturnType        string   `json:"return"`
	ReturnElementList []string `json:"return_element_list"`
	ReturnDescription string   `json:"return_description"` // Return description
	Remarks           string   `json:"remarks"`

	// Only for type "function" or "method"
	Parameters []XMLMemberParam `json:"parameters"`
	Example    XMLMemberExample `json:"example"`

	// Only for type "enum"
	EnumValues []string `json:"enum_values"`

	// Metadata for databases
	VectorDBMetadata any `json:"vector_db_metadata,omitempty"` // Optional metadata for vector databases
	GraphDBMetadata  any `json:"graph_db_metadata,omitempty"`  // Optional metadata for graph databases
}

type CodeGenerationExample

type CodeGenerationExample struct {
	Guid                   uuid.UUID         `json:"guid"`
	Name                   string            `json:"name"`
	Dependencies           []string          `json:"dependencies"`
	DependencyEquivalences map[string]string `json:"dependency_equivalences"`
	Chunks                 []string          `json:"chunks"`
}

type CodeGenerationType

type CodeGenerationType string

Enum values for CodeGenerationType

const (
	Function  CodeGenerationType = "Function"
	Method    CodeGenerationType = "Method"
	Class     CodeGenerationType = "Class"
	Parameter CodeGenerationType = "Parameter"
	Enum      CodeGenerationType = "Enum"
	Module    CodeGenerationType = "Module"
)

type CodeGenerationUserGuideSection

type CodeGenerationUserGuideSection struct {
	Name            string   `json:"name"`
	Title           string   `json:"title"`
	IsFirstChild    bool     `json:"is_first_child"`
	NextSibling     string   `json:"next_sibling"`
	NextParent      string   `json:"next_parent"`
	DocumentName    string   `json:"document_name"`
	Parent          string   `json:"parent"`
	Content         string   `json:"content"`
	Level           int      `json:"level"`
	Link            string   `json:"link"`
	ReferencedLinks []string `json:"referenced_links"`
	Chunks          []string `json:"chunks"`
}

type ConversationHistoryMessage

type ConversationHistoryMessage struct {
	MessageId        string   `json:"message_id"`
	Role             string   `json:"role"`
	Content          string   `json:"content"`
	Images           []string `json:"images"` // image in base64 format
	PositiveFeedback bool     `json:"positive_feedback"`
	NegativeFeedback bool     `json:"negative_feedback"`
	FeedbackText     string   `json:"feedback_text,omitempty"` // Optional feedback text
}

ConversationHistoryMessage is a structure that contains the message ID, role, content, and images of a conversation history message.

type DBListCollectionsOutput

type DBListCollectionsOutput struct {
	Success     bool     `json:"success" description:"Returns true if the collections were listed successfully. Returns false or an error if not."`
	Collections []string `json:"collections" description:"A list of collection names."`
}

DBListCollectionsOutput represents the output of listing collections in the database.

type DataExtractionDocumentData

type DataExtractionDocumentData struct {
	DocumentName      string    `json:"documentName"`
	DocumentId        string    `json:"documentId"`
	Guid              uuid.UUID `json:"guid"`
	Level             string    `json:"level"`
	ChildIds          []string  `json:"childIds"`
	ParentId          string    `json:"parentId"`
	PreviousSiblingId string    `json:"previousSiblingId"`
	NextSiblingId     string    `json:"nextSiblingId"`
	LastChildId       string    `json:"lastChildId"`
	FirstChildId      string    `json:"firstChildId"`
	Text              string    `json:"text"`
	Keywords          []string  `json:"keywords"`
	Summary           string    `json:"summary"`
	Embedding         []float32 `json:"embedding"`
}

DataExtractionDocumentData represents the data extracted from a document.

type DbAddDataInput

type DbAddDataInput struct {
	CollectionName string   `` /* 142-byte string literal not displayed */
	Data           []DbData `json:"data" description:"Data objects to be added to the DB." required:"true"`
}

DbAddDataInput represents the input for adding data to the database.

type DbAddDataOutput

type DbAddDataOutput struct {
	Success             bool   `json:"success" description:"Returns true if the data was added successfully. Returns false or an error if not."`
	IgnoredObjectsCount int    `json:"ignored_objects_count" description:"Number of ignored documents."`
	Error               string `json:"error" description:"Error message if the collection could not be created."`
}

DbAddDataOutput represents the output of adding data to the database.

type DbArrayFilter

type DbArrayFilter struct {
	NeedAll    bool     `json:"needAll"`
	FilterData []string `json:"filterData"`
}

DbArrayFilter represents the filter for an array field in the database.

type DbCreateCollectionInput

type DbCreateCollectionInput struct {
	CollectionName string `` /* 142-byte string literal not displayed */
}

DbCreateCollectionInput represents the input for creating a collection in the database.

type DbCreateCollectionOutput

type DbCreateCollectionOutput struct {
	Success bool   `json:"success" description:"Returns true if the collection was created successfully. Returns false or an error if not."`
	Error   string `json:"error" description:"Error message if the collection could not be created."`
}

DbCreateCollectionOutput represents the output of creating a collection in the database.

type DbData

type DbData struct {
	Guid              uuid.UUID              `json:"guid"`
	DocumentId        string                 `json:"document_id"`
	DocumentName      string                 `json:"document_name"`
	Text              string                 `json:"text"`
	Keywords          []string               `json:"keywords"`
	Summary           string                 `json:"summary"`
	Embedding         []float32              `json:"embeddings"`
	Tags              []string               `json:"tags"`
	Metadata          map[string]interface{} `json:"metadata"`
	ParentId          *uuid.UUID             `json:"parent_id"`
	ChildIds          []uuid.UUID            `json:"child_ids"`
	PreviousSiblingId *uuid.UUID             `json:"previous_sibling_id"`
	NextSiblingId     *uuid.UUID             `json:"next_sibling_id"`
	LastChildId       *uuid.UUID             `json:"last_child_id"`
	FirstChildId      *uuid.UUID             `json:"first_child_id"`
	Level             int                    `json:"level"`
	HasNeo4jEntry     bool                   `json:"has_neo4j_entry"`
}

DbData represents the data stored in the database.

type DbFilters

type DbFilters struct {
	// Filters for string fields
	GuidFilter         []string `json:"guid,omitempty"`
	DocumentIdFilter   []string `json:"document_id,omitempty"`
	DocumentNameFilter []string `json:"document_name,omitempty"`
	LevelFilter        []string `json:"level,omitempty"`

	// Filters for array fields
	TagsFilter     DbArrayFilter `json:"tags,omitempty"`
	KeywordsFilter DbArrayFilter `json:"keywords,omitempty"`

	// Filters for JSON fields
	MetadataFilter []DbJsonFilter `json:"metadata,omitempty"`
}

DbFilters represents the filters for the database.

type DbJsonFilter

type DbJsonFilter struct {
	FieldName  string   `json:"fieldName"`
	FieldType  string   `json:"fieldType" description:"Can be either string or array."` // "string" or "array"
	FilterData []string `json:"filterData"`
	NeedAll    bool     `json:"needAll" description:"Only needed if the FieldType is array."` // only needed for array fields
}

DbJsonFilter represents the filter for a JSON field in the database.

type DbResponse

type DbResponse struct {
	// Standard DbResponse fields
	Guid              uuid.UUID              `json:"guid"`
	DocumentId        string                 `json:"document_id"`
	DocumentName      string                 `json:"document_name"`
	Text              string                 `json:"text"`
	Keywords          []string               `json:"keywords"`
	Summary           string                 `json:"summary"`
	Embedding         []float32              `json:"embeddings"`
	Tags              []string               `json:"tags"`
	Metadata          map[string]interface{} `json:"metadata"`
	ParentId          *uuid.UUID             `json:"parent_id"`
	ChildIds          []uuid.UUID            `json:"child_ids"`
	PreviousSiblingId *uuid.UUID             `json:"previous_sibling_id"`
	NextSiblingId     *uuid.UUID             `json:"next_sibling_id"`
	LastChildId       *uuid.UUID             `json:"last_child_id"`
	FirstChildId      *uuid.UUID             `json:"first_child_id"`
	Distance          float64                `json:"distance"`
	Level             int                    `json:"level"`
	HasNeo4jEntry     bool                   `json:"has_neo4j_entry"`

	// Siblings
	Parent    *DbData  `json:"parent,omitempty"`
	Children  []DbData `json:"children,omitempty"`
	LeafNodes []DbData `json:"leaf_nodes,omitempty"`
	Siblings  []DbData `json:"siblings,omitempty"`

	// From StoreElementsInVectorDatabase payload
	Type           string `json:"type,omitempty"`
	NamePseudocode string `json:"name_pseudocode,omitempty"`
	NameFormatted  string `json:"name_formatted,omitempty"`
	Name           string `json:"name,omitempty"`
	ParentClass    string `json:"parent_class,omitempty"`

	// From StoreExamplesInVectorDatabase payload
	Dependencies           []interface{}          `json:"dependencies,omitempty"`
	DependencyEquivalences map[string]interface{} `json:"dependency_equivalences,omitempty"`
	PreviousChunk          string                 `json:"previous_chunk,omitempty"`
	NextChunk              string                 `json:"next_chunk,omitempty"`

	// From StoreUserGuideSectionsInVectorDatabase payload
	SectionName       string `json:"section_name,omitempty"`
	Title             string `json:"title,omitempty"`
	ParentSectionName string `json:"parent_section_name,omitempty"`
}

DbResponse can accommodate non-conflicting data from: - StoreElementsInVectorDatabase (API/Element data) - StoreExamplesInVectorDatabase (Example data) - StoreUserGuideSectionsInVectorDatabase (User guide data) - Standard document data

type DiscoveryAttachment added in v1.0.5

type DiscoveryAttachment struct {
	FileName string `json:"fileName"`
	Data     []byte `json:"data"`
}

Attachment holds auxiliary binary payloads (e.g., base64-encoded uploads).

type DiscoveryBoundaryCondition added in v1.0.5

type DiscoveryBoundaryCondition struct {
	ProxyGuid  string                 `json:"proxyGuid"`
	ProxyLabel string                 `json:"proxyLabel"`
	Type       string                 `json:"type"`
	Details    map[string]interface{} `json:"details,omitempty"`
}

BoundaryCondition represents physics constraints for the simulation.

type DiscoveryDimensions added in v1.0.5

type DiscoveryDimensions struct {
	X     float64 `json:"x"`
	Y     float64 `json:"y"`
	Z     float64 `json:"z"`
	Units string  `json:"units"`
}

Dimensions defines spatial extents and their units.

type DiscoveryMaterial added in v1.0.5

type DiscoveryMaterial struct {
	Guid    string                 `json:"guid"`
	Label   string                 `json:"label"`
	State   string                 `json:"state"`
	Details map[string]interface{} `json:"details,omitempty"`
}

Material describes a labeled material state.

type DiscoveryMonitors added in v1.0.5

type DiscoveryMonitors struct {
	ProxyGuid  string                 `json:"proxyGuid"`
	ProxyLabel string                 `json:"proxyLabel"`
	Details    map[string]interface{} `json:"details"`
}

type DiscoverySimulationInput added in v1.0.5

type DiscoverySimulationInput struct {
	SimulationName     string                       `json:"simulationName"`
	SimulationType     string                       `json:"simulationType"`
	Model              string                       `json:"model"`
	Objective          string                       `json:"objective"`
	UserID             string                       `json:"userId"`
	OtherInformation   string                       `json:"otherInformation,omitempty"`
	Dimensions         DiscoveryDimensions          `json:"dimensions"`
	Materials          []DiscoveryMaterial          `json:"materials"`
	BoundaryConditions []DiscoveryBoundaryCondition `json:"boundaryConditions"`
	Attachments        []DiscoveryAttachment        `json:"attachments,omitempty"`
	Monitors           []DiscoveryMonitors          `json:"monitors,omitempty"`
}

SimulationInput captures the schema for simulation validation payloads.

type EmbeddingOptions

type EmbeddingOptions struct {
	ReturnDense   *bool `json:"returnDense"`   // Include dense vectors in response
	ReturnSparse  *bool `json:"returnSparse"`  // Include lexical weights in response
	ReturnColbert *bool `json:"returnColbert"` // Include colbert vectors in response
}

EmbeddingOptions represents the options for an embeddings request.

type EmbeddingResult added in v1.0.3

type EmbeddingResult struct {
	Dense  []float32
	Sparse map[uint]float32
}

EmbeddingResult holds both dense and sparse embeddings

type ErrorResponse

type ErrorResponse struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
}

ErrorResponse represents the error response sent to the client when something fails during the processing of the request.

type ExecRequest

type ExecRequest struct {
	Type                 string                       `json:"type"`   // "code", "flowkit"
	Action               string                       `json:"action"` // type "code":"execute", "append", "cancel", "status"; for type "flowkit": "<functionName>"
	InstructionGuid      string                       `json:"instructionGuid"`
	ExecutionInstruction *ExecutionInstruction        `json:"executionInstruction"` // only for type "code"
	Inputs               map[string]FilledInputOutput `json:"inputs"`               // only for type "flowkit"
}

ExecRequest represents the requests that can be sent to aali-exec

type ExecResponse

type ExecResponse struct {
	Type             string                       `json:"type"` // "status", "flowkit", "file", "error"
	InstructionGuid  string                       `json:"instructionGuid"`
	Error            *ErrorResponse               `json:"error,omitempty"`
	ExecutionDetails *ExecutionDetails            `json:"executionDetails,omitempty"`
	FileDetails      *FileDetails                 `json:"fileDetails,omitempty"`
	Outputs          map[string]FilledInputOutput `json:"outputs"` // only for type "flowkit"
}

ExecResponse represents the response that aali-exec sends back

type ExecutionDetails

type ExecutionDetails struct {
	InstructionGuid     string        `json:"instructionGuid"`
	ClientGuid          string        `json:"clientGuid"`
	StartTime           time.Time     `json:"startTime"`
	TimeoutAt           time.Time     `json:"timeoutAt"`
	Response            string        `json:"response"`
	Status              string        `json:"status"` // "started", "running", "completed", "failed"
	LastResponseDiff    string        `json:"lastResponseDiff"`
	InterruptionChannel chan bool     `json:"-"`
	StdinChannel        chan []string `json:"-"`
	Cancelled           bool          `json:"-"`
}

ExecutionDetails represents the details of the execution

type ExecutionInstruction

type ExecutionInstruction struct {
	CodeType       string   `json:"codeType"` // "python", "bash"
	Code           []string `json:"code"`
	VenvExecutable string   `json:"venvExecutable"`
}

ExecutionInstruction contain an array of strings that represent the code to be executed in aali-exec

type Feedback

type Feedback struct {
	ConversationHistory []ConversationHistoryMessage `json:"conversation"`
	MessageId           string                       `json:"message_id"`
	AddPositive         bool                         `json:"add_positive"`
	AddNegative         bool                         `json:"add_negative"`
	RemovePositive      bool                         `json:"remove_positive"`
	RemoveNegative      bool                         `json:"remove_negative"`
	FeedbackText        string                       `json:"feedback_text,omitempty"` // Optional feedback text
}

Feedback is a structure that contains the conversation history, message ID, and feedback options of a workflow feedback.

type FileDetails

type FileDetails struct {
	FileName        string `json:"fileName"`
	FileSize        int64  `json:"fileSize"`
	FileChunkNumber int    `json:"fileChunkNumber"`
	FileChunk       []byte `json:"fileChunk"`
	IsLastChunk     bool   `json:"isLastChunk"`
}

FileDetails contain parts of a file that is being sent

type FilledInputOutput

type FilledInputOutput struct {
	Name   string      `json:"name" yaml:"name"`
	GoType string      `json:"go_type" yaml:"go_type"`
	Value  interface{} `json:"value" yaml:"value"`
}

FilledInputOutput is a struct that contains the name, go type and value of a filled input/output

type FlowKitPythonFunction

type FlowKitPythonFunction struct {
	Name        string           `json:"name"`
	Path        string           `json:"path"`
	Description string           `json:"description"`
	Category    string           `json:"category"`
	DisplayName string           `json:"display_name"`
	Inputs      []FunctionInput  `json:"inputs"`
	Outputs     []FunctionOutput `json:"outputs"`
	Definitions interface{}      `json:"definitions"`
}

FlowKitPythonFunction is a struct that contains the name, path, description, inputs, outputs and definitions of a FlowKit-Python function

type FunctionDefinition

type FunctionDefinition struct {
	Name             string           `json:"name" yaml:"name"`
	FlowkitUrl       string           `json:"flowkit_url" yaml:"flowkit_url"` // URL of the connected FlowKit server containing this function
	ApiKey           string           `json:"api_key" yaml:"api_key"`         // API key for the FlowKit server
	DisplayName      string           `json:"display_name" yaml:"display_name"`
	Description      string           `json:"description" yaml:"description"`
	Category         string           `json:"category" yaml:"category"` // "data_extraction", "generic", "knowledge_db", "llm_handler", "ansys_gpt"
	Type             string           `json:"type" yaml:"type"`         // "go", "python"
	Path             string           `json:"path" yaml:"path"`         // only for python functions
	Inputs           []FunctionInput  `json:"inputs" yaml:"inputs"`
	Outputs          []FunctionOutput `json:"outputs" yaml:"outputs"`
	DeprecatedParams []string         `json:"deprecated_params" yaml:"deprecated_params"` // list of deprecated parameter names
}

FunctionDefinition is a struct that contains the id, name, description, package, inputs and outputs of a function

type FunctionDefinitionShort

type FunctionDefinitionShort struct {
	Name             string           `json:"name" yaml:"name"`
	FlowkitUrl       string           `json:"flowkit_url" yaml:"flowkit_url"` // URL of the connected FlowKit server containing this function
	DisplayName      string           `json:"display_name" yaml:"display_name"`
	Description      string           `json:"description" yaml:"description"`
	Category         string           `json:"category" yaml:"category"` // "data_extraction", "generic", "knowledge_db", "llm_handler", "ansys_gpt"
	Type             string           `json:"type" yaml:"type"`         // "go", "python"
	Path             string           `json:"path" yaml:"path"`         // only for python functions
	Inputs           []FunctionInput  `json:"inputs" yaml:"inputs"`
	Outputs          []FunctionOutput `json:"outputs" yaml:"outputs"`
	DeprecatedParams []string         `json:"deprecated_params" yaml:"deprecated_params"` // list of deprecated parameter names
}

FunctionDefinitionShort is equivalent to FunctionDefinition but without the API key (used for aali-agent rest API)

type FunctionInput

type FunctionInput struct {
	Name    string   `json:"name" yaml:"name"`
	Type    string   `json:"type" yaml:"type"` // string, number, boolean, json
	GoType  string   `json:"go_type" yaml:"go_type"`
	Options []string `json:"options" yaml:"options"` // only applicable if not empty
}

FunctionInput is a struct that contains the name, type, go type and options of a function input

type FunctionOutput

type FunctionOutput struct {
	Name   string `json:"name" yaml:"name"`
	Type   string `json:"type" yaml:"type"` // string, number, boolean, json
	GoType string `json:"go_type" yaml:"go_type"`
}

FunctionOutput is a struct that contains the name, type and go type of a function output

type GeneralNeo4jQueryInput

type GeneralNeo4jQueryInput struct {
	Query string `json:"query" description:"Neo4j query to be executed. Required for executing a query." required:"true"`
}

GeneralNeo4jQueryInput represents the input for executing a Neo4j query.

type GeneralNeo4jQueryOutput

type GeneralNeo4jQueryOutput struct {
	Success  bool          `json:"success" description:"Returns true if the query was executed successfully. Returns false or an error if not."`
	Response Neo4jResponse `json:"response" description:"Summary and records of the query execution."`
}

GeneralNeo4jQueryOutput represents the output of executing a Neo4j query.

type GraphDbValueType added in v1.0.3

type GraphDbValueType string
const (
	Bool         GraphDbValueType = "bool"
	Int64        GraphDbValueType = "int64"
	Int32        GraphDbValueType = "int32"
	Int16        GraphDbValueType = "int16"
	Int8         GraphDbValueType = "int8"
	UInt64       GraphDbValueType = "uint64"
	UInt32       GraphDbValueType = "uint32"
	UInt16       GraphDbValueType = "uint16"
	UInt8        GraphDbValueType = "uint8"
	Int128       GraphDbValueType = "int128"
	Double       GraphDbValueType = "double"
	Float        GraphDbValueType = "float"
	Date         GraphDbValueType = "date"
	Interval     GraphDbValueType = "interval"
	Timestamp    GraphDbValueType = "timestamp"
	TimestampTz  GraphDbValueType = "timestamptz"
	TimestampNs  GraphDbValueType = "timestampns"
	TimestampMs  GraphDbValueType = "timestampms"
	TimestampSec GraphDbValueType = "timestampsec"
	String       GraphDbValueType = "string"
	Blob         GraphDbValueType = "blob"
	Struct       GraphDbValueType = "struct"
	UUID         GraphDbValueType = "uuid"
	Decimal      GraphDbValueType = "decimal"
)

some types don't really make sense to be parsed in the aali flowkit context. These are not included here: - Null - InternalID - List/Array (would require somehow parsing/infering the LogicalType as well) - Struct (would require knowing type of each value) - Node/Rel/RecursiveRel - Map - Union

func (GraphDbValueType) Parse added in v1.0.3

func (valType GraphDbValueType) Parse(val string) (aali_graphdb.Value, error)

type HandlerRequest

type HandlerRequest struct {
	Adapter             string            `json:"adapter"` // "chat", "embeddings"
	InstructionGuid     string            `json:"instructionGuid"`
	ModelIds            []string          `json:"modelIds"`                   // optional model ids to define a set of specific models to be used for this request
	ModelCategory       []string          `json:"modelCategory"`              // optional model category; define one or more categories to filter models; models of the specified categories from first to last will be used for this request if available
	Data                interface{}       `json:"data"`                       // for embeddings, this can be a string or []string; for chat, only string is allowed
	Images              []string          `json:"images"`                     // List of images in base64 format
	MCPTools            []MCPTool         `json:"mcpTools,omitempty"`         // MCP tool definitions for tool calling support
	ChatRequestType     string            `json:"chatRequestType"`            // "summary", "code", "keywords", "general"; only relevant if "adapter" is "chat"
	DataStream          bool              `json:"dataStream"`                 // only relevant if "adapter" is "chat"
	MaxNumberOfKeywords uint32            `json:"maxNumberOfKeywords"`        // only relevant if "chatRequestType" is "keywords"
	IsConversation      bool              `json:"isConversation"`             // only relevant if "chatRequestType" is "code"
	ConversationHistory []HistoricMessage `json:"conversationHistory"`        // only relevant if "isConversation" is true
	GeneralContext      string            `json:"generalContext"`             // any added context you might need
	MsgContext          string            `json:"msgContext"`                 // any added context you might need
	SystemPrompt        interface{}       `json:"systemPrompt"`               // only relevant if "chatRequestType" is "general"
	ModelOptions        ModelOptions      `json:"modelOptions,omitempty"`     // only relevant if "adapter" is "chat"
	EmbeddingOptions    EmbeddingOptions  `json:"embeddingOptions,omitempty"` // only relevant if "adapter" is "embeddings"
}

HandlerRequest represents the client request for a specific chat or embeddings operation.

type HandlerResponse

type HandlerResponse struct {
	// Common properties
	InstructionGuid string `json:"instructionGuid"`
	Type            string `json:"type"` // "info", "error", "chat", "embeddings"

	// Chat properties
	IsLast           *bool      `json:"isLast,omitempty"`
	Position         *uint32    `json:"position,omitempty"`
	InputTokenCount  *int       `json:"inputTokenCount,omitempty"`
	OutputTokenCount *int       `json:"outputTokenCount,omitempty"`
	ChatData         *string    `json:"chatData,omitempty"`
	ToolCalls        []ToolCall `json:"toolCalls,omitempty"` // Structured tool calls from LLM

	// Embeddings properties
	EmbeddedData   interface{} `json:"embeddedData,omitempty"`   // []float32 or [][]float32; for BAAI/bge-m3 these are dense vectors
	LexicalWeights interface{} `json:"lexicalWeights,omitempty"` // map[uint]float32 or []map[uint]float32; only for BAAI/bge-m3
	ColbertVecs    interface{} `json:"colbertVecs,omitempty"`    // [][]float32 or [][][]float32; only for BAAI/bge-m3

	// Error properties
	Error *ErrorResponse `json:"error,omitempty"`

	// Info properties
	InfoMessage *string `json:"infoMessage,omitempty"`
}

HandlerResponse represents the LLM Handler response for a specific request.

func (*HandlerResponse) HasToolCalls added in v1.0.5

func (hr *HandlerResponse) HasToolCalls() bool

HasToolCalls returns true if the response contains tool calls.

type HistoricMessage

type HistoricMessage struct {
	Role       string     `json:"role"`
	Content    string     `json:"content"`
	Images     []string   `json:"images"`               // image in base64 format
	ToolCallId *string    `json:"toolCallId,omitempty"` // Tool call ID for tool responses
	ToolCalls  []ToolCall `json:"toolCalls,omitempty"`  // Tool calls made by assistant
}

HistoricMessage represents a past chat message.

type MCPConfig added in v1.0.5

type MCPConfig struct {
	ServerURL string `json:"serverURL"` // URL of the MCP server endpoint
	Transport string `json:"transport"` // Connection protocol: "stdio", "http", "websocket"
	AuthToken string `json:"authToken"` // Authentication token, supports ${ENV_VAR} syntax
	Timeout   int    `json:"timeout"`   // Connection timeout in seconds
}

MCPConfig represents the configuration for MCP connections

func (*MCPConfig) GetAuthToken added in v1.0.5

func (config *MCPConfig) GetAuthToken() string

GetAuthToken returns the authentication token, resolving environment variables if needed ${MCP_TOKEN} will return the value of the MCP_TOKEN environment variable

type MCPContentItem added in v1.0.5

type MCPContentItem struct {
	Type     string `json:"type"`               // Content type: "text", "image", "resource"
	Text     string `json:"text,omitempty"`     // Text content
	Data     string `json:"data,omitempty"`     // Base64-encoded data for images
	MimeType string `json:"mimeType,omitempty"` // MIME type for binary content
	URI      string `json:"uri,omitempty"`      // Resource URI for resource content
}

MCPContentItem represents a single content item in an MCP response.

type MCPPrompt added in v1.0.5

type MCPPrompt struct {
	Name        string              `json:"name"`                  // Unique prompt identifier
	Description string              `json:"description,omitempty"` // Description of what the prompt does
	Arguments   []MCPPromptArgument `json:"arguments,omitempty"`   // Parameters the prompt accepts
}

MCPPrompt represents a prompt template available from an MCP server.

type MCPPromptArgument added in v1.0.5

type MCPPromptArgument struct {
	Name        string `json:"name"`                  // Argument name
	Description string `json:"description,omitempty"` // Description of the argument
	Required    bool   `json:"required,omitempty"`    // Whether the argument is required
}

MCPPromptArgument represents an argument for a prompt template.

type MCPResource added in v1.0.5

type MCPResource struct {
	URI         string `json:"uri"`                   // Unique resource identifier
	Name        string `json:"name"`                  // Human-readable resource name
	Description string `json:"description,omitempty"` // Description of the resource
	MimeType    string `json:"mimeType,omitempty"`    // MIME type of the resource content
}

MCPResource represents a resource available from an MCP server.

type MCPTool added in v1.0.5

type MCPTool struct {
	Name         string                 `json:"name"`                   // Unique identifier for the tool
	OriginalName string                 `json:"originalName,omitempty"` // Original name of the tool
	Description  string                 `json:"description,omitempty"`  // Human-readable description of what the tool does
	InputSchema  map[string]interface{} `json:"inputSchema"`            // JSON Schema for the tool's parameters
	ServerURL    string                 `json:"serverURL,omitempty"`    // URL of the MCP server that provides this tool
}

MCPTool represents a tool definition in the Model Context Protocol.

type MaterialAttribute added in v1.0.3

type MaterialAttribute struct {
	Name string `json:"name"`
	Guid string `json:"guid"`
}

Represents a defined material attribute with its name and GUID.

type MaterialCriterionWithGuid added in v1.0.3

type MaterialCriterionWithGuid struct {
	AttributeName string `json:"attributeName"`
	AttributeGuid string `json:"attributeGuid"`
	Explanation   string `json:"explanation"`
	Confidence    int    `json:"confidence"`
}

Represents a criterion with its GUID

type MaterialLlmCriterion added in v1.0.3

type MaterialLlmCriterion struct {
	AttributeName string `json:"attributeName"`
	Explanation   string `json:"explanation"`
	Confidence    int    `json:"confidence"`
}

Represents a criterion returned from the llm

type ModelOptions

type ModelOptions struct {
	FrequencyPenalty *float32 `json:"frequencyPenalty,omitempty" yaml:"FREQUENCY_PENALTY,omitempty"`
	MaxTokens        *int32   `json:"maxTokens,omitempty" yaml:"MAX_TOKENS,omitempty"`
	PresencePenalty  *float32 `json:"presencePenalty,omitempty" yaml:"PRESENCE_PENALTY,omitempty"`
	Stop             []string `json:"stop,omitempty" yaml:"STOP,omitempty"`
	Temperature      *float32 `json:"temperature,omitempty" yaml:"TEMPERATURE,omitempty"`
	TopP             *float32 `json:"topP,omitempty" yaml:"TOP_P,omitempty"`

	// Reasoning effort level
	ReasoningEffort *string `json:"reasoningEffort,omitempty" yaml:"REASONING_EFFORT,omitempty"`
	// Reasoning summary format
	ReasoningSummary *string `json:"reasoningSummary,omitempty" yaml:"REASONING_SUMMARY,omitempty"`
	Verbosity        *string `json:"verbosity,omitempty" yaml:"VERBOSITY,omitempty"` // "low" | "medium" | "high"

	// Extended thinking configuration (Anthropic)
	ThinkingMode         *string `json:"thinkingMode,omitempty" yaml:"THINKING_MODE,omitempty"`                  // "adaptive" | "enabled" | "disabled"
	ThinkingBudgetTokens *int64  `json:"thinkingBudgetTokens,omitempty" yaml:"THINKING_BUDGET_TOKENS,omitempty"` // min 1024, must be < max_tokens
	ThinkingDisplayMode  *string `json:"thinkingDisplayMode,omitempty" yaml:"THINKING_DISPLAY_MODE,omitempty"`   // "summarized" | "omitted"
}

ModelOptions represents options for provider-specific API calls.

type Neo4jResponse

type Neo4jResponse struct {
	Record          neo4jRecord     `json:"record"`
	SummaryCounters summaryCounters `json:"summaryCounters"`
}

neo4jResponse represents the response from the Neo4j query.

type SessionContext

type SessionContext struct {
	WorkflowId string            `json:"workflow_id,omitempty"` // Workflow ID, only relevant if "workflow_endpoint" is "custom"
	Variables  map[string]string `json:"variables,omitempty"`   // Variables to be passed to the workflow
	// Exec connection
	SessionType string `json:"session_type"`      // Type of session: "workflow", "exec"; default is "workflow" if not provided
	ExecId      string `json:"exec_id,omitempty"` // Unique identifier of connecting Exec, only relevant if "session_type" is "exec"
	// Authentication
	JwtToken string `json:"jwt_token"` // JWT token for authentication for "session_type" "workflow" (optional)
	ApiKey   string `json:"api_key"`   // API key for authentication, used if "session_type" is "exec" or can be used if "session_type" is "workflow" for authentication
	// Snapshot logic
	SnapshotId     string `json:"snapshot_id,omitempty"`     // Snapshot ID, only relevant if "session_type" is "workflow"; if defined, the given snapshot will retrived from the database
	WorkflowRunId  string `json:"workflow_run_id,omitempty"` // Workflow run ID, only relevant if "session_type" is "workflow"; if defined, mandatory if "snapshot_id" is defined in order to retrieve the snapshot from the database
	UserId         string `json:"user_id,omitempty"`         // User ID, only relevant if "session_type" is "workflow"; if defined, mandatory if "snapshot_id" is defined in order to retrieve the snapshot from the database
	StoreSnapshots bool   `json:"store_snapshots,omitempty"` // Store snapshots, only relevant if "session_type" is "workflow"; if true, all taken snapshots will be stored in the database
	// Other
	IpAddress string `json:"ip_address,omitempty"` // IP address of the client, required for some auth_types
}

Message represents the JSON message you are expecting

func ExtractSessionContext

func ExtractSessionContext(ctx *logging.ContextMap, msg []byte) (SessionContext, error)

SetSessionContext sets the SessionContext struct from the JSON payload

Parameters:

  • msg: the JSON payload

Returns:

  • SessionContext: the SessionContext struct

type SlashCommand added in v1.0.5

type SlashCommand struct {
	Scope   string `json:"scope" yaml:"scope"`     // For global commands the scope is an empty string
	Command string `json:"command" yaml:"command"` // e.g. "/mycommand"
}

type ToolCall added in v1.0.5

type ToolCall struct {
	ID    string                 `json:"id"`
	Type  string                 `json:"type"`
	Name  string                 `json:"name"`
	Input map[string]interface{} `json:"input"`
}

ToolCall represents a tool invocation from the model.

type ToolResult added in v1.0.5

type ToolResult struct {
	ToolCallID   string           `json:"tool_call_id"`            // Matches the ID from the original tool call
	Content      string           `json:"content"`                 // Primary text content
	ContentItems []MCPContentItem `json:"content_items,omitempty"` // Content items for multi-modal support
	IsError      bool             `json:"is_error"`                // True if tool execution failed
}

ToolResult represents the result of a tool execution.

type TransferDetails

type TransferDetails struct {
	ResponseChannel chan HandlerResponse
	RequestChannel  chan HandlerRequest
}

TransferDetails holds communication channels for the websocket listener and writer.

type XMLMemberExample

type XMLMemberExample struct {
	Description string               `xml:",chardata" json:"description"` // Text content of <example>
	Code        XMLMemberExampleCode `xml:"code,omitempty" json:"code"`   // Optional <code> element
}

type XMLMemberExampleCode

type XMLMemberExampleCode struct {
	Type string `xml:"type,attr" json:"type"` // Attribute for <code>
	Text string `xml:",chardata" json:"text"` // Text content of <code>
}

type XMLMemberParam

type XMLMemberParam struct {
	Name        string `xml:"name" json:"name"`             // Attribute for <param>
	Type        string `xml:"type,omitempty" json:"type"`   // Attribute for <param>
	Description string `xml:",chardata" json:"description"` // Text content of <param>
}

Jump to

Keyboard shortcuts

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