Enha: llama.cpp on non localhost
This commit is contained in:
13
bot.go
13
bot.go
@@ -16,7 +16,6 @@ import (
|
||||
"log/slog"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"regexp"
|
||||
"slices"
|
||||
@@ -253,12 +252,7 @@ func createClient(connectTimeout time.Duration) *http.Client {
|
||||
}
|
||||
|
||||
func warmUpModel() {
|
||||
u, err := url.Parse(cfg.CurrentAPI)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
host := u.Hostname()
|
||||
if host != "localhost" && host != "127.0.0.1" && host != "::1" {
|
||||
if !isLocalLlamacpp() {
|
||||
return
|
||||
}
|
||||
// Check if model is already loaded
|
||||
@@ -1404,7 +1398,9 @@ func updateModelLists() {
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
}
|
||||
// set already loaded model in llama.cpp
|
||||
if strings.Contains(cfg.CurrentAPI, "localhost") || strings.Contains(cfg.CurrentAPI, "127.0.0.1") {
|
||||
if !isLocalLlamacpp() {
|
||||
return
|
||||
}
|
||||
localModelsMu.Lock()
|
||||
defer localModelsMu.Unlock()
|
||||
for i := range LocalModels {
|
||||
@@ -1420,7 +1416,6 @@ func updateModelLists() {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func refreshLocalModelsIfEmpty() {
|
||||
localModelsMu.RLock()
|
||||
|
||||
@@ -5,7 +5,6 @@ import (
|
||||
"gf-lt/models"
|
||||
"gf-lt/pngmeta"
|
||||
"image"
|
||||
"net/url"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path"
|
||||
@@ -323,12 +322,10 @@ func strInSlice(s string, sl []string) bool {
|
||||
|
||||
// isLocalLlamacpp checks if the current API is a local llama.cpp instance.
|
||||
func isLocalLlamacpp() bool {
|
||||
u, err := url.Parse(cfg.CurrentAPI)
|
||||
if err != nil {
|
||||
if strings.Contains(cfg.CurrentAPI, "openrouter") || strings.Contains(cfg.CurrentAPI, "deepseek") {
|
||||
return false
|
||||
}
|
||||
host := u.Hostname()
|
||||
return host == "localhost" || host == "127.0.0.1" || host == "::1"
|
||||
return true
|
||||
}
|
||||
|
||||
// getModelColor returns the cached color tag for the model name.
|
||||
|
||||
9
llm.go
9
llm.go
@@ -62,11 +62,11 @@ type ChunkParser interface {
|
||||
func choseChunkParser() {
|
||||
chunkParser = LCPCompletion{}
|
||||
switch cfg.CurrentAPI {
|
||||
case "http://localhost:8080/completion":
|
||||
case "http://localhost:8080/completion", "http://127.0.0.1:8080/completion":
|
||||
chunkParser = LCPCompletion{}
|
||||
logger.Debug("chosen lcpcompletion", "link", cfg.CurrentAPI)
|
||||
return
|
||||
case "http://localhost:8080/v1/chat/completions":
|
||||
case "http://localhost:8080/v1/chat/completions", "http://127.0.0.1:8080/v1/chat/completions":
|
||||
chunkParser = LCPChat{}
|
||||
logger.Debug("chosen lcpchat", "link", cfg.CurrentAPI)
|
||||
return
|
||||
@@ -87,6 +87,11 @@ func choseChunkParser() {
|
||||
logger.Debug("chosen openrouterchat", "link", cfg.CurrentAPI)
|
||||
return
|
||||
default:
|
||||
logger.Warn("unexpected case, assuming llama.cpp on non default address", "link", cfg.CurrentAPI)
|
||||
if strings.Contains(cfg.CurrentAPI, "chat") {
|
||||
chunkParser = LCPChat{}
|
||||
return
|
||||
}
|
||||
chunkParser = LCPCompletion{}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user