ai

package
v0.3.32 Latest Latest
Warning

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

Go to latest
Published: May 20, 2024 License: Apache-2.0 Imports: 24 Imported by: 4

Documentation

Index

Constants

View Source
const (
	US_East_1      = "us-east-1"
	US_West_2      = "us-west-2"
	AP_Southeast_1 = "ap-southeast-1"
	AP_Northeast_1 = "ap-northeast-1"
	EU_Central_1   = "eu-central-1"
)
View Source
const (
	ModelAnthropicClaudeV2        = "anthropic.claude-v2"
	ModelAnthropicClaudeV1        = "anthropic.claude-v1"
	ModelAnthropicClaudeInstantV1 = "anthropic.claude-instant-v1"
)
View Source
const (
	US_Central_1             = "us-central1"
	US_West_4                = "us-west4"
	North_America_Northeast1 = "northamerica-northeast1"
	US_East_4                = "us-east4"
	US_West_1                = "us-west1"
	Asia_Northeast_3         = "asia-northeast3"
	Asia_Southeast_1         = "asia-southeast1"
	Asia_Northeast_1         = "asia-northeast1"
)
View Source
const BEDROCK_DEFAULT_REGION = "us-east-1" // default use us-east-1 region

Amazon BedRock support region list US East (N. Virginia),US West (Oregon),Asia Pacific (Singapore),Asia Pacific (Tokyo),Europe (Frankfurt) https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html#bedrock-regions

View Source
const (
	ModelGeminiProV1 = "gemini-1.0-pro-001"
)
View Source
const VERTEXAI_DEFAULT_REGION = "us-central1" // default use us-east-1 region

Vertex AI Gemini supported Regions https://cloud.google.com/vertex-ai/docs/generative-ai/model-reference/gemini

Variables

View Source
var BEDROCKER_SUPPORTED_REGION = []string{
	US_East_1,
	US_West_2,
	AP_Southeast_1,
	AP_Northeast_1,
	EU_Central_1,
}
View Source
var (
	Backends = []string{
		openAIClientName,
		localAIClientName,
		azureAIClientName,
		cohereAIClientName,
		amazonbedrockAIClientName,
		amazonsagemakerAIClientName,
		googleAIClientName,
		noopAIClientName,
		huggingfaceAIClientName,
		googleVertexAIClientName,
		ociClientName,
	}
)
View Source
var PromptMap = map[string]string{
	"default":                       default_prompt,
	"VulnerabilityReport":           trivy_vuln_prompt,
	"ConfigAuditReport":             trivy_conf_prompt,
	"PrometheusConfigValidate":      prom_conf_prompt,
	"PrometheusConfigRelabelReport": prom_relabel_prompt,
}
View Source
var VERTEXAI_MODELS = []string{
	ModelGeminiProV1,
}

Functions

func GetModelOrDefault added in v0.3.19

func GetModelOrDefault(model string) string

GetModelOrDefault check config model

func GetRegionOrDefault added in v0.3.19

func GetRegionOrDefault(region string) string

GetModelOrDefault check config region

func GetVertexAIModelOrDefault added in v0.3.28

func GetVertexAIModelOrDefault(model string) string

GetModelOrDefault check config model

func GetVertexAIRegionOrDefault added in v0.3.28

func GetVertexAIRegionOrDefault(region string) string

GetModelOrDefault check config region

func NeedPassword added in v0.2.8

func NeedPassword(backend string) bool

Types

type AIConfiguration added in v0.2.0

type AIConfiguration struct {
	Providers       []AIProvider `mapstructure:"providers"`
	DefaultProvider string       `mapstructure:"defaultprovider"`
}

type AIProvider added in v0.2.0

type AIProvider struct {
	Name           string  `mapstructure:"name"`
	Model          string  `mapstructure:"model"`
	Password       string  `mapstructure:"password" yaml:"password,omitempty"`
	BaseURL        string  `mapstructure:"baseurl" yaml:"baseurl,omitempty"`
	ProxyEndpoint  string  `mapstructure:"proxyEndpoint" yaml:"proxyEndpoint,omitempty"`
	ProxyPort      string  `mapstructure:"proxyPort" yaml:"proxyPort,omitempty"`
	EndpointName   string  `mapstructure:"endpointname" yaml:"endpointname,omitempty"`
	Engine         string  `mapstructure:"engine" yaml:"engine,omitempty"`
	Temperature    float32 `mapstructure:"temperature" yaml:"temperature,omitempty"`
	ProviderRegion string  `mapstructure:"providerregion" yaml:"providerregion,omitempty"`
	ProviderId     string  `mapstructure:"providerid" yaml:"providerid,omitempty"`
	CompartmentId  string  `mapstructure:"compartmentid" yaml:"compartmentid,omitempty"`
	TopP           float32 `mapstructure:"topp" yaml:"topp,omitempty"`
	TopK           int32   `mapstructure:"topk" yaml:"topk,omitempty"`
	MaxTokens      int     `mapstructure:"maxtokens" yaml:"maxtokens,omitempty"`
}

func (*AIProvider) GetBaseURL added in v0.2.5

func (p *AIProvider) GetBaseURL() string

func (*AIProvider) GetCompartmentId added in v0.3.31

func (p *AIProvider) GetCompartmentId() string

func (*AIProvider) GetEndpointName added in v0.3.20

func (p *AIProvider) GetEndpointName() string

func (*AIProvider) GetEngine added in v0.2.9

func (p *AIProvider) GetEngine() string

func (*AIProvider) GetMaxTokens added in v0.3.20

func (p *AIProvider) GetMaxTokens() int

func (*AIProvider) GetModel added in v0.2.5

func (p *AIProvider) GetModel() string

func (*AIProvider) GetPassword added in v0.2.5

func (p *AIProvider) GetPassword() string

func (*AIProvider) GetProviderId added in v0.3.28

func (p *AIProvider) GetProviderId() string

func (*AIProvider) GetProviderRegion added in v0.3.19

func (p *AIProvider) GetProviderRegion() string

func (*AIProvider) GetProxyEndpoint added in v0.3.28

func (p *AIProvider) GetProxyEndpoint() string

func (*AIProvider) GetTemperature added in v0.3.16

func (p *AIProvider) GetTemperature() float32

func (*AIProvider) GetTopK added in v0.3.31

func (p *AIProvider) GetTopK() int32

func (*AIProvider) GetTopP added in v0.3.20

func (p *AIProvider) GetTopP() float32

type AmazonBedRockClient added in v0.3.19

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

AmazonBedRockClient represents the client for interacting with the Amazon Bedrock service.

func (AmazonBedRockClient) Close added in v0.3.25

func (AmazonBedRockClient) Close()

func (*AmazonBedRockClient) Configure added in v0.3.19

func (a *AmazonBedRockClient) Configure(config IAIConfig) error

Configure configures the AmazonBedRockClient with the provided configuration.

func (*AmazonBedRockClient) GetCompletion added in v0.3.19

func (a *AmazonBedRockClient) GetCompletion(ctx context.Context, prompt string) (string, error)

GetCompletion sends a request to the model for generating completion based on the provided prompt.

func (*AmazonBedRockClient) GetName added in v0.3.19

func (a *AmazonBedRockClient) GetName() string

GetName returns the name of the AmazonBedRockClient.

type AzureAIClient added in v0.2.9

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

func (AzureAIClient) Close added in v0.3.25

func (AzureAIClient) Close()

func (*AzureAIClient) Configure added in v0.2.9

func (c *AzureAIClient) Configure(config IAIConfig) error

func (*AzureAIClient) GetCompletion added in v0.2.9

func (c *AzureAIClient) GetCompletion(ctx context.Context, prompt string) (string, error)

func (*AzureAIClient) GetName added in v0.2.9

func (c *AzureAIClient) GetName() string

type CohereClient added in v0.3.12

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

func (CohereClient) Close added in v0.3.25

func (CohereClient) Close()

func (*CohereClient) Configure added in v0.3.12

func (c *CohereClient) Configure(config IAIConfig) error

func (*CohereClient) GetCompletion added in v0.3.12

func (c *CohereClient) GetCompletion(ctx context.Context, prompt string) (string, error)

func (*CohereClient) GetName added in v0.3.12

func (c *CohereClient) GetName() string

type Generations added in v0.3.20

type Generations []struct {
	Generation struct {
		Role    string `json:"role"`
		Content string `json:"content"`
	} `json:"generation"`
}

type GoogleGenAIClient added in v0.3.25

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

func (*GoogleGenAIClient) Close added in v0.3.25

func (c *GoogleGenAIClient) Close()

func (*GoogleGenAIClient) Configure added in v0.3.25

func (c *GoogleGenAIClient) Configure(config IAIConfig) error

func (*GoogleGenAIClient) GetCompletion added in v0.3.25

func (c *GoogleGenAIClient) GetCompletion(ctx context.Context, prompt string) (string, error)

func (*GoogleGenAIClient) GetName added in v0.3.25

func (c *GoogleGenAIClient) GetName() string

type GoogleVertexAIClient added in v0.3.28

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

func (*GoogleVertexAIClient) Close added in v0.3.28

func (g *GoogleVertexAIClient) Close()

func (*GoogleVertexAIClient) Configure added in v0.3.28

func (g *GoogleVertexAIClient) Configure(config IAIConfig) error

func (*GoogleVertexAIClient) GetCompletion added in v0.3.28

func (g *GoogleVertexAIClient) GetCompletion(ctx context.Context, prompt string) (string, error)

func (*GoogleVertexAIClient) GetName added in v0.3.28

func (g *GoogleVertexAIClient) GetName() string

type HuggingfaceClient added in v0.3.27

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

func (HuggingfaceClient) Close added in v0.3.27

func (HuggingfaceClient) Close()

func (*HuggingfaceClient) Configure added in v0.3.27

func (c *HuggingfaceClient) Configure(config IAIConfig) error

func (*HuggingfaceClient) GetCompletion added in v0.3.27

func (c *HuggingfaceClient) GetCompletion(ctx context.Context, prompt string) (string, error)

func (*HuggingfaceClient) GetName added in v0.3.27

func (c *HuggingfaceClient) GetName() string

type IAI added in v0.0.5

type IAI interface {
	// Configure sets up client for given configuration. This is expected to be
	// executed once per client life-time (e.g. analysis CLI command invocation).
	Configure(config IAIConfig) error
	// GetCompletion generates text based on prompt.
	GetCompletion(ctx context.Context, prompt string) (string, error)
	// GetName returns name of the backend/client.
	GetName() string
	// Close cleans all the resources. No other methods should be used on the
	// objects after this method is invoked.
	Close()
}

IAI is an interface all clients (representing backends) share.

func NewClient

func NewClient(provider string) IAI

type IAIConfig added in v0.2.5

type IAIConfig interface {
	GetPassword() string
	GetModel() string
	GetBaseURL() string
	GetProxyEndpoint() string
	GetEndpointName() string
	GetEngine() string
	GetTemperature() float32
	GetProviderRegion() string
	GetTopP() float32
	GetTopK() int32
	GetMaxTokens() int
	GetProviderId() string
	GetCompartmentId() string
}

type InvokeModelResponseBody added in v0.3.19

type InvokeModelResponseBody struct {
	Completion  string `json:"completion"`
	Stop_reason string `json:"stop_reason"`
}

InvokeModelResponseBody represents the response body structure from the model invocation.

type LocalAIClient added in v0.2.8

type LocalAIClient struct {
	OpenAIClient
}

func (LocalAIClient) Close added in v0.3.25

func (LocalAIClient) Close()

func (*LocalAIClient) GetName added in v0.2.8

func (a *LocalAIClient) GetName() string

type Message added in v0.3.20

type Message struct {
	Role    string `json:"role"`
	Content string `json:"content"`
}

type NoOpAIClient added in v0.2.1

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

func (NoOpAIClient) Close added in v0.3.25

func (NoOpAIClient) Close()

func (*NoOpAIClient) Configure added in v0.2.1

func (c *NoOpAIClient) Configure(_ IAIConfig) error

func (*NoOpAIClient) GetCompletion added in v0.2.1

func (c *NoOpAIClient) GetCompletion(_ context.Context, prompt string) (string, error)

func (*NoOpAIClient) GetName added in v0.2.1

func (c *NoOpAIClient) GetName() string

type OCIGenAIClient added in v0.3.31

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

func (OCIGenAIClient) Close added in v0.3.31

func (OCIGenAIClient) Close()

func (*OCIGenAIClient) Configure added in v0.3.31

func (c *OCIGenAIClient) Configure(config IAIConfig) error

func (*OCIGenAIClient) GetCompletion added in v0.3.31

func (c *OCIGenAIClient) GetCompletion(ctx context.Context, prompt string) (string, error)

func (*OCIGenAIClient) GetName added in v0.3.31

func (c *OCIGenAIClient) GetName() string

type OpenAIClient added in v0.0.5

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

func (OpenAIClient) Close added in v0.3.25

func (OpenAIClient) Close()

func (*OpenAIClient) Configure added in v0.0.5

func (c *OpenAIClient) Configure(config IAIConfig) error

func (*OpenAIClient) GetCompletion added in v0.0.5

func (c *OpenAIClient) GetCompletion(ctx context.Context, prompt string) (string, error)

func (*OpenAIClient) GetName added in v0.2.1

func (c *OpenAIClient) GetName() string

type Parameters added in v0.3.20

type Parameters struct {
	MaxNewTokens int     `json:"max_new_tokens"`
	TopP         float64 `json:"top_p"`
	TopK         float64 `json:"top_k"`
	Temperature  float64 `json:"temperature"`
}

type Request added in v0.3.20

type Request struct {
	Inputs     [][]Message `json:"inputs"`
	Parameters Parameters  `json:"parameters"`
}

type SageMakerAIClient added in v0.3.20

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

func (SageMakerAIClient) Close added in v0.3.25

func (SageMakerAIClient) Close()

func (*SageMakerAIClient) Configure added in v0.3.20

func (c *SageMakerAIClient) Configure(config IAIConfig) error

func (*SageMakerAIClient) GetCompletion added in v0.3.20

func (c *SageMakerAIClient) GetCompletion(_ context.Context, prompt string) (string, error)

func (*SageMakerAIClient) GetName added in v0.3.20

func (c *SageMakerAIClient) GetName() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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