clients

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2024 License: Apache-2.0 Imports: 16 Imported by: 0

README

clients

import "github.com/Mgla96/snappr/internal/adapters/clients"

package clients provides the clients for the external services used by the application.

Index

Constants

const (
    // GPT3_5Turbo0125 is the GPT-3.5-turbo-0125 model.
    GPT3_5Turbo0125            ModelType = "gpt-3.5-turbo-0125"
    GPT4_turbo                 ModelType = "gpt-4-turbo"
    ErrNoChatCompletionChoices           = errors.New("no chat completion choices returned")
    OLLAMAAPI                  APIType   = "ollama"
    OPENAIAPI                  APIType   = "openai"
)

func IsDoNotEditFile

func IsDoNotEditFile(data []byte) bool

IsDoNotEditFile checks if the file has a DO NOT EDIT comment.

func ModelToContextWindow

func ModelToContextWindow(model ModelType) int

ModelToContextWindow returns the context window size for the given model.

func Shuffle

func Shuffle(slice interface{})

Shuffle shuffles a slice of any type

type APIType

type APIType string

type CodeFilter

CodeFilter is used to filter files based on a regex pattern.

type CodeFilter struct {
    FileRegexPattern string
}

type GithubClient

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

func NewGithubClient
func NewGithubClient(token string, logger zerolog.Logger) *GithubClient

NewGithubClient creates a new instance of the GithubClient.

func (*GithubClient) AddCommentToPullRequestReview
func (gc *GithubClient) AddCommentToPullRequestReview(ctx context.Context, owner, repo string, prNumber int, commentBody, commitID, path string, startLine, line int) (*github.PullRequestComment, error)

AddCommentToPullRequestReview adds a comment to a pull request review.

Parameters:

  • ctx: The context for the API request.
  • owner: The owner of the repository.
  • repo: The repository name.
  • prNumber: The pull request number.
  • commentBody: The content of the comment to be added.
  • commitID: The SHA of the commit to comment on.
  • path: The file path in the repository where the comment should be added.
  • position: The position in the diff where the comment should be added.

Returns:

  • The created PullRequestComment object.
  • An error if any occurred during the API request.

func (*GithubClient) AddCommitToBranch
func (gc *GithubClient) AddCommitToBranch(ctx context.Context, owner, repo, branch, filePath, commitMessage string, fileContent []byte) error

AddCommitToBranch adds a commit to the specified branch.

func (*GithubClient) CreateBranch
func (gc *GithubClient) CreateBranch(ctx context.Context, owner, repo, newBranch, baseBranch string) error

CreateBranch creates a new branch from the specified base branch.

func (*GithubClient) CreatePullRequest
func (gc *GithubClient) CreatePullRequest(ctx context.Context, owner, repo, title, head, base, body string) (*github.PullRequest, error)

CreatePullRequest creates a new pull request.

func (*GithubClient) GetCommitCode
func (gc *GithubClient) GetCommitCode(context context.Context, owner, repo, commitSHA string, codeFilter CodeFilter) (map[string]string, error)

GetCommitCode gets the code from a commit.

func (*GithubClient) GetLatestCommitFromBranch
func (gc *GithubClient) GetLatestCommitFromBranch(ctx context.Context, owner, repo, branch string) (string, error)

GetLatestCommitFromBranch gets the latest commit SHA from a branch.

func (*GithubClient) GetPRCode
func (gc *GithubClient) GetPRCode(ctx context.Context, owner, repo string, prNumber int, opts *github.ListOptions, codeFilter CodeFilter) (map[string]string, error)

GetPRCode gets the code from a pull request.

func (*GithubClient) GetPRDiff
func (gc *GithubClient) GetPRDiff(ctx context.Context, owner, repo string, prNumber int) (string, error)

func (*GithubClient) GetPRPatch
func (gc *GithubClient) GetPRPatch(ctx context.Context, owner, repo string, prNumber int) (string, error)

func (*GithubClient) ListPullRequests
func (gc *GithubClient) ListPullRequests(ctx context.Context, owner, repo string, opts *github.PullRequestListOptions) ([]*github.PullRequest, error)

ListPullRequests lists all pull requests in a repository.

func (*GithubClient) MergePullRequest
func (gc *GithubClient) MergePullRequest(ctx context.Context, owner, repo string, prNumber int, commitMessage string) (*github.PullRequestMergeResult, error)

MergePullRequest merges a pull request.

type ModelType

type ModelType string

type OllamaClient

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

func NewOllamaClient
func NewOllamaClient(cfg openai.ClientConfig) *OllamaClient

func (*OllamaClient) CreateChatCompletion
func (c *OllamaClient) CreateChatCompletion(ctx context.Context, request openai.ChatCompletionRequest) (response openai.ChatCompletionResponse, err error)
curl http://localhost:11434/api/chat -d '{
	  "model": "llama3.2",
	  "messages": [
	    { "role": "user", "content": "why is the sky blue?" }
	  ]
	}'

type OpenAIClient

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

func NewCustomOpenAIClient
func NewCustomOpenAIClient(authToken, baseURL string, apiType APIType) *OpenAIClient

func NewOpenAIClient
func NewOpenAIClient(apiKey string) *OpenAIClient

NewOpenAIClient creates a new instance of the OpenAIClient.

func (*OpenAIClient) GenerateChatCompletion
func (oc *OpenAIClient) GenerateChatCompletion(ctx context.Context, messages []openai.ChatCompletionMessage, model ModelType) (string, error)

GenerateChatCompletion generates a chat completion based on the provided messages.

Parameters:

  • ctx: The context for the API request.
  • messages: The list of messages to use as input for the chat completion.

Returns:

  • The generated chat completion.
  • An error if any occurred during the API request.

Generated by gomarkdoc

Documentation

Overview

package clients provides the clients for the external services used by the application.

Index

Constants

View Source
const (
	// GPT3_5Turbo0125 is the GPT-3.5-turbo-0125 model.
	GPT3_5Turbo0125            ModelType = "gpt-3.5-turbo-0125"
	GPT4_turbo                 ModelType = "gpt-4-turbo"
	ErrNoChatCompletionChoices           = errors.New("no chat completion choices returned")
	OLLAMAAPI                  APIType   = "ollama"
	OPENAIAPI                  APIType   = "openai"
)

Variables

This section is empty.

Functions

func IsDoNotEditFile

func IsDoNotEditFile(data []byte) bool

IsDoNotEditFile checks if the file has a DO NOT EDIT comment.

func ModelToContextWindow

func ModelToContextWindow(model ModelType) int

ModelToContextWindow returns the context window size for the given model.

func Shuffle

func Shuffle(slice interface{})

Shuffle shuffles a slice of any type

Types

type APIType added in v0.2.0

type APIType string

type CodeFilter

type CodeFilter struct {
	FileRegexPattern string
}

CodeFilter is used to filter files based on a regex pattern.

type GithubClient

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

func NewGithubClient

func NewGithubClient(token string, logger zerolog.Logger) *GithubClient

NewGithubClient creates a new instance of the GithubClient.

func (*GithubClient) AddCommentToPullRequestReview

func (gc *GithubClient) AddCommentToPullRequestReview(ctx context.Context, owner, repo string, prNumber int, commentBody, commitID, path string, startLine, line int, startSide, side Side) (*github.PullRequestComment, error)

AddCommentToPullRequestReview adds a comment to a pull request review.

Parameters:

  • ctx: The context for the API request.
  • owner: The owner of the repository.
  • repo: The repository name.
  • prNumber: The pull request number.
  • commentBody: The content of the comment to be added.
  • commitID: The SHA of the commit to comment on.
  • path: The file path in the repository where the comment should be added.
  • position: The position in the diff where the comment should be added.

Returns:

  • The created PullRequestComment object.
  • An error if any occurred during the API request.

func (*GithubClient) AddCommitToBranch

func (gc *GithubClient) AddCommitToBranch(ctx context.Context, owner, repo, branch, filePath, commitMessage string, fileContent []byte) error

AddCommitToBranch adds a commit to the specified branch.

func (*GithubClient) CreateBranch

func (gc *GithubClient) CreateBranch(ctx context.Context, owner, repo, newBranch, baseBranch string) error

CreateBranch creates a new branch from the specified base branch.

func (*GithubClient) CreatePullRequest

func (gc *GithubClient) CreatePullRequest(ctx context.Context, owner, repo, title, head, base, body string) (*github.PullRequest, error)

CreatePullRequest creates a new pull request.

func (*GithubClient) GetCommitCode

func (gc *GithubClient) GetCommitCode(context context.Context, owner, repo, commitSHA string, codeFilter CodeFilter) (map[string]string, error)

GetCommitCode gets the code from a commit.

func (*GithubClient) GetLatestCommitFromBranch

func (gc *GithubClient) GetLatestCommitFromBranch(ctx context.Context, owner, repo, branch string) (string, error)

GetLatestCommitFromBranch gets the latest commit SHA from a branch.

func (*GithubClient) GetPRCode

func (gc *GithubClient) GetPRCode(ctx context.Context, owner, repo string, prNumber int, opts *github.ListOptions, codeFilter CodeFilter) (map[string]string, error)

GetPRCode gets the code from a pull request.

func (*GithubClient) GetPRDiff

func (gc *GithubClient) GetPRDiff(ctx context.Context, owner, repo string, prNumber int) (string, error)

func (*GithubClient) GetPRPatch

func (gc *GithubClient) GetPRPatch(ctx context.Context, owner, repo string, prNumber int) (string, error)

func (*GithubClient) ListPullRequests

func (gc *GithubClient) ListPullRequests(ctx context.Context, owner, repo string, opts *github.PullRequestListOptions) ([]*github.PullRequest, error)

ListPullRequests lists all pull requests in a repository.

func (*GithubClient) MergePullRequest

func (gc *GithubClient) MergePullRequest(ctx context.Context, owner, repo string, prNumber int, commitMessage string) (*github.PullRequestMergeResult, error)

MergePullRequest merges a pull request.

type ModelType

type ModelType string

type OllamaClient added in v0.2.0

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

func NewOllamaClient added in v0.2.0

func NewOllamaClient(cfg openai.ClientConfig) *OllamaClient

func (*OllamaClient) CreateChatCompletion added in v0.2.0

func (c *OllamaClient) CreateChatCompletion(ctx context.Context, request openai.ChatCompletionRequest) (response openai.ChatCompletionResponse, err error)
curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}'

type OpenAIClient

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

func NewCustomOpenAIClient

func NewCustomOpenAIClient(authToken, baseURL string, apiType APIType) *OpenAIClient

func NewOpenAIClient

func NewOpenAIClient(apiKey string) *OpenAIClient

NewOpenAIClient creates a new instance of the OpenAIClient.

func (*OpenAIClient) GenerateChatCompletion

func (oc *OpenAIClient) GenerateChatCompletion(ctx context.Context, messages []openai.ChatCompletionMessage, model ModelType) (string, error)

GenerateChatCompletion generates a chat completion based on the provided messages.

Parameters:

  • ctx: The context for the API request.
  • messages: The list of messages to use as input for the chat completion.

Returns:

  • The generated chat completion.
  • An error if any occurred during the API request.

type Side added in v0.2.0

type Side string
const (
	Left  Side = "LEFT"
	Right Side = "RIGHT"
)

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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