GPT-backend/main.go

80 lines
1.4 KiB
Go
Raw Normal View History

2024-04-24 11:18:03 +00:00
package main
import (
2024-04-24 12:25:55 +00:00
"encoding/json"
2024-04-24 11:18:03 +00:00
"fmt"
2024-04-24 12:25:55 +00:00
"io"
"net/http"
2024-04-24 11:18:03 +00:00
"os"
"github.com/gin-gonic/gin"
)
2024-04-24 12:25:55 +00:00
type Details struct {
Parent_model string `json:"parent_model"`
Format string `json:"format"`
Family string `json:"family"`
Families []string `json:"families"`
Parameter_size string `json:"parameter_size"`
Quantization_level string `json:"quantization_level"`
}
type Model struct {
Name string `json:"name"`
Model string `json:"model"`
Modified_at string `json:"modified_at"`
2024-04-24 12:37:02 +00:00
Size int `json:"size"`
2024-04-24 12:25:55 +00:00
Details Details `json:"details"`
2024-04-24 12:37:02 +00:00
Ip string `json:"ip"`
Port string `json:"port"`
2024-04-24 12:25:55 +00:00
}
type Models struct {
Models []Model `json:"models"`
}
func get_ollama_tags() Models {
resp, err := http.Get("http://192.168.1.30:11434/api/tags")
if err != nil {
fmt.Print(err.Error())
os.Exit(1)
2024-04-24 11:18:03 +00:00
}
2024-04-24 12:25:55 +00:00
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
2024-04-24 12:37:02 +00:00
print(string(body))
2024-04-24 12:25:55 +00:00
if err != nil {
fmt.Print(err.Error())
os.Exit(1)
}
retval := Models{}
json.Unmarshal(body, &retval)
2024-04-24 12:47:00 +00:00
for i := 0; i < len(retval.Models); i++ {
retval.Models[i].Ip = "192.168.1.30"
retval.Models[i].Port = "11434"
}
2024-04-24 12:25:55 +00:00
return retval
}
func main() {
// get_ollama_tags()
models := get_ollama_tags()
fmt.Print(models)
2024-04-24 11:18:03 +00:00
r := gin.Default()
2024-04-24 12:25:55 +00:00
r.GET("/api/tags", func(c *gin.Context) {
c.JSON(200, models)
2024-04-24 11:18:03 +00:00
})
r.Run(":4000")
2024-05-10 11:52:42 +02:00
fmt.Print("END")
2024-04-24 11:18:03 +00:00
}