|
@@ -1,113 +0,0 @@
|
|
|
-package model
|
|
|
-
|
|
|
-import (
|
|
|
- "embed"
|
|
|
- "fmt"
|
|
|
- "strings"
|
|
|
-
|
|
|
- "github.com/langgenius/dify-plugin-daemon/internal/utils/log"
|
|
|
-)
|
|
|
-
|
|
|
-//go:embed templates
|
|
|
-var templates embed.FS
|
|
|
-
|
|
|
-// provider_templates is a map of provider type to the template name
|
|
|
-var provider_templates map[string]string
|
|
|
-
|
|
|
-// model_templates is a map of model type to a map of template name to the template content
|
|
|
-var model_templates map[string]map[string]string
|
|
|
-
|
|
|
-func init() {
|
|
|
- provider_templates = make(map[string]string)
|
|
|
- model_templates = make(map[string]map[string]string)
|
|
|
-
|
|
|
- files, err := templates.ReadDir("templates")
|
|
|
- if err != nil {
|
|
|
- log.Error("Failed to read templates: %v", err)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- for _, file := range files {
|
|
|
- if file.IsDir() {
|
|
|
- continue
|
|
|
- }
|
|
|
-
|
|
|
- // get the file name
|
|
|
- filename := file.Name()
|
|
|
- // read the file content
|
|
|
- file_content, err := templates.ReadFile("templates/" + filename)
|
|
|
- if err != nil {
|
|
|
- log.Error("Failed to read template: %v", err)
|
|
|
- continue
|
|
|
- }
|
|
|
- filenames := strings.Split(filename, "_")
|
|
|
- // check the first element is a provider
|
|
|
- if filenames[0] == "provider" {
|
|
|
- if len(filenames) != 2 {
|
|
|
- log.Error("Invalid provider template: %s", filename)
|
|
|
- continue
|
|
|
- }
|
|
|
- provider_templates[filenames[1]] = string(file_content)
|
|
|
- } else if filenames[0] == "model" {
|
|
|
- if len(filenames) != 3 {
|
|
|
- log.Error("Invalid model template: %s", filename)
|
|
|
- continue
|
|
|
- }
|
|
|
- if _, ok := model_templates[filenames[1]]; !ok {
|
|
|
- model_templates[filenames[1]] = make(map[string]string)
|
|
|
- }
|
|
|
-
|
|
|
- model_templates[filenames[1]][filenames[2]] = string(file_content)
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func ListTemplates(typ string, model_type string, name string) {
|
|
|
- color_reset := "\033[0m"
|
|
|
- color_cyan := "\033[36m"
|
|
|
- color_yellow := "\033[33m"
|
|
|
- color_green := "\033[32m"
|
|
|
-
|
|
|
- if typ == "provider" || typ == "" {
|
|
|
- fmt.Printf("%sProvider Templates:%s\n", color_cyan, color_reset)
|
|
|
- for template := range provider_templates {
|
|
|
- if name == "" || strings.Contains(template, name) {
|
|
|
- fmt.Printf(" %s%s%s\n", color_yellow, template, color_reset)
|
|
|
- }
|
|
|
- }
|
|
|
- fmt.Println()
|
|
|
- }
|
|
|
-
|
|
|
- if typ == "model" || typ == "" {
|
|
|
- fmt.Printf("%sModel Templates:%s\n", color_cyan, color_reset)
|
|
|
- if model_type == "" {
|
|
|
- for model_type, templates := range model_templates {
|
|
|
- fmt.Printf("%s%s:%s\n", color_yellow, model_type, color_reset)
|
|
|
- for template := range templates {
|
|
|
- if name == "" || strings.Contains(template, name) {
|
|
|
- fmt.Printf(" %s%s%s\n", color_green, template, color_reset)
|
|
|
- }
|
|
|
- }
|
|
|
- fmt.Println()
|
|
|
- }
|
|
|
- } else {
|
|
|
- if templates, ok := model_templates[model_type]; ok {
|
|
|
- fmt.Printf("%s%s:%s\n", color_yellow, model_type, color_reset)
|
|
|
- for template := range templates {
|
|
|
- if name == "" || strings.Contains(template, name) {
|
|
|
- fmt.Printf(" %s%s%s\n", color_green, template, color_reset)
|
|
|
- }
|
|
|
- }
|
|
|
- fmt.Println()
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func GetTemplate(typ string, name string) {
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-func CreateFromTemplate(root string, typ string, name string) {
|
|
|
-
|
|
|
-}
|