@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/sashabaranov/go-openai"
|
||||
@@ -17,6 +18,11 @@ type OpenAIAdapter struct {
|
||||
|
||||
// NewOpenAIAdapter creates a new OpenAI LLM adapter
|
||||
func NewOpenAIAdapter(cfg Config) *OpenAIAdapter {
|
||||
if cfg.BaseURL != "" {
|
||||
clientConfig := openai.DefaultConfig(cfg.APIKey)
|
||||
clientConfig.BaseURL = strings.TrimRight(cfg.BaseURL, "/") + "/v1"
|
||||
return &OpenAIAdapter{client: openai.NewClientWithConfig(clientConfig), config: cfg}
|
||||
}
|
||||
return &OpenAIAdapter{
|
||||
client: openai.NewClient(cfg.APIKey),
|
||||
config: cfg,
|
||||
|
||||
@@ -21,6 +21,7 @@ type Config struct {
|
||||
RemoveFillerWords bool
|
||||
CustomPrompt string
|
||||
Keywords []string
|
||||
BaseURL string
|
||||
}
|
||||
|
||||
// NewAdapter creates an LLM adapter based on the provider
|
||||
@@ -36,6 +37,14 @@ func NewAdapter(cfg Config) (Adapter, error) {
|
||||
return nil, fmt.Errorf("Groq API key required")
|
||||
}
|
||||
return NewGroqAdapter(cfg), nil
|
||||
case "llama-swap":
|
||||
if cfg.APIKey == "" {
|
||||
return nil, fmt.Errorf("LlamaSwap API key required")
|
||||
}
|
||||
if cfg.BaseURL == "" {
|
||||
return nil, fmt.Errorf("LlamaSwap base_url required")
|
||||
}
|
||||
return NewOpenAIAdapter(cfg), nil
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported LLM provider: %s", cfg.Provider)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user