@@ -0,0 +1,46 @@
|
||||
package llm
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net/url"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func IsOllamaProfile(profile *Profile) bool {
|
||||
if profile == nil {
|
||||
return false
|
||||
}
|
||||
u, err := url.Parse(strings.TrimSpace(profile.Config.BaseURL))
|
||||
if err != nil {
|
||||
return strings.Contains(profile.Config.BaseURL, ":11434")
|
||||
}
|
||||
host := strings.ToLower(u.Hostname())
|
||||
port := u.Port()
|
||||
return port == "11434" && (host == "127.0.0.1" || host == "localhost" || host == "::1")
|
||||
}
|
||||
|
||||
func ShouldParseThinkTags(profile *Profile) bool {
|
||||
if profile == nil {
|
||||
return false
|
||||
}
|
||||
if profile.Config.ParseThinkTags != nil {
|
||||
return *profile.Config.ParseThinkTags
|
||||
}
|
||||
return IsOllamaProfile(profile)
|
||||
}
|
||||
|
||||
func OllamaBaseURL(profile *Profile) (string, error) {
|
||||
if profile == nil {
|
||||
return "", errors.New("Ollama 配置为空")
|
||||
}
|
||||
u, err := url.Parse(strings.TrimSpace(profile.Config.BaseURL))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
if strings.TrimRight(u.Path, "/") == "/v1" {
|
||||
u.Path = strings.TrimSuffix(strings.TrimRight(u.Path, "/"), "/v1")
|
||||
}
|
||||
u.RawQuery = ""
|
||||
u.Fragment = ""
|
||||
return strings.TrimRight(u.String(), "/"), nil
|
||||
}
|
||||
Reference in New Issue
Block a user