mirror of
https://github.com/mudler/LocalAI.git
synced 2025-05-20 10:35:01 +00:00
feat: Add '/version' endpoint and display it in the CLI (#679)
This commit is contained in:
parent
2b957df56c
commit
d3a486a4f8
4 changed files with 29 additions and 2 deletions
8
Makefile
8
Makefile
|
@ -19,7 +19,13 @@ CUDA_LIBPATH?=/usr/local/cuda/lib64/
|
||||||
STABLEDIFFUSION_VERSION?=d89260f598afb809279bc72aa0107b4292587632
|
STABLEDIFFUSION_VERSION?=d89260f598afb809279bc72aa0107b4292587632
|
||||||
GO_TAGS?=
|
GO_TAGS?=
|
||||||
BUILD_ID?=git
|
BUILD_ID?=git
|
||||||
|
|
||||||
|
VERSION?=$(shell git describe --always --tags --dirty || echo "dev" )
|
||||||
|
# go tool nm ./local-ai | grep Commit
|
||||||
LD_FLAGS?=
|
LD_FLAGS?=
|
||||||
|
override LD_FLAGS += -X "github.com/go-skynet/LocalAI/internal.Version=$(VERSION)"
|
||||||
|
override LD_FLAGS += -X "github.com/go-skynet/LocalAI/internal.Commit=$(shell git rev-parse HEAD)"
|
||||||
|
|
||||||
OPTIONAL_TARGETS?=
|
OPTIONAL_TARGETS?=
|
||||||
ESPEAK_DATA?=
|
ESPEAK_DATA?=
|
||||||
|
|
||||||
|
@ -244,6 +250,8 @@ build: prepare ## Build the project
|
||||||
$(info ${GREEN}I local-ai build info:${RESET})
|
$(info ${GREEN}I local-ai build info:${RESET})
|
||||||
$(info ${GREEN}I BUILD_TYPE: ${YELLOW}$(BUILD_TYPE)${RESET})
|
$(info ${GREEN}I BUILD_TYPE: ${YELLOW}$(BUILD_TYPE)${RESET})
|
||||||
$(info ${GREEN}I GO_TAGS: ${YELLOW}$(GO_TAGS)${RESET})
|
$(info ${GREEN}I GO_TAGS: ${YELLOW}$(GO_TAGS)${RESET})
|
||||||
|
$(info ${GREEN}I LD_FLAGS: ${YELLOW}$(LD_FLAGS)${RESET})
|
||||||
|
|
||||||
CGO_LDFLAGS="$(CGO_LDFLAGS)" C_INCLUDE_PATH=${C_INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} $(GOCMD) build -ldflags "$(LD_FLAGS)" -tags "$(GO_TAGS)" -o $(BINARY_NAME) ./
|
CGO_LDFLAGS="$(CGO_LDFLAGS)" C_INCLUDE_PATH=${C_INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} $(GOCMD) build -ldflags "$(LD_FLAGS)" -tags "$(GO_TAGS)" -o $(BINARY_NAME) ./
|
||||||
ifeq ($(BUILD_TYPE),metal)
|
ifeq ($(BUILD_TYPE),metal)
|
||||||
cp go-llama/build/bin/ggml-metal.metal .
|
cp go-llama/build/bin/ggml-metal.metal .
|
||||||
|
|
|
@ -3,6 +3,7 @@ package api
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
|
"github.com/go-skynet/LocalAI/internal"
|
||||||
"github.com/go-skynet/LocalAI/pkg/assets"
|
"github.com/go-skynet/LocalAI/pkg/assets"
|
||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
"github.com/gofiber/fiber/v2/middleware/cors"
|
"github.com/gofiber/fiber/v2/middleware/cors"
|
||||||
|
@ -105,6 +106,12 @@ func App(opts ...AppOption) (*fiber.App, error) {
|
||||||
applier := newGalleryApplier(options.loader.ModelPath)
|
applier := newGalleryApplier(options.loader.ModelPath)
|
||||||
applier.start(options.context, cm)
|
applier.start(options.context, cm)
|
||||||
|
|
||||||
|
app.Get("/version", func(c *fiber.Ctx) error {
|
||||||
|
return c.JSON(struct {
|
||||||
|
Version string `json:"version"`
|
||||||
|
}{Version: internal.PrintableVersion()})
|
||||||
|
})
|
||||||
|
|
||||||
app.Post("/models/apply", applyModelGallery(options.loader.ModelPath, cm, applier.C, options.galleries))
|
app.Post("/models/apply", applyModelGallery(options.loader.ModelPath, cm, applier.C, options.galleries))
|
||||||
app.Get("/models/available", listModelFromGallery(options.galleries, options.loader.ModelPath))
|
app.Get("/models/available", listModelFromGallery(options.galleries, options.loader.ModelPath))
|
||||||
app.Get("/models/jobs/:uuid", getOpStatus(applier))
|
app.Get("/models/jobs/:uuid", getOpStatus(applier))
|
||||||
|
|
10
internal/version.go
Normal file
10
internal/version.go
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
package internal
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
var Version = ""
|
||||||
|
var Commit = ""
|
||||||
|
|
||||||
|
func PrintableVersion() string {
|
||||||
|
return fmt.Sprintf("LocalAI %s (%s)", Version, Commit)
|
||||||
|
}
|
6
main.go
6
main.go
|
@ -7,6 +7,7 @@ import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
api "github.com/go-skynet/LocalAI/api"
|
api "github.com/go-skynet/LocalAI/api"
|
||||||
|
"github.com/go-skynet/LocalAI/internal"
|
||||||
"github.com/go-skynet/LocalAI/pkg/gallery"
|
"github.com/go-skynet/LocalAI/pkg/gallery"
|
||||||
model "github.com/go-skynet/LocalAI/pkg/model"
|
model "github.com/go-skynet/LocalAI/pkg/model"
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
|
@ -24,8 +25,9 @@ func main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
app := &cli.App{
|
app := &cli.App{
|
||||||
Name: "LocalAI",
|
Name: "LocalAI",
|
||||||
Usage: "OpenAI compatible API for running LLaMA/GPT models locally on CPU with consumer grade hardware.",
|
Version: internal.PrintableVersion(),
|
||||||
|
Usage: "OpenAI compatible API for running LLaMA/GPT models locally on CPU with consumer grade hardware.",
|
||||||
Flags: []cli.Flag{
|
Flags: []cli.Flag{
|
||||||
&cli.BoolFlag{
|
&cli.BoolFlag{
|
||||||
Name: "f16",
|
Name: "f16",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue