Private
Public Access
1
0

tui: Add setting view with support for changing the current model

This commit is contained in:
2024-09-25 15:49:45 +00:00
parent 3ec2675632
commit 69cdc0a5aa
10 changed files with 485 additions and 37 deletions

View File

@@ -31,6 +31,7 @@ type Config struct {
} `yaml:"agents"`
Providers []*struct {
Name string `yaml:"name,omitempty"`
Display string `yaml:"display,omitempty"`
Kind string `yaml:"kind"`
BaseURL string `yaml:"baseUrl,omitempty"`
APIKey string `yaml:"apiKey,omitempty"`

View File

@@ -123,11 +123,10 @@ func (c *Context) DefaultSystemPrompt() string {
return c.Config.Defaults.SystemPrompt
}
func (c *Context) GetModelProvider(model string) (string, api.ChatCompletionProvider, error) {
func (c *Context) GetModelProvider(model string, provider string) (string, string, api.ChatCompletionProvider, error) {
parts := strings.Split(model, "@")
var provider string
if len(parts) > 1 {
if provider == "" && len(parts) > 1 {
model = parts[0]
provider = parts[1]
}
@@ -150,7 +149,7 @@ func (c *Context) GetModelProvider(model string) (string, api.ChatCompletionProv
if p.BaseURL != "" {
url = p.BaseURL
}
return model, &anthropic.AnthropicClient{
return model, name, &anthropic.AnthropicClient{
BaseURL: url,
APIKey: p.APIKey,
}, nil
@@ -159,7 +158,7 @@ func (c *Context) GetModelProvider(model string) (string, api.ChatCompletionProv
if p.BaseURL != "" {
url = p.BaseURL
}
return model, &google.Client{
return model, name, &google.Client{
BaseURL: url,
APIKey: p.APIKey,
}, nil
@@ -168,7 +167,7 @@ func (c *Context) GetModelProvider(model string) (string, api.ChatCompletionProv
if p.BaseURL != "" {
url = p.BaseURL
}
return model, &ollama.OllamaClient{
return model, name, &ollama.OllamaClient{
BaseURL: url,
}, nil
case "openai":
@@ -176,18 +175,18 @@ func (c *Context) GetModelProvider(model string) (string, api.ChatCompletionProv
if p.BaseURL != "" {
url = p.BaseURL
}
return model, &openai.OpenAIClient{
return model, name, &openai.OpenAIClient{
BaseURL: url,
APIKey: p.APIKey,
Headers: p.Headers,
}, nil
default:
return "", nil, fmt.Errorf("unknown provider kind: %s", p.Kind)
return "", "", nil, fmt.Errorf("unknown provider kind: %s", p.Kind)
}
}
}
}
return "", nil, fmt.Errorf("unknown model: %s", model)
return "", "", nil, fmt.Errorf("unknown model: %s", model)
}
func configDir() string {