mirror of https://gitee.com/godoos/godoos.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
4.5 KiB
91 lines
4.5 KiB
package model
|
|
|
|
import "time"
|
|
|
|
// 参数 类型 描述
|
|
// llama_model_path 字符串 LLaMA模型的文件路径。
|
|
// ngl 整数 使用的GPU层数。
|
|
// ctx_len 整数 模型操作的上下文长度。
|
|
// embedding 布尔值 是否在模型中使用嵌入。
|
|
// n_parallel 整数 并行操作的数量。
|
|
// cont_batching 布尔值 是否使用连续批处理。
|
|
// user_prompt 字符串 用于用户的提示。
|
|
// ai_prompt 字符串 用于AI助手的提示。
|
|
// system_prompt 字符串 用于系统规则的提示。
|
|
// pre_prompt 字符串 用于内部配置的提示。
|
|
// cpu_threads 整数 推理时使用的线程数(仅CPU模式)。
|
|
// n_batch 整数 提示评估步骤的批次大小。
|
|
// caching_enabled 布尔值 是否启用提示缓存。
|
|
// clean_cache_threshold 整数 触发清理缓存操作的聊天数量。
|
|
// grp_attn_n 整数 自我扩展中组注意力因子。
|
|
// grp_attn_w 整数 自我扩展中组注意力宽度。
|
|
// mlock 布尔值 在macOS中防止系统将模型交换到磁盘。
|
|
// grammar_file 字符串 通过提供语法文件路径,您可以使用GBNF语法约束采样。
|
|
// model_type 字符串 我们想要使用的模型类型:llm 或 embedding,默认值为 llm。
|
|
type ModelConfig struct {
|
|
ModelAlias string `json:"model_alias"`
|
|
PromptTemplate string `json:"prompt_template"`
|
|
LlamaModelPath string `json:"llama_model_path"` // The file path to the LLaMA model.
|
|
Mmproj string `json:"mmproj"`
|
|
ModelType string `json:"model_type"` // Model type we want to use: llm or embedding, default value is llm
|
|
CPUThreads int `json:"cpu_threads"` // The number of threads to use for inferencing (CPU MODE ONLY)
|
|
NGL int `json:"ngl"` // The number of GPU layers to use.
|
|
CtxLen int `json:"ctx_len"` // The context length for the model operations.
|
|
Embedding bool `json:"embedding"` // Whether to use embedding in the model.
|
|
|
|
UserPrompt string `json:"user_prompt"` // The prompt to use for the user.
|
|
AIPrompt string `json:"ai_prompt"` // The prompt to use for the AI assistant.
|
|
SystemPrompt string `json:"system_prompt"` // The prompt to use for system rules.
|
|
// PrePrompt string `json:"pre_prompt"` // The prompt to use for internal configuration.
|
|
|
|
// NParallel int `json:"n_parallel"` // The number of parallel operations.
|
|
// ContBatching bool `json:"cont_batching"` // Whether to use continuous batching.
|
|
// NBatch int `json:"n_batch"` // The batch size for prompt eval step
|
|
// CachingEnabled bool `json:"caching_enabled"` // To enable prompt caching or not
|
|
// CleanCacheThreshold int `json:"clean_cache_threshold"` // Number of chats that will trigger clean cache action
|
|
GrpAttnN int `json:"grp_attn_n"` // Group attention factor in self-extend
|
|
GrpAttnW int `json:"grp_attn_w"` // Group attention width in self-extend
|
|
// Mlock bool `json:"mlock"` // Prevent system swapping of the model to disk in macOS
|
|
GrammarFile string `json:"grammar_file"` // You can constrain the sampling using GBNF grammars by providing path to a grammar file
|
|
|
|
}
|
|
type FileProgress struct {
|
|
Progress float64 `json:"progress"` // 将进度改为浮点数,以百分比表示
|
|
IsFinished bool `json:"is_finished"`
|
|
Total int64 `json:"total"`
|
|
Current int64 `json:"completed"`
|
|
Status string `json:"status"`
|
|
}
|
|
type ModelStruct struct {
|
|
Model string `json:"model"`
|
|
}
|
|
type ReqBody struct {
|
|
//DownloadUrl string `json:"url"`
|
|
//Options ModelConfig `json:"options"`
|
|
Model string `json:"model"`
|
|
Url []string `json:"url"`
|
|
Engine string `json:"engine"`
|
|
Type string `json:"type"`
|
|
From string `json:"from"`
|
|
Action []string `json:"action"`
|
|
Label string `json:"label"`
|
|
Info map[string]interface{} `json:"info"`
|
|
Status string `json:"status"`
|
|
Paths []string `json:"paths"`
|
|
Params map[string]interface{} `json:"params"`
|
|
FileName string `json:"file_name"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|
|
type DownloadsRequest struct {
|
|
Urls []string `json:"urls"`
|
|
Dir string `json:"model_path"`
|
|
}
|
|
|
|
// type DelBody struct {
|
|
// DownloadUrl string `json:"url"`
|
|
// ModelDir string `json:"name"`
|
|
// }
|
|
type ErrorResponse struct {
|
|
Code int `json:"code"`
|
|
Message string `json:"message"`
|
|
}
|
|
|