Documentation
¶
Index ¶
- Constants
- func WithHTTPClient(httpClientFunc func() http.HTTPClient) func(*DeepCodeLLMBindingImpl)
- func WithInstrumentor(instrumentor observability.Instrumentor) func(*DeepCodeLLMBindingImpl)
- func WithLogger(logger *zerolog.Logger) func(*DeepCodeLLMBindingImpl)
- func WithOutputFormat(outputFormat OutputFormat) func(*DeepCodeLLMBindingImpl)
- type AIRequest
- type DeepCodeLLMBinding
- type DeepCodeLLMBindingImpl
- func (d *DeepCodeLLMBindingImpl) Explain(ctx context.Context, input AIRequest, _ OutputFormat, output chan<- string) error
- func (d *DeepCodeLLMBindingImpl) ExplainWithOptions(ctx context.Context, options ExplainOptions) (ExplainResult, error)
- func (d *DeepCodeLLMBindingImpl) PublishIssues(_ context.Context, _ []map[string]string) error
- type ExplainOptions
- type ExplainResult
- type Explanations
- type Option
- type OutputFormat
- type SnykLLMBindings
Constants ¶
View Source
const ( SHORT explanationLength = "SHORT" MEDIUM explanationLength = "MEDIUM" LONG explanationLength = "LONG" )
Variables ¶
This section is empty.
Functions ¶
func WithHTTPClient ¶
func WithHTTPClient(httpClientFunc func() http.HTTPClient) func(*DeepCodeLLMBindingImpl)
func WithInstrumentor ¶
func WithInstrumentor(instrumentor observability.Instrumentor) func(*DeepCodeLLMBindingImpl)
func WithLogger ¶
func WithLogger(logger *zerolog.Logger) func(*DeepCodeLLMBindingImpl)
func WithOutputFormat ¶
func WithOutputFormat(outputFormat OutputFormat) func(*DeepCodeLLMBindingImpl)
Types ¶
type DeepCodeLLMBinding ¶
type DeepCodeLLMBinding interface {
SnykLLMBindings
ExplainWithOptions(ctx context.Context, options ExplainOptions) (ExplainResult, error)
}
type DeepCodeLLMBindingImpl ¶ added in v1.14.1
type DeepCodeLLMBindingImpl struct {
// contains filtered or unexported fields
}
DeepCodeLLMBindingImpl is an LLM binding for the Snyk Code LLM. Currently, it only supports explain.
func NewDeepcodeLLMBinding ¶
func NewDeepcodeLLMBinding(opts ...Option) *DeepCodeLLMBindingImpl
func (*DeepCodeLLMBindingImpl) Explain ¶ added in v1.14.1
func (d *DeepCodeLLMBindingImpl) Explain(ctx context.Context, input AIRequest, _ OutputFormat, output chan<- string) error
func (*DeepCodeLLMBindingImpl) ExplainWithOptions ¶ added in v1.14.1
func (d *DeepCodeLLMBindingImpl) ExplainWithOptions(ctx context.Context, options ExplainOptions) (ExplainResult, error)
func (*DeepCodeLLMBindingImpl) PublishIssues ¶ added in v1.14.1
type ExplainOptions ¶
type ExplainOptions struct {
// Derivation = Code Flow
// const derivationLineNumbers: Set<number> = new Set<number>();
// for (const markerLocation of suggestion.markers!) {
// for (const markerPos of markerLocation.pos) {
// const lines = markerPos.rows;
// for (const line of lines) {
// derivationLineNumbers.add(line + 1);
// }
// }
// markerLocation.pos;
// }
// console.log('Derivation lines: ', ...derivationLineNumbers);
//
// const derivationLines: string[] = [];
// const fileLines: string[] = fileContent.split('\n');
// for (const derivationLineNumber of derivationLineNumbers) {
// derivationLines.push(fileLines.at(derivationLineNumber - 1)!);
// }
// let Derivation = derivationLines.join(',');
// Derivation = Derivation.replace(/\t/g, ' ');
// console.log('Derivation: ', Derivation);
Derivation string `json:"derivation"`
// vulnerability name from Snyk Code (rule)
RuleKey string `json:"rule_key"`
// Snyk Code message for the vulnerability
RuleMessage string `json:"rule_message"`
// fix difference
Diffs []string `json:"diffs"`
// Endpoint to call
Endpoint *url.URL `json:"endpoint"`
}
type ExplainResult ¶ added in v1.16.0
type Explanations ¶ added in v1.16.0
type Option ¶
type Option func(*DeepCodeLLMBindingImpl)
type OutputFormat ¶
type OutputFormat string
const HTML OutputFormat = "html"
const JSON OutputFormat = "json"
const MarkDown OutputFormat = "md"
type SnykLLMBindings ¶
type SnykLLMBindings interface {
// PublishIssues sends issues to an LLM for further processing.
// the map in the slice of issues map is a json representation of json key : value
// In case of errors, they are returned
PublishIssues(ctx context.Context, issues []map[string]string) error
// Explain forwards an input and desired output format to an LLM to
// receive an explanation. The implementation should alter the LLM
// prompt to honor the output format, but is not required to enforce
// the format. The results should be streamed into the given channel
//
// Parameters:
// ctx - request context
// input - the thing to be explained as a string
// format - the requested outputFormat
// output - a channel that can be used to stream the results
Explain(ctx context.Context, input AIRequest, format OutputFormat, output chan<- string) error
}
Click to show internal directories.
Click to hide internal directories.