aboutsummaryrefslogtreecommitdiff
path: root/backend/internal/analyzer/openai/options.go
diff options
context:
space:
mode:
Diffstat (limited to 'backend/internal/analyzer/openai/options.go')
-rw-r--r--backend/internal/analyzer/openai/options.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/backend/internal/analyzer/openai/options.go b/backend/internal/analyzer/openai/options.go
new file mode 100644
index 0000000..11d691f
--- /dev/null
+++ b/backend/internal/analyzer/openai/options.go
@@ -0,0 +1,45 @@
+package openai
+
+import (
+ _ "embed"
+
+ "github.com/sashabaranov/go-openai"
+)
+
+//go:embed system.txt
+var defaultSystemMsg string
+
+const defaultModel = openai.GPT4o
+const defaultTemperature = 0.25
+
+type Option func(*Analyzer)
+
+func WithClientConfig(cfg openai.ClientConfig) Option {
+ return func(a *Analyzer) {
+ a.client = openai.NewClientWithConfig(cfg)
+ }
+}
+
+func WithDefaultConfig(apiKey string) Option {
+ return func(a *Analyzer) {
+ a.client = openai.NewClient(apiKey)
+ }
+}
+
+func WithModel(model string) Option {
+ return func(a *Analyzer) {
+ a.model = model
+ }
+}
+
+func WithSystemMsg(msg string) Option {
+ return func(a *Analyzer) {
+ a.systemMsg = msg
+ }
+}
+
+func WithTemperature(temp float32) Option {
+ return func(a *Analyzer) {
+ a.temperature = temp
+ }
+}