engine

package
v0.7.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 26, 2025 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Default configuration
	DefaultPort = "16677"
	DefaultHost = constants.DefaultHost + ":" + DefaultPort

	// ipex-llm-ollama related
	IpexLlamaDir     = "ipex-llm-ollama"
	OllamaBatchFile  = "ollama-serve.bat"
	OllamaStartShell = "start-ollama.sh"

	// Windows download URLs
	WindowsAllGPUURL   = constants.BaseDownloadURL + constants.UrlDirPathWindows + "/" + version.AOGVersion + "/ollama-windows-amd64-all.zip"
	WindowsNvidiaURL   = constants.BaseDownloadURL + constants.UrlDirPathWindows + "/" + version.AOGVersion + "/ollama-windows-amd64.zip"
	WindowsAMDURL      = constants.BaseDownloadURL + constants.UrlDirPathWindows + "/" + version.AOGVersion + "/ollama-windows-amd64-rocm.zip"
	WindowsIntelArcURL = constants.BaseDownloadURL + constants.UrlDirPathWindows + "/" + version.AOGVersion + "/ipex-llm-ollama.zip"
	WindowsBaseURL     = constants.BaseDownloadURL + constants.UrlDirPathWindows + "/" + version.AOGVersion + "/ollama-windows-amd64-base.zip"

	// Linux download URLs
	LinuxNvidiaURL   = constants.BaseDownloadURL + constants.UrlDirPathLinux + "/" + version.AOGVersion + "/ollama-cuda-linux-amd64.tgz"
	LinuxAMDURL      = constants.BaseDownloadURL + constants.UrlDirPathLinux + "/" + version.AOGVersion + "/ollama-rocm-linux-amd64.tgz"
	LinuxBaseURL     = constants.BaseDownloadURL + constants.UrlDirPathLinux + "/" + version.AOGVersion + "/ollama-linux-amd64.tgz"
	LinuxARMURL      = constants.BaseDownloadURL + constants.UrlDirPathLinux + "/" + version.AOGVersion + "/ollama-cuda-linux-arm64.tgz"
	LinuxARMBaseURL  = constants.BaseDownloadURL + constants.UrlDirPathLinux + "/" + version.AOGVersion + "/ollama-linux-arm64.tgz"
	LinuxIntelArcURL = constants.BaseDownloadURL + constants.UrlDirPathLinux + "/" + version.AOGVersion + "/ipex-llm-ollama.zip"

	// macOS download URLs
	MacOSIntelURL = constants.BaseDownloadURL + constants.UrlDirPathMacOS + "/" + version.AOGVersion + "/Ollama-darwin.zip"

	// Archive commands
	TarCommand     = "tar"
	TarExtractFlag = "-xf"
	TarDestFlag    = "-C"
	UnzipCommand   = "unzip"
	UnzipDestFlag  = "-d"
	MoveCommand    = "mv"

	OllamaStartShellWin   = `%s\\ollama.exe serve`
	OllamaStartShellLinux = `%s/ollama serve`
	OllamaStartShellMac   = `%s/ollama serve`

	OllamaModelDirLinux = "/var/lib/aog/engine/ollama/models"

	// Required version
	OllamaMinVersion = "0.7.1"
)
View Source
const (
	ModelScopeSCHEME               = "https"
	ModelScopeEndpointCN           = "www.modelscope.cn"
	ModelScopeEndpointAI           = "www.modelscope.ai"
	ModelScopeGetModelFilesReqPath = "/api/v1/models/%s/repo/files?Revision=%s&Recursive=%s"
	ModelScopeModelDownloadReqPath = "/api/v1/models/%s/repo?Revision=%s&FilePath=%s"
	ModelScopeRevision             = "master"
	BufferSize                     = 64 * 1024

	// OpenVINO Server configuration
	OpenvinoGRPCPort     = "9000"
	OpenvinoGRPCHost     = constants.DefaultHost + ":" + OpenvinoGRPCPort
	OpenvinoHTTPPort     = "16666"
	OpenvinoHTTPHost     = constants.DefaultHost + ":" + OpenvinoHTTPPort
	OpenvinoVersion      = "2025.3.0"
	OpenvinoDefaultModel = "stable-diffusion-v-1-5-ov-fp16"

	// Download URLs
	OVMSWindowsDownloadURL       = constants.BaseDownloadURL + constants.UrlDirPathWindows + "/" + version.AOGVersion + "/ovms_windows.zip"
	OVMSLinuxRedHatDownloadURL   = constants.BaseDownloadURL + constants.UrlDirPathLinux + "/" + version.AOGVersion + "/ovms_redhat_python_on.tar.gz"
	OVMSLinuxUbuntu22DownloadURL = constants.BaseDownloadURL + constants.UrlDirPathLinux + "/" + version.AOGVersion + "/ovms_ubuntu22_python_on.tar.gz"
	OVMSLinuxUbuntu24DownloadURL = constants.BaseDownloadURL + constants.UrlDirPathLinux + "/" + version.AOGVersion + "/ovms_ubuntu24_python_on.tar.gz"

	ScriptsWindowsDownloadURL = constants.BaseDownloadURL + constants.UrlDirPathWindows + "/" + version.AOGVersion + "/scripts.zip"
	ScriptsLinuxDownloadURL   = constants.BaseDownloadURL + constants.UrlDirPathLinux + "/" + version.AOGVersion + "/scripts.zip"

	// Required Version
	OpenvinoMinVersion = "2025.3.0"
)
View Source
const (
	GraphPBTxtSpeechToText = `` /* 486-byte string literal not displayed */

	GraphPBTxtTextToImage = `` /* 484-byte string literal not displayed */

	GraphPBTxtTextToSpeech = `` /* 497-byte string literal not displayed */

	GraphPBTxtChat = `` /* 1099-byte string literal not displayed */

	GraphPBTxtGenerate = `` /* 1036-byte string literal not displayed */

	GraphPBTxtEmbed = `` /* 545-byte string literal not displayed */

	GraphPBTxtRerank = `` /* 449-byte string literal not displayed */

	ChatTemplateJinja = `` /* 1467-byte string literal not displayed */

	InitShellWin = `` /* 190-byte string literal not displayed */

	InitShellLinuxUbuntu2204 = `` /* 307-byte string literal not displayed */

	InitShellLinuxUbuntu2404 = `` /* 295-byte string literal not displayed */

	InitShellLinuxREHL96 = `` /* 295-byte string literal not displayed */

)

Variables

View Source
var OllamaOperateStatus = 1
View Source
var OpenvinoOperateStatus = 1

Functions

func AsyncDownloadModelFile

func AsyncDownloadModelFile(ctx context.Context, a AsyncDownloadModelFileData, engine *OpenvinoProvider)

func CheckFileDigest

func CheckFileDigest(ExceptDigest string, FilePath string) bool

func DownloadModelFileRequest

func DownloadModelFileRequest(ctx context.Context, reqData *ModelScopeFileReqData, reqHeader map[string]string) (chan []byte, chan error)

func GetHttpClient

func GetHttpClient() *client.Client

func GetModelScopeDomain

func GetModelScopeDomain(cnSite bool) string

func QuotePlus

func QuotePlus(s string) string

func VersionCompare added in v0.6.0

func VersionCompare(v1, v2 string) int

Types

type AsyncDownloadModelFileData

type AsyncDownloadModelFileData struct {
	ModelName      string
	ModelType      string
	DataCh         chan []byte
	ErrCh          chan error
	ModelFiles     []ModelScopeFile
	LocalModelPath string
}

type ModelConfig

type ModelConfig struct {
	Name      string `json:"name"`
	BasePath  string `json:"base_path"`
	GraphPath string `json:"graph_path"`
}

type ModelScopeFile

type ModelScopeFile struct {
	Name     string `json:"Name"`
	Path     string `json:"Path"`
	Digest   string `json:"Sha256"`
	Size     int64  `json:"Size"`
	IsLFS    bool   `json:"IsLFS"`
	Revision string `json:"Revision"`
	Type     string `json:"Type"`
}

func GetModelFiles

func GetModelFiles(ctx context.Context, reqData *ModelScopeFileReqData) ([]ModelScopeFile, error)

type ModelScopeFileData

type ModelScopeFileData struct {
	Files []ModelScopeFile `json:"Files"`
}

type ModelScopeFileReqData

type ModelScopeFileReqData struct {
	ModelName string `json:"model_name"`
	Revision  string `json:"revision"`
	Recursive string `json:"recursive"`
	FilePath  string `json:"file_path"`
	Stream    bool   `json:"stream"`
}

type ModelScopeFileRespData

type ModelScopeFileRespData struct {
	Code int                `json:"Code"`
	Data ModelScopeFileData `json:"Data"`
}

type OllamaProvider

type OllamaProvider struct {
	EngineConfig *sdktypes.EngineRecommendConfig
	// contains filtered or unexported fields
}

func NewOllamaProvider

func NewOllamaProvider(config *sdktypes.EngineRecommendConfig) *OllamaProvider

func (*OllamaProvider) CheckEngine added in v0.6.0

func (o *OllamaProvider) CheckEngine() (bool, error)

CheckEngine checks if Ollama engine is installed

func (*OllamaProvider) DeleteModel

func (o *OllamaProvider) DeleteModel(ctx context.Context, req *sdktypes.DeleteRequest) error

func (*OllamaProvider) GetConfig

func (*OllamaProvider) GetDefaultClient

func (o *OllamaProvider) GetDefaultClient() *client.Client

func (*OllamaProvider) GetOperateStatus added in v0.6.0

func (o *OllamaProvider) GetOperateStatus() int

func (*OllamaProvider) GetRunningModels

func (o *OllamaProvider) GetRunningModels(ctx context.Context) (*sdktypes.ListResponse, error)

func (*OllamaProvider) GetVersion

func (*OllamaProvider) HealthCheck

func (o *OllamaProvider) HealthCheck(ctx context.Context) error

func (*OllamaProvider) InitEnv

func (o *OllamaProvider) InitEnv() error

func (*OllamaProvider) InstallEngine

func (o *OllamaProvider) InstallEngine(ctx context.Context) error

func (*OllamaProvider) InvokeService added in v0.7.0

func (o *OllamaProvider) InvokeService(ctx context.Context, serviceName string, authInfo string, request []byte) ([]byte, error)

InvokeService 内置引擎不通过此接口调用服务 Phase 3 Refactor: 内置引擎使用原有的直接调用方式,此方法仅用于满足接口要求

func (*OllamaProvider) ListModels

func (o *OllamaProvider) ListModels(ctx context.Context) (*sdktypes.ListResponse, error)

func (*OllamaProvider) LoadModel

func (o *OllamaProvider) LoadModel(ctx context.Context, req *sdktypes.LoadRequest) error

func (*OllamaProvider) PullModelStream

func (o *OllamaProvider) PullModelStream(ctx context.Context, req *sdktypes.PullModelRequest) (chan []byte, chan error)

func (*OllamaProvider) SetOperateStatus added in v0.6.0

func (o *OllamaProvider) SetOperateStatus(status int)

func (*OllamaProvider) SetProcessManager added in v0.6.0

func (o *OllamaProvider) SetProcessManager(pm *process.EngineProcessManager)

SetProcessManager sets the process manager for the provider

func (*OllamaProvider) StartEngine

func (o *OllamaProvider) StartEngine(mode string) error

func (*OllamaProvider) StopEngine

func (o *OllamaProvider) StopEngine() error

func (*OllamaProvider) UnloadModel

func (o *OllamaProvider) UnloadModel(ctx context.Context, req *sdktypes.UnloadModelRequest) error

func (*OllamaProvider) UpgradeEngine added in v0.6.0

func (o *OllamaProvider) UpgradeEngine(ctx context.Context) error

type OpenvinoModelServerConfig

type OpenvinoModelServerConfig struct {
	MediapipeConfigList []ModelConfig `json:"mediapipe_config_list"`
	ModelConfigList     []interface{} `json:"model_config_list"`
}

type OpenvinoProvider

type OpenvinoProvider struct {
	EngineConfig *sdktypes.EngineRecommendConfig
	// contains filtered or unexported fields
}

func NewOpenvinoProvider

func NewOpenvinoProvider(config *sdktypes.EngineRecommendConfig) *OpenvinoProvider

func (*OpenvinoProvider) CheckEngine added in v0.6.0

func (o *OpenvinoProvider) CheckEngine() (bool, error)

CheckEngine checks if OpenVINO engine is installed

func (*OpenvinoProvider) DeleteModel

func (o *OpenvinoProvider) DeleteModel(ctx context.Context, req *sdktypes.DeleteRequest) error

func (*OpenvinoProvider) GetConfig

func (*OpenvinoProvider) GetDefaultClient

func (o *OpenvinoProvider) GetDefaultClient() *client.GRPCClient

func (*OpenvinoProvider) GetOperateStatus added in v0.6.0

func (o *OpenvinoProvider) GetOperateStatus() int

func (*OpenvinoProvider) GetRunningModels

func (o *OpenvinoProvider) GetRunningModels(ctx context.Context) (*sdktypes.ListResponse, error)

func (*OpenvinoProvider) GetVersion

func (*OpenvinoProvider) HealthCheck

func (o *OpenvinoProvider) HealthCheck(ctx context.Context) error

func (*OpenvinoProvider) InitEnv

func (o *OpenvinoProvider) InitEnv() error

func (*OpenvinoProvider) InstallEngine

func (o *OpenvinoProvider) InstallEngine(ctx context.Context) error

func (*OpenvinoProvider) InvokeService added in v0.7.0

func (o *OpenvinoProvider) InvokeService(ctx context.Context, serviceName string, authInfo string, request []byte) ([]byte, error)

InvokeService 内置引擎不通过此接口调用服务 Phase 3 Refactor: 内置引擎使用原有的直接调用方式,此方法仅用于满足接口要求

func (*OpenvinoProvider) ListModels

func (o *OpenvinoProvider) ListModels(ctx context.Context) (*sdktypes.ListResponse, error)

func (*OpenvinoProvider) LoadModel

func (o *OpenvinoProvider) LoadModel(ctx context.Context, req *sdktypes.LoadRequest) error

func (*OpenvinoProvider) PullModelStream

func (o *OpenvinoProvider) PullModelStream(ctx context.Context, req *sdktypes.PullModelRequest) (chan []byte, chan error)

func (*OpenvinoProvider) SetOperateStatus added in v0.6.0

func (o *OpenvinoProvider) SetOperateStatus(status int)

func (*OpenvinoProvider) SetProcessManager added in v0.6.0

func (o *OpenvinoProvider) SetProcessManager(pm *process.EngineProcessManager)

SetProcessManager sets the process manager for the provider

func (*OpenvinoProvider) StartEngine

func (o *OpenvinoProvider) StartEngine(mode string) error

func (*OpenvinoProvider) StopEngine

func (o *OpenvinoProvider) StopEngine() error

func (*OpenvinoProvider) UnloadModel

func (*OpenvinoProvider) UpgradeEngine added in v0.6.0

func (o *OpenvinoProvider) UpgradeEngine(ctx context.Context) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL