ai

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2024 License: Apache-2.0 Imports: 19 Imported by: 0

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,
	}
)
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

func GetModelOrDefault(model string) string

GetModelOrDefault check config model

func GetRegionOrDefault

func GetRegionOrDefault(region string) string

GetModelOrDefault check config region

func GetVertexAIModelOrDefault

func GetVertexAIModelOrDefault(model string) string

GetModelOrDefault check config model

func GetVertexAIRegionOrDefault

func GetVertexAIRegionOrDefault(region string) string

GetModelOrDefault check config region

func NeedPassword

func NeedPassword(backend string) bool

Types

type AIConfiguration

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

type AIProvider

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"`
	TopP           float32 `mapstructure:"topp" yaml:"topp,omitempty"`
	MaxTokens      int     `mapstructure:"maxtokens" yaml:"maxtokens,omitempty"`
}

func (*AIProvider) GetBaseURL

func (p *AIProvider) GetBaseURL() string

func (*AIProvider) GetEndpointName

func (p *AIProvider) GetEndpointName() string

func (*AIProvider) GetEngine

func (p *AIProvider) GetEngine() string

func (*AIProvider) GetMaxTokens

func (p *AIProvider) GetMaxTokens() int

func (*AIProvider) GetModel

func (p *AIProvider) GetModel() string

func (*AIProvider) GetPassword

func (p *AIProvider) GetPassword() string

func (*AIProvider) GetProviderId

func (p *AIProvider) GetProviderId() string

func (*AIProvider) GetProviderRegion

func (p *AIProvider) GetProviderRegion() string

func (*AIProvider) GetProxyEndpoint

func (p *AIProvider) GetProxyEndpoint() string

func (*AIProvider) GetTemperature

func (p *AIProvider) GetTemperature() float32

func (*AIProvider) GetTopP

func (p *AIProvider) GetTopP() float32

type AmazonBedRockClient

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

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

func (AmazonBedRockClient) Close

func (AmazonBedRockClient) Close()

func (*AmazonBedRockClient) Configure

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

Configure configures the AmazonBedRockClient with the provided configuration.

func (*AmazonBedRockClient) GetCompletion

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

func (a *AmazonBedRockClient) GetName() string

GetName returns the name of the AmazonBedRockClient.

type AzureAIClient

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

func (AzureAIClient) Close

func (AzureAIClient) Close()

func (*AzureAIClient) Configure

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

func (*AzureAIClient) GetCompletion

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

func (*AzureAIClient) GetName

func (c *AzureAIClient) GetName() string

type CohereClient

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

func (CohereClient) Close

func (CohereClient) Close()

func (*CohereClient) Configure

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

func (*CohereClient) GetCompletion

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

func (*CohereClient) GetName

func (c *CohereClient) GetName() string

type Generations

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

type GoogleGenAIClient

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

func (*GoogleGenAIClient) Close

func (c *GoogleGenAIClient) Close()

func (*GoogleGenAIClient) Configure

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

func (*GoogleGenAIClient) GetCompletion

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

func (*GoogleGenAIClient) GetName

func (c *GoogleGenAIClient) GetName() string

type GoogleVertexAIClient

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

func (*GoogleVertexAIClient) Close

func (g *GoogleVertexAIClient) Close()

func (*GoogleVertexAIClient) Configure

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

func (*GoogleVertexAIClient) GetCompletion

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

func (*GoogleVertexAIClient) GetName

func (g *GoogleVertexAIClient) GetName() string

type HuggingfaceClient

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

func (HuggingfaceClient) Close

func (HuggingfaceClient) Close()

func (*HuggingfaceClient) Configure

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

func (*HuggingfaceClient) GetCompletion

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

func (*HuggingfaceClient) GetName

func (c *HuggingfaceClient) GetName() string

type IAI

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

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

type InvokeModelResponseBody

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

type LocalAIClient struct {
	OpenAIClient
}

func (LocalAIClient) Close

func (LocalAIClient) Close()

func (*LocalAIClient) GetName

func (a *LocalAIClient) GetName() string

type Message

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

type NoOpAIClient

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

func (NoOpAIClient) Close

func (NoOpAIClient) Close()

func (*NoOpAIClient) Configure

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

func (*NoOpAIClient) GetCompletion

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

func (*NoOpAIClient) GetName

func (c *NoOpAIClient) GetName() string

type OpenAIClient

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

func (OpenAIClient) Close

func (OpenAIClient) Close()

func (*OpenAIClient) Configure

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

func (*OpenAIClient) GetCompletion

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

func (*OpenAIClient) GetName

func (c *OpenAIClient) GetName() string

type Parameters

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

type Request

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

type SageMakerAIClient

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

func (SageMakerAIClient) Close

func (SageMakerAIClient) Close()

func (*SageMakerAIClient) Configure

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

func (*SageMakerAIClient) GetCompletion

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

func (*SageMakerAIClient) GetName

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