36 lines
800 B
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))
|
|
}
|