diff --git a/gallery/index.yaml b/gallery/index.yaml index 16910b5e..187fa8bd 100644 --- a/gallery/index.yaml +++ b/gallery/index.yaml @@ -1,4 +1,30 @@ --- +### START mudler's LocalAI specific-models +- &mudler + url: "github:mudler/LocalAI/gallery/mudler.yaml@master" + name: "localAI-llama3-8b-function-call-v0.2" + icon: "https://cdn-uploads.huggingface.co/production/uploads/647374aa7ff32a81ac6d35d4/us5JKi9z046p8K-cn_M0w.webp" + license: llama3 + description: | + This model is a fine-tune on a custom dataset + glaive to work specifically and leverage all the LocalAI features of constrained grammar. + + Specifically, the model once enters in tools mode will always reply with JSON. + urls: + - https://huggingface.co/mudler/LocalAI-Llama3-8b-Function-Call-v0.2-GGUF + - https://huggingface.co/mudler/LocalAI-Llama3-8b-Function-Call-v0.2 + tags: + - llm + - gguf + - gpu + - cpu + - llama3 + overrides: + parameters: + model: LocalAI-Llama3-8b-Function-Call-v0.2-q4_k_m.bin + files: + - filename: LocalAI-Llama3-8b-Function-Call-v0.2-q4_k_m.bin + sha256: 7e46405ce043cbc8d30f83f26a5655dc8edf5e947b748d7ba2745bd0af057a41 + uri: huggingface://mudler/LocalAI-Llama3-8b-Function-Call-v0.2-GGUF/LocalAI-Llama3-8b-Function-Call-v0.2-q4_k_m.bin ### START parler-tts - &parler-tts url: "github:mudler/LocalAI/gallery/parler-tts.yaml@master" diff --git a/gallery/mudler.yaml b/gallery/mudler.yaml new file mode 100644 index 00000000..77bdc8eb --- /dev/null +++ b/gallery/mudler.yaml @@ -0,0 +1,44 @@ +--- +name: localai + +config_file: |- + context_size: 8192 + stopwords: + - <|im_end|> + - + - <|eot_id|> + - <|end_of_text|> + + function: + return_name_in_function_response: true + + template: + chat: | + <|begin_of_text|>{{.Input }} + <|start_header_id|>assistant<|end_header_id|> + chat_message: |- + <|start_header_id|>{{if .FunctionCall}}assistant{{ else if eq .RoleName "assistant"}}assistant{{else if eq .RoleName "system"}}system{{else if eq .RoleName "tool"}}tool_response{{else if eq .RoleName "user"}}user{{end}}<|end_header_id|> + + {{ if .Content -}} + {{.Content -}} + {{ else if .FunctionCall -}} + { "name": "{{ index .FunctionCall "name"}}", "arguments": {{index .FunctionCall "arguments"}} }{{ end -}}<|eot_id|> + completion: | + {{.Input}} + function: |- + <|begin_of_text|><|start_header_id|>system<|end_header_id|> + {{$tools:=""}} + You have access to the following tools: + {{range .Functions -}} + > Tool Name: {{.Name}} + {{ $tools = print $tools .Name " " -}} + Tool Description: {{.Description}} + Tool Args: + {{ range $key,$val:= (index .Parameters "properties") -}} + - {{$key}} ({{ index $val "type"}}): {{index $val "description" }} + {{ end -}} + {{ end -}}Answer only in JSON by using the following format if using a tool: + {"name": "tool_name", "arguments": { "arg_1": "value" } } + Function must be one of [{{$tools}}]).<|eot_id|> + {{.Input}} + <|start_header_id|>assistant<|end_header_id|>