iop/apps/node/internal/adapters/ollama/http.go

36 lines
800 B
Go

package ollama
import (
"io"
"net/url"
"strings"
)
func joinURL(baseURL, path string) string {
u, err := url.Parse(baseURL)
if err != nil {
return strings.TrimRight(baseURL, "/") + path
}
u.Path = strings.TrimRight(u.Path, "/") + path
return u.String()
}
func joinURLRequestURI(baseURL, requestURI string) string {
u, err := url.Parse(baseURL)
if err != nil {
return strings.TrimRight(baseURL, "/") + requestURI
}
rel, err := url.Parse(requestURI)
if err != nil {
u.Path = strings.TrimRight(u.Path, "/") + requestURI
return u.String()
}
u.Path = strings.TrimRight(u.Path, "/") + rel.Path
u.RawQuery = rel.RawQuery
return u.String()
}
func readLimited(r io.Reader, limit int64) string {
b, _ := io.ReadAll(io.LimitReader(r, limit))
return strings.TrimSpace(string(b))
}